第五章最后一个例子问题SBSettings不起作用

按照楼主的书,敲下去的,但是我的tweak,为什么不起作用,点击home后,InComing Calls未改变????

#import <notify.h>

%hook SpringBoard

- (void)menuButtonDown:(id)down
{
        
        %orig;
        NSLog(@"helloWorldMenuButtonDownFirst");
        NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preference/com.apple.Accessibility.plist"];
    [dict setObject:[NSNumber numberWithInteger:2] forKey:@"DefaultRouteForCallPreference"];
    [dict writeToFile:@"/var/mobile/Library/Preference/com.apple.Accessibility.plist" atomically:YES];
    
    notify_post("com.apple.accessibility.defaultrouteforcall");
    NSLog(@"helloWorldMenuButtonDownEnd");
}

%end

我发现我点击home键,通过grep搜索helloWorldMenuButtonDownFirst 都搜不到,感觉我的menuButtonDown方法好像都没有调用???这事怎么回事啊啊???

然后我用HOOK saveScreenshot,通过截屏来运行上面代码,syslog有执行helloWorldMenuButtonDownFirst,但是InComing Calls未改变,还是Default??

这个例子很可能在iOS 8中已经失效了,你把hook的函数改成

- (void)_menuButtonDown:(id)down

试试看

我的是iOS7.1

我用saveScreenshot代替menudown,其实代码都运行了我的hook代码,但是INCOmingCalls没效果

那有可能是这个函数已经改掉了,但逆向的方法和思路是不变的,你可以自己走一遍看看发生了哪些改变

已解决,一步一步定位,是少了preferences,少了s