FBE中的Home界面FallbackHome

2023-11-07

FallbackHome

FallbackHome继承Activity,是安卓系统启动后未解锁时的home界面。

在这里插入图片描述

Settings程序AndroidManifest.xml中定义了FallbackHome的intent-filter,可以看到Action:“android.intent.category.HOME”。

        <!-- Triggered when user-selected home app isn't encryption aware -->
        <activity android:name=".FallbackHome"
                  android:excludeFromRecents="true"
                  android:label=""
                  android:screenOrientation="nosensor"
                  android:taskAffinity="com.android.settings.FallbackHome"
                  android:theme="@style/FallbackHome">
            <intent-filter android:priority="-1000">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

FBE (File-Based Encryption)

安卓7.0后开始支持FBE,安卓10后FBE必须被支持。

FEB定义了两个存储位置供应用程序使用:

  • Credential Encrypted (CE) storage, which is the default storage location and only available after the user has unlocked the device.
  • Device Encrypted (DE) storage, which is a storage location available both during Direct Boot mode and after the user has unlocked the device.

Direct Boot

因为许多应用程序需要在为解锁的状态下使用,比如闹钟,电话,SystemUI,Settings等,这些程序就需要Direct Boot特性,在AndroidManifest.xml的application标签中添加如下属性以支持Direct Boot。

<application
    android:directBootAware="true"
    android:defaultToDeviceProtectedStorage="true">

defaultToDeviceProtectedStorage仅对system app可用,使其数据存储到Device Encrypted (DE) storage,而不是Credential Encrypted (CE) storage。

directBootAware对所有app都可用,使其所有组件都标记为加密感知。

The directBootAware attribute at the application level is shorthand for marking all components in the app as being encryption aware.

The defaultToDeviceProtectedStorage attribute redirects the default app storage location to point at DE storage instead of pointing at CE storage.

系统中存在2个接收"android.intent.category.HOME"的Activity,启动时处于加密状态,只能启动支持Direct Boot的FallbackHome,而不是熟悉的Launcher界面,FallbackHome判断用户是否解锁:

if (getSystemService(UserManager.class).isUserUnlocked()) {
	...
    getSystemService(PowerManager.class).userActivity(
                        SystemClock.uptimeMillis(), false);
    finish();
}

如果解锁,通过PowerManagerService.userActivity()重置timeout时间,关闭当前FallbackHome。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FBE中的Home界面FallbackHome 的相关文章

