第3章 PIN码设置、加密、存储
第3章 PIN码设置、加密、存储
1.前提介绍:该密码保存在/data/misc/keystore/user_0/.masterkey,可在adb shell后,ls –al /data/misc/keystore/user_0/.masterkey查看文件存在与否。
下面讲述的是,从设置点击 安全-屏幕锁定方式,设定pin-设置pin码,通知-完成,到pin如何进行加密和存储的。完成这个button是一个设置中通用的一个按键,不再通知界面的布局中。
2. 这个按键响应ChooseLockPassword.java的onClick方法,执行以下代码:
图3.1执行onclick()
进入handleNext()方法,当确认密码正确时,执行startSaveFinsh操作
图3.2执行startSaveAndFinsh()
看一下startSaveFinsh()函数的具体执行过程,在该过程中会调用SaveAndFinishWorker类的start方法。
图3.3在该过程中会调用ChooseLockPassword.java文件中的SaveAndFinishWorker的start()方法
3. 进入ChooseLockPassword.java文件中的SaveAndFinishWorker类里面执行start()方法,看一下start方法的详细内容。
SaveAndFinishWorker继承于SaveChosenLockWorkerBase类,在SaveAndFinishWorker的satrt方法的最后会执行staart(),这个start是SaveChosenLockWorkerBase类里面的方法。
图3.4 ChooseLockPassword.java文件的SaveAndFinishWorker类里执行start()
- 进入SaveChosenLockWorkerBase类查看具体的start方法。在该start方法中会调用ChooseLockPassword 类的saveAndVerifyInBackground()方法。
图3.5在该start方法中会结束ChooseLockPassword 的saveAndVerifyInBackground()
- ChooseLockPassword 类的saveAndVerifyInBackground(),在这个方法里面会调用LockPatternUtils.java文件的saveLockPassword()方法
图3.6调用LockPatternUtils.java文件的saveLockPassword()方法
- 看具体的LockPatternUtils.java文件的saveLockPassword()方法。进入该方法来保存密码。通过getLockSettings()间接调用LockSettingsService的setLockCredential方法。
saveLockPassword中会做一次密码检查是否有空或者是否是4位,pin只能是4位,再传pin password,类型,userhandle下去。
图3.7通过getLockSettings()间接调用LockSettingsService的setLockCredential方法
a. LockPatternUtils.java文件的getLockSettings()方法。
(在LockSettingsService类的onstart方法中有把mLockSettingService赋值给lock_settings,然后在LockPatternUtils中对其进行调用)。
实际上是:通过AIDL,调用的是 LockSettingsService类的service端的setLockCredential()方法。
图3.8getLockSettings调用的是 LockSettingsService类的lock_settings
b. 通过AIDL,调用的是 LockSettingsService类service端的setLockCredential方法。LockSettingsService类的onstart方法中有把mLockSettingService赋值给lock_settings,然后在第8步被调用了。
图3.9 LockSettingsService类中的start方法
- LockSettingsService.java类。
在第7步中,LockPatternUtils.java文件的setLockCredential()方法中有如下代码:getLockSettings().setLockCredential(password, CREDENTIAL_TYPE_PASSWORD, savedPassword, requestedQuality, userHandle)。
注意:验证都是经过LockSettingsService,然后再到GateKeeper。
所以:通过AIDL,调用的是 LockSettingsService.java service端的setLockCredential方法。
setLockCredential方法会调用setLockCredentialInternal()方法。
- 看一下LockSettingsService的setLockCredential方法:
图3.10调用setLockCredentialInternal()方法
- 看一下LockSettingsService的setLockCredentialInternal()方法,在做writePasswordHash之前,有执行enrollCredential。
图3.11把pin存储起来
第3章 PIN码设置、加密、存储相关推荐
- 关于重装Win10系统卡死在PIN码设置步骤
ctrl + shift + F3
- 电脑pin码忘了登录不进系统_智慧登录:玩转Windows Hello!
自PC诞生以来,它给我们的工作.生活带来了极大便利.但同时也带来了一些安全隐患.因为我们习惯了把重要资料存储在电脑中,诸如私人照片.商业资料.财务数据,甚至各种账户密码等.一旦被他人使用,后果不堪设想 ...
- 密码忘了怎么办?——如何找回多可系统的加密存储密码
今天有用户来电话说,他忘记加密存储的密码了,登不进系统,怎么办? 嗯,太正常了,非常理解,对我们大多数人来说,密码就是用来忘记的... 密码忘了不可怕,只要能找回就可以! 在多可文档管理系统里,你可以 ...
- Windows10系统账号密码太复杂,PIN密码设置
以前我们登录Windows系统,一般都是采用输入密码的方式,没有密码不安全,密码简单了更不安全.在Windows 10系统中,微软加入了PIN码简单数字登录.画图登录等简单化登录方式,更融入了便捷的W ...
- 3-AT命令交互之-PIN码
PIN码,全称Personal Identification Number.就是SIM卡的个人识别密码.PUK码全称PIN Unlocking Key,是PIN码的解锁码,PIN码一般在修改前原始密码 ...
- bluez 设置绑定pin码_国家工信部紧急提醒:一定要设置这个密码!
近日,一名网友分享了自己的亲身经历,因为手机被盗,不法分子通过手机上的App,窃取他的个人信息,进而申请网贷,造成财产损失.该文章通过互联网大量转发,引发网民对手机个人信息保护和财产安全的担忧. 针对 ...
- bluez 设置绑定pin码_国家工信部重要提醒:一定要设置这个密码!
近日,一名网友分享了自己的亲身经历,因为手机被盗,不法分子通过手机上的App,窃取他的个人信息,进而申请网贷,造成财产损失.该文章通过互联网大量转发,引发网民对手机个人信息保护和财产安全的担忧. 针对 ...
- SIM卡PIN码到底有什么用?华为手机如何设置SIM卡锁?
最近看到一篇热文<一部手机失窃而揭露的窃取个人信息实现资金盗取的黑色产业链>,一个自称是信息安全的专家,自述因为手机失窃,SIM卡挂失失败遭遇手机黑产,个人身份信息.各种支付账号密码等信息 ...
- pe本地计算机策略,Win10怎么设置PIN码|本地组策略编辑器设置PIN复杂性方法
Win10中,PIN码是一个额外的安全功能,可以保护用户账户以及计算机内的敏感数据,通常情况下,PIN码的最短位数是4位,如果希望PIN码更加的安全,可以设置一个超长位数的PIN码.这篇文章就是PE吧 ...
最新文章
- 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(一):扩展方法概述
- 使用Visual Studio宏来自动生成代码 [ Visual Studio | 宏 | 自动生成代码 ]
- vivado----fpga硬件调试 (四)----mark_debug
- Java Private、protected、public、以及无修饰符的可见范围
- linux screen 配置
- VC 文件操作大全,打开,保存,复制,删除,查找等
- 【python数据挖掘课程】十八.线性回归及多项式回归分析四个案例分享
- pythoncharm安装时出错误_python01:pycharm中安装包时所遇到的问题
- linux 文件差异备份,Linux使用 tar命令-g参数进行增量+差异备份、还原文件
- python编程(数据库操作)
- lingo软件的基本使用方法_(PS软件)PHOTOSHOP基础操作和基本工具的使用
- Azure实践之通过automation管理资产
- 扣扣机器人唱歌_qq小冰机器人唱歌脚本-qq群机器人小冰无限唱歌插件下载v6.7.1 安卓版-腾牛安卓网...
- ps 去除gif水印
- IsKindOf的用法简介
- python简易搭建环境_在Windows上搭建Python2.7环境
- 查询递归表SQL,分类表查询,递归表数据结构转平级查询优化SQL
- 定制NFC卡片/ntag213芯片卡/手机NFC感应卡片
- python的pandas库题1
- MOTOMAN机器人网络控制的实现