参考链接:https://www.cnblogs.com/bobfly1984/p/14090078.html
总结
根据/data/unencrypted/key和/data/misc/vold/user_keys/de/0/路径是否存在判断首次开机还是非首次开机
system DE存储空间和user DE存储空间使用keymasterkey加解密,密钥元素secret和token为空
不设置锁屏密码,user CE存储空间使用keymasterkey加解密,密钥元素secret和token为空
设置锁屏密码,user CE存储空间使用withoutkeymastery加解密,密钥元素secret为非空,token为空
删除锁屏密码后,user CE 存储空间采用 不设置锁密码 加密策略
添加锁屏密码、修改锁屏密码、删除锁屏密码后在添加锁屏密码,传下来的secret值是一样的,确保不同场景下加密的文件都能解密
对user CE存储空间加解密的key,不管是设置锁屏密码还是不设置锁屏密码,这个key始终是一样的即首次开机生成的key。不同的只是加密元素和加密方式。
/data/misc/vold/user_keys/ce/0/current # cat stretching
nopassword // 没有设置锁屏密码
none // 设置锁屏密码
/data/misc/vold/user_keys/ce/0/current/keymaster_key_blob // 此文件存在意味keymaster加解密、否则使用withoutkeymastery加解密