directBootAware 和 defaultToDeviceProtectedStorage
以下为个人理解,如错请评
CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/
DE: 设备加密 (DE) 存储空间, 实际路径/data/user_de/
系统解锁前也能够运行一些App,但是需要App在manifest里显式声明android:directBootAware=true。
defaultToDeviceProtectedStorage :
该flag使App默认存储位置为DE,系统限制在解锁前只有DE区域的存储可用,若访问CE区域会抛出异常,导致App退出。
异常信息: java.lang.IllegalStateException: SharedPreferences in credential encrypted storage are not available until after user is unlocked
directBootAware:
该flag使App仅能够在系统未解锁之前运行起来。但是如果没有搭配 defaultToDeviceProtectedStorage flag一起使用的话,在解锁前依然不能访问CE区域。
为什么有defaultToDeviceProtectedStorage的存在?
1. DE区域可能是无加密保护的
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee