android锁屏密码忘记情况处理

android 6.0锁屏密码忘记处理方式

前情提要

今天工作当中碰到的情况,不知道工厂人员出厂时疏忽还是什么原因,测试出厂的时候加上了锁屏图案且没有删除。用户收到后开机无法正常进入系统。

解决办法

重置系统

这个就不详细说了,2种方式

  1. 重新烧录系统
  2. 长按电源音量键进入Recovery模式,擦除所有数据

​ 缺点:所有数据丢失,出厂时的设置丢失,内置软件和测试结果丢失

删除加密后的key文件

这个方式 需要root权限并且可以adb通讯,我们设备是自己做的设备,满足这2点要求。

执行命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
//重新挂载目录,变为可擦写
adb remount

//由于直接删除后重启设备,再次进入设置》安全》锁屏密码 设置程序会崩溃,所以删除设置的数据库,这3个文件会在重启后重新生成
adb shell data/system/locksettings.db
adb shell data/system/locksettings.db-shm
adb shell data/system/locksettings.db-wal

//android 6.0是gatekeeper.password.key(密码)gatekeeper.pattern.key(手势图案)
//android 6.0以下可能是password.key(密码)gesture.key(手势图案)
adb shell data/system/gatekeeper.password.key
adb shell data/system/gatekeeper.pattern.key

执行完成后 adb reboot 重启设备即可成功

​ 缺点:需要用户那边有些电脑知识才可执行

破解密码

这个方式要耗费点时间,取决于密码的复杂度,获取key文件后进行暴力破解

参考链接

密码加密方式(android6.0)

​ MD5(输入明文密码+设备的salt).Hex+SHA1(输入明文密码+设备的salt).Hex;

手势密码加密方式(android6.0)

​ 手势点数据(9宫格0~9数字 0位置就是00 9位置就是09)转化成对应的字节数组,SHA1加密;

总结

最终由于时间关系,采用了第二种方式,破解密码属于逆向工程方向了,现在搞有点吃力。