1. 加密方案整理
1.1. 简介
Android上加密方案分为全磁盘加密(FDE
)/文件加密(FBE
)/元数据加密(METADATA
)
均是针对userdata分区进行加密, 与其他分区并无关系.
本篇主要介绍下这三种加密方式硬件加密的实现框架
1.2. 判断机器采用何种加密方式
最直观的方式是可以通过分区表fstab
来区分
未加密/fde加密/fbe加密/metadata加密
1 | /dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check,encryptable=footer |
当前版本中最常见的是fbe加密的机型.
代码中判断是否加密:
1 | StorageManager.isEncrypted() |
native 层多是通过FstabEntry来判断是何种加密方式