From eadad9e4af6177b822b5acd4a174d917e96682fd Mon Sep 17 00:00:00 2001 From: Ryan Burke Date: Mon, 10 Nov 2014 18:59:54 +0000 Subject: [PATCH] Added Pangu to list of protected applications. --- CyDelete8.xm | 27 ++++++++++++++---- Cydelete8/Resources/Cydelete8.plist | 41 +++++++++++++++++++++++++--- Cydelete8/Resources/Pangu.png | Bin 0 -> 29680 bytes 3 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 Cydelete8/Resources/Pangu.png diff --git a/CyDelete8.xm b/CyDelete8.xm index 8fc4ed9..986ce3b 100644 --- a/CyDelete8.xm +++ b/CyDelete8.xm @@ -47,24 +47,37 @@ static void initTranslation() { cyDelBundle = [NSBundle bundleWithPath:@"/Library/MobileSubstrate/DynamicLibraries/CyDelete8.bundle"]; } -static bool getProtectCydia() { +static bool getCFBool(CFStringRef key, bool defaultValue) { //Sync the latest version of the preferences. bool synced = CFPreferencesAppSynchronize(CFSTR("com.ryanburke.cydelete8")); //If the sync failed, lets just default to protecting Cydia for safety. - if(!synced) return true; + if(!synced) return defaultValue; //Create a boolean object to hold the success value from next function. Boolean success; - //Get the value of the "CDProtectCydia" key from the preferences. - bool result = CFPreferencesGetAppBooleanValue(CFSTR("CDProtectCydia"), CFSTR("com.ryanburke.cydelete8"), &success); + //Get the value of the key from the preferences. + bool result = CFPreferencesGetAppBooleanValue(key, CFSTR("com.ryanburke.cydelete8"), &success); //If the enabled key existed and we got the value okay. if(success) { //Return the value of the key. return result; } //If for some reason we couldn't get the value lets just default to protecting Cydia for safety. - return true; + return defaultValue; +} + +static bool getProtectCydia() { + return getCFBool(CFSTR("CDProtectCydia"), true); +} + +static bool getProtectPangu() { + return getCFBool(CFSTR("CDProtectPangu"), true); +} + +static bool getEnabled() { + return getCFBool(CFSTR("enabled"), true); } + // Thanks _BigBoss_! __attribute__((unused)) static int getFreeMemory() { vm_size_t pageSize; @@ -313,8 +326,10 @@ static void uninstallClickedForIcon(SBIcon *self) { bool isApple = ([bundle hasPrefix:@"com.apple."] && ![bundle hasPrefix:@"com.apple.samplecode."]); //If the application is Cydia and user has protected it. bool isCydia = ([bundle isEqualToString:@"com.saurik.Cydia"] && getProtectCydia()); + //If the application is Cydia and user has protected it. + bool isPangu = ([bundle isEqualToString:@"io.pangu.loader"] && getProtectPangu()); //If any of these match then we don't want to allow uninstall. - if(isApple || isCydia || getFreeMemory() < 20 ) { + if(isApple || isCydia || isPangu || !getEnabled() || getFreeMemory() < 20 ) { return NO; } return YES; diff --git a/Cydelete8/Resources/Cydelete8.plist b/Cydelete8/Resources/Cydelete8.plist index bdeab02..376772e 100644 --- a/Cydelete8/Resources/Cydelete8.plist +++ b/Cydelete8/Resources/Cydelete8.plist @@ -4,6 +4,24 @@ items + + cell + PSGroupCell + label + Settings + + + cell + PSSwitchCell + default + + defaults + com.ryanburke.cydelete8 + key + enabled + label + Enable + cell PSGroupCell @@ -28,13 +46,28 @@ icon Cydia.png + + cell + PSSwitchCell + default + + defaults + com.ryanburke.cydelete8 + key + CDProtectPangu + label + Pangu + icon + Pangu.png + cell PSGroupCell footerText - CyDelete8 © 2014 Ryan Burke - CyDelete © 2009-2011 Dustin L. Howett - Released under the GPLv3 Licence. + +CyDelete8 © 2014 Ryan Burke +CyDelete © 2009-2011 Dustin L. Howett +Released under the GPLv3 Licence. @@ -43,7 +76,7 @@ cell PSButtonCell label - Support + DONATE action diff --git a/Cydelete8/Resources/Pangu.png b/Cydelete8/Resources/Pangu.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb8c85bf57d2403f374eb15598da02672f2d5b5 GIT binary patch literal 29680 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 R=o_Ih(&7qYB_alX{}0o<0;vE1 literal 0 HcmV?d00001