Android 12 和 Android 12L 版本说明

架构

AlwaysOnHotwordDetector 类更新

从 Android 12 开始,AlwaysOnHotwordDetector 类(包括其工厂方法 android.service.voice.VoiceInteractionService.createAlwaysOnHotwordDetector())是一个系统 API (@SystemApi),而不是公共 API。AlwaysOnHotwordDetector 类旨在供具有系统级权限的 Google 助理应用使用,通常与操作系统版本捆绑。在 Android 11 及更低版本中,系统会运行检查以确保调用方是当前活跃的 Google 助理应用,使其他第三方应用无法使用该 API,从而保护 API。

此外,Android 12 包含声音触发器功能方面的增强功能,可以通过声音触发器 API 改善与使用麦克风相关的权限归因和执行。麦克风的使用(包括间接使用,例如通过 SoundTriggerManager 或 AlwaysOnHotwordDetector 类使用)将归因于调用 AlwaysOnHotwordDetector 类的源软件包(Google 助理应用)。这可以增强用户隐私保护并提高使用麦克风的软件包的透明度。在 Android 11 及更低版本中,麦克风的使用归因于系统用户,因为源软件包并不直接使用声音触发器 API,而是通过位于 system_server 进程中更高级别的服务使用麦克风。

这些变更的影响如下:

  • 使用 AlwaysOnHotwordDetector 类的非系统应用无法基于 Android 12 API 进行编译,因为该 API 已从公开 Surface 中移除。
  • 系统可能会拒绝使用 AlwaysOnHotwordDetector 类的现有系统应用在运行时使用声音触发器功能。若要解决此问题并允许这些应用通过声音触发器访问麦克风,请为这些应用声明 RECORD_AUDIO 和 CAPTURE_AUDIO_HOTWORD 权限。

Android Rust 语言支持

Android 12 现在支持使用 Rust 代码。“设置”文档中新增了一个部分,为使用 Rust 在 Android 上进行开发提供指导。

如需详细了解 Android Rust 和各个模块并查看示例(以及获取 IDE 设置信息),请参阅新增的 Android Rust 部分:Android Rust 简介

启动映像头文件

Android 12 新增对启动映像头文件版本 4 的使用,该版本是支持通用内核映像 (GKI) 架构的设备的主要启动映像。Android 12 还提供了一个 boot_signature,用于检查内核和 ramdisk 的完整性。该检查在 VtsSecurityAvbTest 中完成,是使用 GKI 架构的设备必须执行的检查。

如需了解详情,请参阅启动映像头文件页面。

bootconfig 实现方面的变更

Android 12 中的 bootconfig 功能是一种将配置详细信息从 build 和引导加载程序传递给 Android 12 的机制,它取代了用于 Android 11 及更低版本的 androidboot.* 内核 cmdline 选项。此功能可用于将 Android 用户空间的配置参数与内核的配置参数分离开。

如需了解详情,请访问实现 Bootconfig

自定义后备字体

在 Android 12 之前,更新 AOSP 中设备已安装的字体文件(位于 /system/fonts 分区中)或供应商分区中设备已安装的字体文件(位于 /product/fonts 或 /system/fonts 分区中)需要由 OEM 进行系统更新。此要求对表情符号的兼容性具有重大影响。在 Android 12 中,借助 FontManager 系统服务,您可以管理已安装的字体文件,并且无需进行系统更新即可更新设备已安装的字体文件。

如需了解这项新功能,请参阅实现自定义后备字体

DMA-BUF 堆

在 Android 12 中,GKI 2.0 以 DMA-BUF 堆取代了 ION 分配器

启用语言区域过滤器

Android 12 引入了一项功能,可用于为新的设备类型配置默认系统语言和语言区域过滤器。借助此功能,您可以在出厂校准期间通过 oem/oem.prop 设置过滤器属性值和默认语言,并且无需将过滤器烘焙 (bake) 到系统映像中即可配置限制。

如需了解详情,请参阅启用语言区域过滤器

刷写供应商 ramdisk

Android 12 开始支持通过 fastboot 命令从设备中提取整个 vendor_boot 映像,从而刷写供应商 ramdisk。该命令会提示主机端 fastboot 工具读取供应商启动头文件、重置映像并刷写新映像。这包括对引导加载程序和 fastbootd 变更的支持,用于获取分区大小和偏移等必要数据。

如需了解详情,请参阅用户空间中的 fastboot 页面上的刷写供应商 ramdisk

GKI 版本控制

从 Android 12 开始,可以在构建时从内核提取 KMI 版本的 Android 版本部分并将其注入设备清单中。

如需更多详细信息,请参阅 GKI 版本控制

MM 事件 - 历史内存统计信息

在发布时搭载 Android 12 的设备可以使用 mm_events,这是一组在系统遇到内存压力时定期捕获的内存相关统计信息。mm_events 与 perfetto 跟踪机制集成,尽量避免增加性能开销。统计信息的收集在一段时间内(此时间可配置)保持活跃状态,定期捕获统计信息。

如需了解如何使用 mm_events 统计信息,请参阅 MM 事件 - 历史内存统计信息

系统提醒窗口的限制

为了提高 Android 生态系统的安全性,Android 12 加大了获取 SYSTEM_ALERT_WINDOW 权限的难度,并允许第三方应用阻止来自其他第三方应用的叠加层。

在 Android 12 中,系统不会向预安装应用自动授予 SYSTEM_ALERT_WINDOW 应用操作权限。此权限必须由用户明确授予后才能供预安装应用使用。系统应用仍会默认获得该权限。

第三方应用可以选择不在其上绘制应用叠加层。这提供了一种防范 cloak and dagger 式攻击的保护机制。此功能可供所有应用使用,以便让银行应用等安全敏感应用能够保护自身。如需使用此功能,应用必须在其清单中声明 HIDE_OVERLAY_WINDOWS 权限。

HIDE_NON_SYSTEM_OVERLAY_WINDOWS(signature|privileged) 已废弃,取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值