Android FBE学习笔记

编程入门 行业动态 更新时间:2024-10-08 13:32:42

Android FBE<a href=https://www.elefans.com/category/jswz/34/1770117.html style=学习笔记"/>

Android FBE学习笔记

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广播

<applicationandroid:directBootAware="true"android:defaultToDeviceProtectedStorage="true"><receiverandroid: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目录下,实现兼容。

参考资料:
.html
.html

更多推荐

Android FBE学习笔记

本文发布于:2024-03-12 14:19:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1731699.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   Android   FBE

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!