0

我正在尝试暂时禁用 TouchID 身份验证,这样即使手指匹配,手机也不会解锁。我怎样才能做到这一点?有没有办法通过 com.apple.springboard.plist 以编程方式更新设置中的开关,就像我对振动所做的那样?

4

1 回答 1

1

检查设备是否越狱的最简单方法是检查canOpenURL(例如 cydia、mobileCydia URL)。您也可以尝试写入保留路径(例如~/private)。还有一些与 fork() 和运行进程相关的方法,您可以在逆向工程博客上了解它。

您应该在运行以下代码之前检查它:

if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error) {}

- - 编辑 - -

在评论中回答您的问题(据我所知):

- (void)performTouchIdLogin {
    LAContext *context = [[LAContext alloc] init];
    LAPolicy policy = LAPolicyDeviceOwnerAuthenticationWithBiometrics;
    NSError *error = nil;

    BOOL isJailbroken = ([[NSFileManager defaultManager] fileExistsAtPath: @"/bin/bash"]); // TODO: handle simulator
    BOOL canUseTouchID = ([context canEvaluatePolicy:policy error:&error]);

    if (!isJailbroken && canUseTouchID) {
        [context evaluatePolicy:policy localizedReason:@"Please log in using TouchID" reply:^(BOOL success, NSError *error) {
            // do something
        }];
    };
}
于 2014-11-28T07:44:27.860 回答