From: Jay Freeman (saurik) Date: Mon, 4 Feb 2013 02:58:23 +0000 (-0800) Subject: Reset the brightness while in Safe Mode on iOS 6+. X-Git-Tag: v0.9.3999.6^0 X-Git-Url: https://git.saurik.com/safemode-ios.git/commitdiff_plain/43b2fcfaa032139e95e3eddf6ee8f0e928ff2c4a?hp=8d6b6bf4a17335e653be11ec2da25014441e2adc Reset the brightness while in Safe Mode on iOS 6+. --- diff --git a/MobileSafety.mm b/MobileSafety.mm index a3e8960..0d9d7ad 100644 --- a/MobileSafety.mm +++ b/MobileSafety.mm @@ -300,3 +300,19 @@ MSInstanceMessageHook1(void, BKSApplicationLaunchSettings, setEnvironment, NSDic [modified setObject:@"1" forKey:@"_MSSafeMode"]; return MSOldCall(modified); } + +MSInitialize { + NSAutoreleasePool *pool([[NSAutoreleasePool alloc] init]); + + // on iOS 6, backboardd is in charge of brightness, and freaks out when SpringBoard restarts :( + // the result is that the device is super dark until we attempt to update the brightness here. + + if (kCFCoreFoundationVersionNumber >= 700) { + if (void (*GSEventSetBacklightLevel)(float) = reinterpret_cast(dlsym(RTLD_DEFAULT, "GSEventSetBacklightLevel"))) + if (NSMutableDictionary *defaults = [NSMutableDictionary dictionaryWithContentsOfFile:[NSString stringWithFormat:@"%@/Library/Preferences/com.apple.springboard.plist", NSHomeDirectory()]]) + if (NSNumber *level = [defaults objectForKey:@"SBBacklightLevel2"]) + GSEventSetBacklightLevel([level floatValue]); + } + + [pool release]; +}