1. 延长解锁是什么?
延长解锁是安卓系统提供的一种安全与便利的平衡机制。它通过检测设备的环境(如是否被用户随身携带、是否在可信地点、是否连接到可信设备)来动态管理锁屏策略。当满足可信条件时,设备会保持解锁状态,即使用户按下电源键锁屏再亮屏,也不会要求输入密码。当设备离开可信环境时,自动重新启用锁屏密码。
2. 如何开启延长解锁,开启延长解锁时关键log是什么?
开启延长解锁(以贴身解锁为例)的步骤:
设置 -> 安全与隐私 -> 更多安全设置 -> 智能锁 -> 贴身解锁(不同厂商路径可能略有差异)
开启贴身解锁时,系统会要求用户先输入一次锁屏密码(确保是用户本人操作),然后开启功能。
关键log打印(注意:不同厂商可能定制,以下为通用安卓系统日志):
当用户开启贴身解锁时,会看到如下日志:
TrustAgent: 信任代理被启用
KeyguardUpdateMonitor: 监听信任状态变化
可能还会看到传感器注册的日志,因为贴身解锁需要持续监控加速度计等传感器。
延长解锁开启与关闭的全部流程是什么?
开启流程:
用户进入设置,选择开启贴身解锁。
系统验证用户锁屏密码(确保安全)。
系统启用贴身解锁信任代理,并开始监听传感器数据。
系统记录用户当前的运动模式作为初始模型(学习阶段)。
关键日志:
// 用户进入智能锁设置
I/ActivityManager: Displayed com.android.settings/.security.SecuritySettings
// 用户选择贴身解锁
I/Settings: SmartLock - onBodyDetectionEnabled true
// 系统验证锁屏密码
I/KeyguardUpdateMonitor: verifyPassword: success=true
// 信任代理被启用
I/TrustAgent: [OnBodyTrustAgent] onEnabledChanged: true
// 传感器服务开始监听
I/SensorManager: registerListener: sensor=ACCELEROMETER, rate=20000ms
// 贴身解锁开始学习阶段
I/OnBodyDetector: startLearning: duration=30000ms
关闭流程:
用户进入设置,关闭贴身解锁。
系统立即停止信任代理,并取消传感器监听。
系统清除之前学习的运动模型。
关键日志:
// 用户进入设置关闭贴身解锁
I/Settings: SmartLock - onBodyDetectionEnabled false
// 信任代理被禁用
I/TrustAgent: [OnBodyTrustAgent] onEnabledChanged: false
// 传感器监听被取消
I/SensorManager: unregisterListener: sensor=ACCELEROMETER
// 清除学习模型
I/OnBodyDetector: clearLearningData
贴身解锁的日常工作流程(非开启关闭,而是使用中):
- 用户正常解锁设备(例如输入密码)。
- 解锁后,贴身解锁开始工作,持续监测设备运动模式。
- 当设备检测到与学习阶段相似的运动模式时,信任代理会授予信任,设备在下次亮屏时不会锁定。
- 当设备静止一段时间(例如放在桌上),信任被撤销,下次亮屏需要密码。
关键日志:
// 用户正常解锁
I/KeyguardUpdateMonitor: onAuthenticationSucceeded: type=PASSWORD
// 贴身解锁开始监测
I/OnBodyDetector: startDetection
// 检测到匹配的运动模式,授予信任
I/TrustAgent: grantTrust: message="On-body detected", duration=300000ms
// 用户按电源键锁屏,然后亮屏,因为信任存在,直接进入主界面
I/KeyguardViewMediator: keyguardDone: authenticated=true, wakeAndUnlocking=false
// 设备静止,撤销信任
I/TrustAgent: revokeTrust: reason="Device stationary for too long"
注意:
- 以上日志为通用安卓系统日志,实际设备中可能因厂商定制而有所不同。在MTK平台,可能还会有一些平台特有的日志,例如与传感器Hub相关的日志。
- 延长解锁虽然方便,但可能降低设备安全性。因为攻击者可能在某些情况下模拟可信环境(例如在可信地点或偷走设备后一直保持设备运动)。
因此,在安全性要求高的场景,建议用户关闭延长解锁功能。
830

被折叠的 条评论
为什么被折叠?



