FDE之默认密码开机流程

在Android M版本里,如果没有修改过锁屏密码,那android 系统就会用默认密码加密,默认密码加密之后的开机流程如下。

1,/system/core/init/builtins.cpp的do_mount_all接口,mount data会返回FS_MGR_MNTALL_DEV_MIGHT_BE_ENCRYPTED。

447    } else if (ret == FS_MGR_MNTALL_DEV_MIGHT_BE_ENCRYPTED) {
448        property_set("ro.crypto.state", "encrypted");
449        property_set("ro.crypto.type", "block");
450        property_set("vold.decrypt", "trigger_default_encryption");

2,Mount /data的返回值值FS_MGR_MNTALL_DEV_NEEDS_ENCRYPTION

445    if(ret == FS_MGR_MNTALL_DEV_NEEDS_ENCRYPTION) {

446       property_set("vold.decrypt", "trigger_encryption");

3,defaultcrypto被触发,这个在rc文件中配置

499on property:vold.decrypt=trigger_default_encryption
500    start defaultcrypto

 

663service defaultcrypto /system/bin/vdc --wait cryptfs mountdefaultencrypted

664    disabled

665    oneshot

666    # vold will setvold.decrypt to trigger_restart_framework (default

667    # encryption)or trigger_restart_min_framework (other encryption) 

         4,mountdefaultencrypted会去调用cryptfs_mount_default_encrypted

        1),获取password type

        2),默认密码执行cryptfs_restart_internal

3641        } else if (cryptfs_check_passwd(DEFAULT_PASSWORD) == 0) {
3642            SLOGD("Password is default - restarting filesystem");
3643            cryptfs_restart_internal(0);

5,cryptfs_restart_internal(0)去mount data




        ----------------------------------------------------------------------------------------------------------------------------------------------------------------

尽请关注手机安全之家,了解更多Android Security知识。

关注方法:打开手机微信->通讯录->右上角"添加"->"搜号码"->输入"手机安全之家"->搜索。

或者而通过扫描下方二维码也可以添加。

FDE之默认密码开机流程_第1张图片

 


你可能感兴趣的:(FDE之默认密码开机流程)