随机推荐

  • python代码编写规范

    最近两年的工作都是和运维相关 有时运维人员也会写一些python程序 但基本上都没有遵循相应的代码规范 一向粗暴 能用就行 既不考虑可读性也不考虑可维护性 作为一个开发人员有时候看他们写代码就很不舒服 今天就谈谈python写代码时的一些规
  • beforefieldinit释义

    首先让我们认识什么是 当字段被标记为beforefieldinit类型时 该字段初始化可以发生在任何时候任何字段被引用之前 这句话听起了有点别扭 接下来让我们通过具体的例子介绍
  • 黑苹果oc清除nvram_黑苹果完善之路-英特尔蓝牙「开启/关闭」功能完善教程

    小编开篇提醒 玩转黑苹果有风险 建议随时备份好自己的重要数据 很多机友安装黑苹果之后 打开蓝牙选项却发现 关闭蓝牙 选项是灰色的 无法进行选择 但是一些具有强迫症的机友内心可能会接受不了 所以就此出一期关于英格尔蓝牙驱动相关的详细教程 博通
  • 10 种机器学习算法的要点(附 Python 和 R 代码)

    http blog jobbole com 92021 本文由 伯乐在线 Agatha 翻译 唐尤华 校稿 未经许可 禁止转载 英文出处 SUNIL RAY 欢迎加入 翻译组 前言 谷歌董事长施密特曾说过 虽然谷歌的无人驾驶汽车和机器人受到
  • 什么是 IaaS? 基础结构即服务

    基础结构即服务 IaaS 是通过 Internet 配置和管理的即时计算基础结构 它是四类云服务中的一种 其余三种为软件即服务 SaaS 平台即服务 PaaS 和无服务器 IaaS 可根据需求快速纵向扩缩 你只需按实际使用量付费 它让你无需
  • 甘特图生产排程(APS)定制开发

    快速开发完成APS的数据可视化 订单展示 资源调度 智能排程等几乎全部功能模块 自动智能排程功能 提供专业需求分析师及开发团队 按需开发 全自动智能排程 这一APS的主要功能 能够实现自定义排程规则 一键式产生计划等高级功能 无需人工干预既
  • python虚拟环境理解 conda创建虚拟环境 pycharm配置运行环境

    python虚拟环境理解 conda创建虚拟环境 pycharm配置运行环境 一 什么是python的虚拟环境 python虚拟环境是为了让不同的项目能够在不同的python环境中运行 比如项目A需要python2 numpy3 1 项目B
  • Openwrt学习笔记(四)——系统开机启动

    1 内核启动 bootloader将kernel从flash中拷贝到RAM以后 bootloader将退出舞台 并将这个舞台交给了kernel 中间有些交接的细节过程 这里不赘述 我们直接从kernel的启动开始分析 不同平台的kernel
  • 算法专题之矩阵

    前言 矩阵相关的算法在互联网世界有着广泛的应用 比如图片的像素修改 上一小结介绍过 获取地图路径方案等 在数学中 一个矩阵说穿了就是一个二维数组 矩阵相关的基础算法也都是基于二维数组的基础上完成各类数据操作 本小节列举了前端面试中高频出现的
  • Error:fatal error C1010: unexpected end of file while looking for precompiled head

    场景 在VC6 0进行编写C 代码时 创建了一个 简单的程序 s 然后编译就爆出这个错误 场景复现 创建流程 点击左上角的 文件 然后点击 新建 在左上方选择工程 然后下方选择 Win32 Console Application 在右侧填写
  • 接口参数返回值 根据不同的值去改变样式

    改变接口返回值的样式 div class btn scope row notificationStatus div css部分 noticion active border 1px
  • ReactJS报错 React createElement error type is invalid — expected a string ...

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Warning React createElement type is invalid expected a string for built in components
  • Lua中使用毫秒精度时间的方法

    这篇文章主要介绍了lua中使用毫秒精度时间的方法 本文讲解使用luasocket库实现毫秒精度时间 需要的朋友可以参考下 lua自带的时间函数只能到秒的精度 为了统计到毫秒精度的时间 可以使用luasocket 下载地址http files
  • 操作系统之线程

    一 线程简介 早期的计算机系统只允许一个任务独占系统资源 一次只能执行一个程序 由于对程序并发执行的需求 引入了多进程 进程的引入可以解决多任务支持的问题 但是也产生了新的问题 每个进程分别分配资源开销比较大 进程频繁切换导致额外系统开销
  • 用Docker部署SSM项目

    Docker环境的安装 卸载原有的环境 sudo yum remove docker docker client docker client latest docker common docker latest docker latest
  • java实现文件下载功能

    在工作中经常会遇到为文件下载的功能 但因为公司的各种下载时的要求不同 所以都在下载功能上或多或少的加减一些 今天就总结一下我写过的下载功能MVC的思想controller层 Description 下载 Param downloadPath
  • java 内部类面试题_面试题(一)关于内部类的面试题

    一 看下面代码求值 1 要求 使用已知的变量 在控制台输出30 20 10 2 classOuter 3 public int num 10 4 classInner 5 public int num 20 6 public voidsho
  • kvm限制虚拟主机流量带宽

    使用场景 在工作中需要对某一个主机进行网络限制 合理使用网络流量 操作方式 kvm限制主机流量需要修改xml文件 最好关机后操作 kvm的限制流量的计算方式为 限制带宽数 kb 8 xml所需要的数字 实例
  • [OpenHarmony RK3568] (一)环境搭建

    文章目录 一 概述 二 下载依赖和代码 2 1 安装对应依赖包 2 2 下载对应代码 2 2 1 git配置 2 2 2 安装repo 2 2 3 获取代码 三 开始编译 3 1 下载工具链 3 2 开始编译 一 概述 本系列文章会讲述RK
  • FBE中的Home界面FallbackHome

    FallbackHome FallbackHome继承Activity 是安卓系统启动后未解锁时的home界面 Settings程序AndroidManifest xml中定义了FallbackHome的intent filter 可以看到