首页 > 编程知识 正文

教师政治学习笔记,信息技术2.0学习笔记

时间:2023-05-06 14:59:45 阅读:235681 作者:2804

1.FBE和FDE

FDE:Full-Disk Encryption 全盘加密
FBE:File-Based Encryption基于文件的加密

2.适配FBE 2.1存储位置

ce默认存储位置(user/0):用户解锁后才可以使用;
de(user_de/0)”直接启动“(direct boot)模式和用户解锁后均可用;
在开机未解锁的场景,ce目录被锁定,只能访问de目录,但是有些应用场景,例如闹钟,即使开机未解锁也需要提供服务,因此需要适配FBE。

2.2适配

1.配置
在manifest里面配置 android:directBootAware=“true”,并设置一个广播接收器,用户解锁之后,可以收到android.intent.action.LOCKED_BOOT_COMPLETED广播

<application android:directBootAware="true" android:defaultToDeviceProtectedStorage="true"><receiver android:directBootAware="true" > ... <intent-filter> <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /> </intent-filter></receiver>

2.访问de
在“直接启动”模式下,需要调用Context.createDeviceProtectedStorageContext() 创建另一个 Context 实例。
3.一些api

查询用户是否解锁 public static boolean isUserUnlocked(Context context) { if (Build.VERSION.SDK_INT >= BuildUtil.N) { UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE); return userManager.isUserUnlocked(); } else { return false; }} 迁移数据 Context.moveSharedPreferencesFrom() Context.moveDatabaseFrom() 3.场景

例如天气,并不涉及到用户的隐私,因此可以直接将所有的数据从ce迁移到de当中,即从user/0目录迁移到user_de/0目录。
在“直接启动”模式下,通过Context.createDeviceProtectedStorageContext() 访问de文件,当收到android.intent.action.LOCKED_BOOT_COMPLETED广播之后,可以使用Context.moveSharedPreferencesFrom() 和 Context.moveDatabaseFrom() 方法将ce目录下的内容迁移到de目录下,实现兼容。

参考资料:
https://source.android.com/security/encryption/full-disk.html
https://source.android.com/security/encryption/file-based.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。