【发布时间】:2013-03-07 10:19:38
【问题描述】:
我的 iphone 应用已越狱,我不在乎我的应用是否被应用商店拒绝。
我希望在我的程序中使用私有 API DevicePINController。
我最近发现了名为DevicePINController 的私有API,但是它不能正常工作。该应用程序运行,除了它的方法之外,所有其他方法都不执行任何操作。它的BOOL 方法总是返回false。设置方法不做任何事情。
有人知道设备引脚控制器需要哪些权利权限吗?
编辑:代码
id away = [[objc_getClass("DevicePINController") alloc]init];
NSLog( [away simplePIN] ? @"YES":@"NO" );
NSLog( [away _isBlocked] ? @"YES":@"NO" );
NSLog( [away _attemptValidationWithPIN:@"1234"] ? @"YES":@"NO" );
NSLog(@"%d",[away _unblockTime] );
NSLog(@"%@",[away blockedStateKey] );
NSLog(@"%@",[away blockTimeIntervalKey] );
NSLog(@"%@",[away failedAttemptsKey] );
NSLog(@"%d",[away pinLength] );
NSLog(@"%@",[away stringsBundle] );
NSLog(@"%@",[away stringsTable]);
每个方法调用都返回错误的答案。有些只返回null。 Bool 总是返回 NO。
【问题讨论】:
-
您需要向我们展示您正在运行的代码,以便我们能够帮助您调试它为什么不起作用。谢谢。
-
你测试过
away是否等于nil吗?请记住,在 Objective-C 中,向 nil 对象发送 message 将什么都不做。如果该方法应该返回BOOL,则BOOL的默认值为NO,因此如果away为nil,您将返回一堆NO。 -
看来你是对的。现在是 nil。但这不是使用私有 api 的正确方法吗?
-
你是怎么打开
Preferences.framework的?它是否包含在您的项目设置(构建阶段)中?或者,它是动态打开的,使用dlopen()?如果您不确定这两个选项的含义,请告诉我。 -
我不明白你的意思。我应该使用带有库的链接二进制文件来查找和链接preferences.framework吗?它目前没有添加到我的项目中。我认为我们在使用 objc_getClass 时不需要添加任何框架
标签: iphone ios objective-c jailbreak