// 头文件相关函数
@interface SBLockScreenManager : XXUnknownSuperclass <SBLockScreenViewControllerDelegate, SBUIBiometricEventObserver, SBUIBiometricEventMonitorDelegate> {
BOOL _isUILocked; // 读取这个变量可以判断当前是否锁屏状态
}
+ (id)sharedInstance;
- (void)unlockUIFromSource:(int)source withOptions:(id)options;
- (void)lockUIFromSource:(int)source withOptions:(id)options;
- (_Bool)attemptUnlockWithPasscode:(id)arg1; // 密码解锁
@end
实验:
PiaoYuns-iPad:~ root# cycript -p SpringBoard
cy# var lockScreenManager = [SBLockScreenManager sharedInstance]
#"<SBLockScreenManager: 0x1780ab5e0>"
cy# [lockScreenManager unlockUIFromSource: 0 withOptions: nil]
cy# [lockScreenManager lockUIFromSource: 1 withOptions: nil]
cy# [lockScreenManager isUILocked]
true
cy# [lockScreenManager attemptUnlockWithPasscode: @"1111"]
false
cy# [lockScreenManager attemptUnlockWithPasscode: @"8888"]
true
// Tweaks判断是否锁屏状态
static bool isLocked() {
if (%c(SBLockScreenManager)){
SBLockScreenManager * lockScreenManager = (SBLockScreenManager*) [%c(SBLockScreenManager) sharedInstance];
return [lockScreenManager isUILocked];
}
return NO;
}