优化提示(THEOS)

时间:2014-02-08 22:52:54

标签: ios objective-c xcode jailbreak theos

我正在使用theos编写我的第一个iOS调整,我停留在优化。我可以看到,dylib每次都会检查(每秒?)“([[settings objectForKey:@”something“] boolValue]) “和[[settings objectForKey:@”SomethingHere“] boolValue]”在plist文件中。

可以吗? 有什么优化建议吗? 这是我的调整:

%hook Something
- (void)somethingheree:(_Bool)arg1 withNumberOfDevices:(int)arg2
{
    NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithContentsOfFile:
                                [NSString stringWithFormat:@"%@/Library/Preferences/%@", NSHomeDirectory(), @"com.yourcompany.mytweak.plist"]];

       if([[settings objectForKey:@"something"] boolValue]) {
        %orig(YES,100);
    }
    else %orig;

}
%end

%hook somethinganother
- (void)somethinghere:(_Bool)arg1
{
    NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithContentsOfFile:
                                [NSString stringWithFormat:@"%@/Library/Preferences/%@", NSHomeDirectory(), @"com.yourcompany.mytweak.plist"]];
       if([[settings objectForKey:@"SomethingHere"] boolValue]) {
        %orig(NO);
    } else %orig;
}
%end

1 个答案:

答案 0 :(得分:1)

如果您在首选项面板中使用PreferenceLoader,则可以将值保存在全局变量中,并使用darwin通知来监视首选项的更改。您可以在开源调整中找到很多示例,例如我的一个:

https://github.com/Qusic/MailtoOpener/blob/master/Tweak.mm#L192