锁屏密码重置与屏幕超时设置
密码重置
原理
setPassword() API 允许 Device Owner 重置设备的锁屏密码/PIN/图案——不需要知道当前密码。这和普通用户改密码(必须输入旧密码确认)不同。
用途
- 管理员统一管理:企业 kiosk 设备可以定期用 OwnDroid API 批量轮换锁屏密码
- 家长控制:孩子的设备锁屏密码可以被家长远程重置——前提是设备是 Device Owner 模式且家长掌握 OwnDroid 的 API Key
- 紧急恢复:自己忘了锁屏密码但还能解锁 OwnDroid 时,可以先重置锁屏密码
API 调用
val admin = ComponentName(context, Receiver::class.java)
dpm.setPassword(admin, "new_password")
安全边界
- 旧密码可以为空——Device Owner 直接覆盖
- 设置的密码必须满足设备的密码质量要求(比如最少 6 位、必须包含数字等),否则 API 会抛异常
- 无法绕过 biometric(指纹、面部)——biometric 是直接存硬件里的密钥,和锁屏密码是两条路径
屏幕超时设置
原理
setMaximumTimeToLock() API——Device Owner 可以强制设置屏幕自动关闭的最大等待时间。用户在系统设置里把屏幕超时设得比这个值还长时会被强制拉回 Device Owner 设定的时间。
操作
OwnDroid → 系统 → 找到「最大屏幕超时」选项,填入秒数(比如 300 秒 = 5 分钟)。
用途
- 安全:屏幕自动关闭时间越短,设备丢了被陌生人解锁的风险越低
- 省电:强制较短的超时时间延长续航
- 家长控制:不让孩子把屏幕超时设得很长导致一直亮屏耗电
与用户设置的关系
- Device Owner 设的是上限——用户可以设比这个上限更短的时间,但不能设更长的
- 如果 Device Owner 设了 300 秒上限,用户在系统设置里最多只能设 5 分钟