现在新出品的手机,基本都加密了data分区,旨在保障用户数据的安全。其中高通方案的手机使用的加密方案是QSEE(高通安全执行环境,Qualcomm Security Executing Environment),每次启动设备时会有一个专门的过程来解密data分区。然而,TWRP Recovery默认并没有附带高通的加密组件,因此在启动时会无法解密和访问data分区,使得体验大打折扣。因此必须把高通的加密组件从Android系统中移植过来。
QSEE加密组件的组成
高通QSEE组件由本体qseecomd程序、Keystore及其依赖库组成。
首先是qseecomd。加解密过程全由qseecomd完成,因此移植过程相对比较简单。
Keystore是加解密过程所必需的“钥匙”,为一个so格式的库文件,每个高通方案设备有属于自己的Keystore,路径为/system/vendor/lib64/hw/keystore..so(32位处理器型号请将lib64改为lib)。
而qseecomd运行还需依赖其它库文件,查看依赖可使用readelf -d qseecomd:
Dynamic section at offset 0x2cb8 contains 35 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libc.so]
0x0000000000000001 (NEEDED) Shared library: [libcutils.so]
0x0000000000000001 (NEEDED) Shared library: [libutils.so]
0x0000000000000001 (NEEDED) Shared library: [liblog.so]
0x0000000000000001 (NEEDED) Shared library: [libdl.so]
0x0000000000000001 (NEEDED) Shared library: [libQSEEComAPI.so]
0x0000000000000001 (NEEDED) Shared library: [libdrmfs.so]
0x0000000000000001 (NEEDED) Shared library: [libc++.so]
0x0000000000000001 (NEEDED) Shared library: [libm.so]
......
值得注