Android 12 和 Android 12 發行說明

本頁總結了 Android 12 和 Android 12 版本的主要功能,並提供了更多信息的鏈接。這些功能摘要是根據此站點上功能的文檔位置組織的。

建築學

AlwaysOnHotwordDetector 類更新

從 Android 12 開始,包括其工廠方法android.service.voice.VoiceInteractionService.createAlwaysOnHotwordDetector()AlwaysOnHotwordDetector 類是系統 API ( @SystemApi ),而不是公共 API。 AlwaysOnHotwordDetector類旨在供具有系統級權限的助手應用程序使用,這些權限通常與操作系統版本捆綁在一起。在 Android 11 及更低版本中,API 受到檢查的保護,以確保調用者是當前處於活動狀態的 Google 助理應用,從而使其他第三方應用無法使用該 API。

此外,Android 12 還包括聲音觸發功能增強功能,以通過聲音觸發 API 改進與麥克風使用相關的權限歸屬和執行。麥克風的使用,包括間接使用,例如通過SoundTriggerManagerAlwaysOnHotwordDetector類,歸因於調用AlwaysOnHotwordDetector類的原始包(Assistant 應用程序)。這提高了使用麥克風的包裹的用戶隱私和透明度。在 Android 11 及更低版本中,麥克風使用歸因於系統用戶,因為原始包不直接使用聲音觸發 API,而是通過駐留在system_server進程中的更高級別的服務。

這些變化的影響如下:

  • 使用AlwaysOnHotwordDetector類的非系統應用程序無法針對 Android 12 API 進行編譯,因為該 API 已從公共界面中刪除。
  • 使用AlwaysOnHotwordDetector類的現有系統應用程序可能會被拒絕在運行時使用聲音觸發功能。要解決此問題並允許這些應用通過聲音觸發訪問麥克風,請為這些應用聲明RECORD_AUDIOCAPTURE_AUDIO_HOTWORD權限。

Android Rust 語言支持

Android 12 現在支持使用 Rust 代碼。安裝文檔中新增的部分為使用 Rust 在 Android 上進行開發提供了指導。

有關 Android Rust、各種模塊的更多信息以及查看示例(以及獲取 IDE 設置信息),請參閱Android Rust Introduction中的新 Android Rust 部分。

引導映像頭

Android 12 添加了啟動映像標頭版本 4 的使用,它是支持通用內核映像 (GKI)架構的設備的主要啟動映像。 Android 12 還提供了用於檢查內核和 ramdisk 完整性的boot_signature 。對於使用 GKI 架構的設備,需要在VtsSecurityAvbTest中進行檢查。

要了解更多信息,請參閱引導映像標題頁面。

對實現 bootconfig 的更改

Android 12 中的 bootconfig 功能是一種將配置詳細信息從構建和引導加載程序傳遞到 Android 12 的機制,它取代了用於 Android 11 及更低版本的androidboot.*內核命令行選項。此功能提供了一種將 Android 用戶空間的配置參數與內核的配置參數分開的方法。

要了解更多信息,請訪問實施 Bootconfig

自定義字體回退

在 Android 12 之前,在 AOSP(在/system/fonts分區中)或供應商分區(在/product/fonts/system/fonts分區中)更新設備安裝的字體文件需要 OEM 進行系統更新。此要求對錶情符號兼容性有重大影響。在 Android 12 中,您可以使用FontManager系統服務來管理已安裝的字體文件和更新設備安裝的字體文件,而無需系統更新。

有關此新功能的信息,請參閱實施自定義字體回退。

DMA-BUF 堆

在 Android 12 中,GKI 2.0將 ION 分配器替換為 DMA-BUF 堆

啟用區域設置過濾器

Android 12 引入了一項功能,您可以使用該功能為新設備類型配置默認系統語言和區域設置過濾器。這使您可以在工廠校準期間通過oem/oem.prop設置過濾器屬性值和默認語言,並在不將過濾器烘焙到系統映像中的情況下配置限制。

有關更多信息,請參閱啟用區域設置過濾器

刷新供應商 ramdisk

Android 12 通過從設備中提取完整的vendor_boot映像的 fastboot 命令引入了對刷新供應商 ramdisk 的支持。該命令提示主機端快速啟動工具讀取供應商啟動標頭、重新映像並刷新新映像。此支持包括引導加載程序和 fastbootd 更改以獲取必要的數據,例如分區大小和偏移量。

有關更多信息,請參閱用戶空間中的快速啟動頁面上的刷新供應商 ramdisk

GKI 版本控制

從 Android 12 開始,KMI 版本的 Android 發布部分可以從內核中提取出來,並在構建時注入到設備清單中。

有關詳細信息,請參閱GKI 版本控制

MM events-歷史內存統計

在 Android 12 上啟動的設備可以利用mm_events ,這是一組與內存相關的統計信息,當系統遇到內存壓力時會定期捕獲這些統計信息。 mm_eventsperfetto跟踪機制集成,並增加了最小的性能開銷。統計信息收集在可配置的時間段內保持活動狀態,定期捕獲統計信息。

有關如何使用mm_events統計信息的信息,請參閱MM 事件 - 歷史內存統計信息。

系統警報窗口限制

為了提高 Android 生態系統的安全性,Android 12 增加了獲取SYSTEM_ALERT_WINDOW權限的難度,並允許第三方應用阻止來自其他第三方應用的覆蓋。

在 Android 12 中,預安裝的應用程序不會自動授予SYSTEM_ALERT_WINDOW appOp。它必須由用戶明確授予,然後預安裝的應用程序才能使用它。默認情況下,系統應用程序仍會獲得權限。

第三方應用程序可以選擇不讓應用程序覆蓋在它們上面。這提供了一種針對cloak and dagger式攻擊的保護機制。這適用於所有應用程序,以便安全敏感的應用程序(例如銀行應用程序)可以保護自己。要使用此功能,應用程序必須在其清單中聲明HIDE_OVERLAY_WINDOWS權限。

HIDE_NON_SYSTEM_OVERLAY_WINDOWS(signature|privileged)已棄用,取而代之的是HIDE_OVERLAY_WINDOWS

供應商引導分區更改

使用啟動映像頭版本 4 的 Android 12 設備支持vendor_boot分區中的多個供應商 ramdisk。這些 ramdisk 片段在供應商 ramdisk 部分中串行連接。供應商 ramdisk 表描述了供應商 ramdisk 部分的佈局和每個供應商 ramdisk 片段的元數據。

由於 Android 12 及更高版本中供應商啟動分區的更改,您不能使用default作為供應商 ramdisk 片段名稱;它被指定為保留。在任何情況下都不允許使用它來命名供應商 ramdisk 片段。

要了解更多信息,請參閱供應商引導分區多個供應商 ramdisk

聲音的

組合音頻設備路由

組合的音頻設備路由功能增加了對同時將音頻流式傳輸到多個音頻設備的支持。使用此功能,特權應用可以通過系統 API 為特定策略選擇多個首選設備。應用程序可以通過使用該功能提供的公共 API 更準確地發現音頻設備的能力。

有關詳細信息,請參閱組合音頻設備路由頁面。

音頻 HAL V7 的更新

為了解決向後兼容性問題,從 Android T 開始,所有 HAL 更改都必須使用穩定的 AIDL。為了準備和加強未來的 AIDL 採用,Android 12 中的音頻 HAL 版本 7 進行了重大更改。

有關詳細信息,請參閱音頻 HAL V7 部分的更新音頻策略示例

相機

可折疊設備的相機靜態元數據條目

Android 12 引入了deviceStateOrientationMap相機靜態元數據條目,允許相機 HAL 通知相機客戶端和相機框架由設備折疊狀態的變化觸發的傳感器方向變化。可折疊設備可以選擇使用一個或多個邏輯相機,這些邏輯相機由具有不同傳感器方向的物理設備組成,用於不同的設備折疊狀態。 deviceStateOrientationMap元數據條目允許相機框架確保在捕獲結果中的活動物理 ID 更改時應用必要的輸出表面轉換。

有關更多詳細信息,請參閱metadata_definitions.xml

CameraX 供應商擴展支持要求

在 Android 12 中,支持 CameraX 擴展的設備必須將ro.camerax.extensions.enabled屬性設置為true ,以便查詢設備是否支持擴展。

有關更多信息,請參閱在設備上設置供應商庫

四拜耳相機傳感器支持

Android 12 引入了平台 API,讓應用可以利用具有超高分辨率攝像頭傳感器的設備,這些攝像頭傳感器通常具有四邊或非拜耳模式,可在圖像質量和低光性能方面提供靈活性。新的 API支持這些傳感器的行為,考慮到它們在“最大分辨率”模式而不是“默認”模式下運行時可能支持不同的流配置和組合。

要實現對超高分辨率相機傳感器的相機 HAL 支持,設備製造商必須對以下文件進行更改:

兼容性

SIM 卡的 ADN 支持要求

從 Android 12 開始,用於 CTS 測試的設備中的所有 SIM 卡都必須支持存儲縮位撥號號碼 (ADN)。

有關詳細信息,請參閱屏幕和存儲

相機 ITS 更新

Android 12 對相機圖像測試套件 (ITS) 進行了各種更新,包括新的和更新的測試、重構為 Python 3 以及採用 Mobly 測試框架。

有關詳細信息,請參閱Android 12 相機圖像測試套件發行說明

CDD 更新

Android 12 兼容性定義文檔以前版本的基礎上進行了迭代,更新了新功能並更改了以前發布的功能的要求。

連接性

5G網絡切片

Android 12 支持 5G 網絡切片,使用網絡虛擬化將單個網絡連接劃分為多個不同的虛擬連接,為不同類型的流量提供不同數量的資源。這允許網絡運營商將一部分網絡專門用於為特定客戶群提供特定功能。

更多信息,請參見5G 網絡切片

配套設備管理器配置文件

以 Android 12 及更高版本為目標的應用可以在連接到手錶時使用配套設備配置文件。使用配置文件將授予設備類型特定的一組權限綁定到一個步驟中,從而簡化了註冊過程。

手機屏幕截圖顯示了授予權限的提示

一旦設備連接,捆綁的權限就會授予配套應用程序,並且僅在設備關聯時才會持續。刪除應用程序或刪除關聯會刪除權限。

有關詳細信息,請參閱配套設備配置文件

IMS 服務權利 (TS.43)

Android 12 包括對TS.43 Service Entitlement Configuration的支持,這是一種 GSMA 規範,定義了用於激活服務的權利驗證步驟,包括 Voice-over-Wi-Fi (VoWiFi)、Voice-over-LTE (VoLTE)、SMS over IP (SMSoIP)、eSIM 配套設備(與請求設備相關聯)的設備上服務激活 (ODSA) 和數據計劃信息。

有關更多信息,請參閱IMS 服務權利

IMS單一註冊

Android 12 增加了對單一註冊模型的支持,以提供 MMTEL 和 RCS 功能。此模型允許設備通過設備的ImsService提供的單個 IMS 註冊來管理所有 IMS 功能。與雙註冊模式在一台設備上管理多個IMS註冊相比,單註冊減少了運營商網絡的流量並提高了可靠性。

有關更多信息,請參閱IMS 單一註冊

位置時區檢測

Android 12 包含位置時區檢測,這是一項可選的自動時區檢測功能,允許設備使用其位置和時區地圖數據來確定當前時區。

有關詳細信息,請參閱位置時區檢測

MAC 隨機化

Android 12 引入了非持久 MAC 隨機化類型,允許 Android 在每次連接開始時重新隨機化某些網絡的 MAC 地址。

有關詳細信息,請參閱MAC 隨機化行為

網絡選擇

Android 12 引入了一種使用NetworkScore類的新網絡選擇機制。網絡選擇會影響 Android 如何滿足應用和系統網絡請求,並影響如何選擇應用的默認網絡。

有關詳細信息,請參閱網絡選擇

通知調用樣式

從 Android 12 開始,我們建議應用使用新的通知樣式CallStyle來處理來電和正在進行的語音和視頻通話。這種通知樣式包括用於接聽、拒絕和掛斷電話的操作按鈕。它還使用與對話相同的以人為中心的風格,這與其將呼叫通知排名在陰影頂部的行為一致。

對於使用CallStyle通知樣式的應用程序,它們必須使用全屏意圖或前台服務(具有關聯的權限)。這種風格將呼叫通知排在陰影頂部。對於正在進行狀態的通話,這種風格會在狀態欄上添加一個芯片,讓用戶可以快速返回到通話的應用程序。

有關詳細信息,請參閱呼叫通知

通行證更新

Android 12 引入了 Passpoint R3 和其他 Passpoint 功能,例如條款和條件、場地信息 URL、修飾的身份前綴和取消身份驗證即將處理。

有關這些功能的更多信息,請參閱Passpoint (Hotspot 2.0)

快速訪問錢包更新

在 Android 12 或更高版本中,快速訪問錢包功能可從陰影中獲得,而不是像 Android 11 中那樣從電源菜單中獲得。錢包 UI 現在在系統 UI 中運行,位於frameworks/base/packages/SystemUI/src/com/android/systemui/wallet

有關詳細信息,請參閱快速訪問錢包

簡化的連接用戶體驗

Android 12 提供可選的簡化連接體驗,幫助用戶更好地了解他們的網絡連接、在互聯網提供商之間切換以及解決網絡連接問題。

有關詳細信息,請參閱連接用戶界面

時間源優先級

從 Android 12 開始,默認情況下,該框架將網絡時間協議 (NTP) 時間源優先於網絡身份和時區 (NITZ) 源。

有關如何在您的設備上配置和測試時間源優先級的詳細信息,請參閱時間源優先級

切換禁用 2G

為了提高安全性,Android 12 在設置中引入了 2G 切換,允許用戶完全禁用 2G 蜂窩連接。必須為此功能實施Radio 1.6 HAL

2G 切換功能默認啟用。運營商可以在運行時通過 CarrierConfig 標誌KEY_HIDE_ENABLE_2G禁用該功能。

設備製造商必須確保在緊急呼叫期間所有網絡都可用。

UICC 規格

在 Android 12 中,要運行 CTS 運營商 API 測試,設備需要使用具有 CTS 運營商權限的開發者 UICC,滿足最新版本的第三方 GSMA TS.48 測試配置文件規範中規定的要求。

有關詳細信息,請參閱準備 UICC

Wi-Fi AP/AP並發

Android 12 引入了 Wi-Fi AP/AP 並發功能,允許設備啟動橋接雙 (AP+AP) 網絡共享熱點。

有關詳細信息,請參閱Wi-Fi AP/AP 並發

Wi-Fi/蜂窩 coex 信道避免

Android 12 引入了Wi-Fi/蜂窩 coex 通道避免功能,該功能可在蜂窩通道之間存在干擾時識別並防止使用不安全的 Wi-Fi 通道。這包括 STA、SoftAp、Wi-Fi Direct (P2P)、Wi-Fi Aware (NAN) 等接口。

Wi-Fi 安全協議增強功能

Android 12 引入了對 WPA3 Hash-to-Element (H2E)、WPA2/WPA3-Enterprise 轉換模式和轉換禁用指示的支持。

有關詳細信息,請參閱WPA3 和 Wi-Fi 增強開放

Wi-Fi STA/STA 並發

Android 12 引入了 Wi-Fi STA/STA 並發功能,允許設備同時連接到兩個 Wi-Fi 網絡。

有關詳細信息,請參閱Wi-Fi STA/STA 並發

設備

Android 12 新的汽車功能

請參閱汽車新增功能以了解有關這些新功能的更多信息:

展示

阻止不受信任的接觸

為了保持系統安全和良好的用戶體驗,Android 12 增加了對阻止不受信任的觸摸事件的支持。這可以防止應用程序使用覆蓋以不安全方式遮蓋應用程序的觸摸事件

對話通知和小部件

Android 11 添加了對按優先級和警報級別在通知陰影上自定義對話通知的行為和位置的支持,允許將對話標記為重要並在對話空間中啟動對話特定氣泡。基於這些 Android 11 功能,Android 12 對話小部件功能使用戶能夠將重要聯繫人的對話小部件添加到主屏幕,讓他們無需等待通知即可輕鬆恢復對話。

有關詳細信息,請參閱對話通知和小部件

窗口模糊

Android 12 中提供了公共 API,用於實現窗口模糊效果(例如背景模糊和背後模糊)。使用這些 API,您可以模糊自己窗口後面的任何內容。您可以創建背景模糊的窗口,創建磨砂玻璃效果,或顯示窗口,使其後面的整個屏幕模糊,創建景深效果。您也可以將這兩者結合起來。

有關此新功能以及如何實現它的更多信息,請參閱Window Blurs頁面。

窗口放大

在 Android 12 中,低視力用戶可以使用窗口放大功能放大顯示器上的任何內容。窗口放大允許用戶放大屏幕的選定部分,這與在整個屏幕上使用縮放功能不同。選定的窗口可以在整個顯示中拖動,這使他們能夠根據需要放大屏幕的不同部分。

有關詳細信息,請參閱窗口放大鏡

企業

設備管理更新

Android 12 包括以下設備管理更新:

  • 託管配置文件數據隔離更新。在具有工作配置文件的個人設備上,Android 12 移除了對設備硬件標識符(IMEI、MEID、序列號)的訪問權限,並提供了一個唯一的、特定於註冊的 ID,用於標識特定組織的工作配置文件註冊。有關詳細信息,請參閱設備標識符

  • 設備配置更新。 Android 12 對設備配置進行了多項更改。有關詳細信息和更改列表,請參閱Android 12 更新

圖形

Composer HAL 中的熱插拔處理

顯示功能(例如顯示模式和支持的 HDR 類型)可以在具有外部連接顯示器(通過 HDMI 或 DisplayPort)的設備上動態更改,例如 Android 電視機頂盒 (STB) 和機頂盒 (OTT)設備。從 Android 12 開始,框架的變化支持熱插拔處理和動態顯示功能。

有關詳細信息,請參閱Composer HAL 中的熱插拔處理

模塊化系統組件

主線模塊更新

Android 12 引入了兩個新模塊, ARTDevice Scheduling

許多現有模塊在Android 12 中進行了更新。有關詳細信息,請參閱 Android 12 中的更新

藝術

Android 12 或更高版本支持ART模塊,該模塊旨在通過為用戶提供最新的託管運行時優化、功能和錯誤修復來改善 Android 體驗。

設備調度

Android 12 或更高版本支持設備調度模塊,該模塊包含檢測設備是否處於空閒狀態的邏輯,並且可以在不中斷用戶的情況下重新啟動。

媒體

兼容媒體轉碼

兼容的媒體轉碼允許設備使用現代、存儲高效的媒體格式進行視頻捕獲,例如 HEVC,同時保持與應用程序的兼容性。借助此功能,設備製造商可以默認使用 HEVC 而非 AVC 來提高視頻質量,同時降低存儲和帶寬要求。有關詳細信息,請參閱兼容的媒體轉碼

表現

應用休眠

Android 12 提供休眠用戶幾個月未使用的應用程序的功能,類似於權限自動撤銷。

有關詳細信息,請參閱應用程序休眠

Cgroup 抽象層

Android 12 中的控制組 (cgroup) 抽象層引入了新功能,例如能夠將特定 cgroup 控制器定義為可選,以及使用新的task_profiles命令替換已棄用的writepid命令。這種替換確保了在 cgroup 層次結構中遷移任務時,底層 cgroup 實現對上層沒有影響。 Android 12 還引入了對每個 API 級別的任務配置文件的支持。

有關更多信息,請參閱Cgroup 抽象層

權限

藍牙權限

Android 12 引入了以下藍牙權限,它們取代了BLUETOOTHBLUETOOTH_ADMIN權限:

這些權限是新的NEARBY_DEVICES運行時權限組的一部分。此權限組支持使用案例,例如無需LOCATION運行時權限即可連接到智能手錶。

這些新權限與應用兼容,在 Android 11 或更低版本上運行的應用無需更改。對於面向 Android 11 或更低版本的舊版應用程序,平台會自動將對舊版藍牙權限的請求轉換為對新權限的請求。當應用升級到 Android 12 或更高版本時,應用必須明確請求新的藍牙權限。

有關使用權限的更多信息,請參閱藍牙權限

隱私指標

當應用通過攝像頭和麥克風應用操作權限使用私有數據源時,Android 12 會顯示指示器,從而為用戶提供透明度。

App Ops 跟踪活動狀態和單個 API 調用的數量,並與 Android 12 中的麥克風和攝像頭指示器交互,以在應用訪問其設備上的音頻和攝像頭數據時向用戶顯示。當用戶單擊麥克風或攝像頭指示器時,他們會看到哪些應用訪問了他們的數據。

此功能對於所有 OEM 都是強制性的。有關詳細信息,請參閱隱私指標

地點

從 Android 12 開始,用戶可以要求應用在訪問位置信息時僅獲得近似準確度

此更改旨在僅影響面向 Android 12 或更高版本的應用。但是,在具有舊版本PermissionController模塊的設備上,此更改會影響所有應用程序,無論目標 SDK 版本如何。

運行

Dexpreopt 和 <uses-library> 檢查

Android 12 對具有<uses-library>依賴項的 Java 模塊的 DEX 文件 (dexpreopt) 的提前 (AOT) 編譯進行了構建系統更改。在某些情況下,這些構建系統更改可能會破壞構建。

有關如何準備損壞以及修復和減輕損壞的方法的信息,請參閱Deexpreopt 和 <uses-library> 檢查

測試

兼容性測試套件 (CTS)

對於 Android 12,CTS 引入了許多新的關鍵模塊和測試更改。有關詳細信息,請參閱CTS 發行說明

電視

HDMI-CEC控制服務

Android 12 使用 HDMI-CEC 在設備喚醒或進入睡眠狀態時自動控制連接 HDMI 的顯示器。

有關詳細信息,請參閱HDMI-CEC 控制服務

調諧器框架

在安卓 12 中:

  • Tuner HAL 1.1 或更高版本的前端支持 DTMB DTV 標準。支持以下前端功能和設置:

    • DtmbFrontendCapabilities

    • DtmbFrontendSettings

  • Tuner SDK API 支持 Tuner HAL 1.1 中的新功能,這是 Tuner 1.0 的向後兼容版本升級。

  • android.media.tv.tuner.TunerVersionChecker.getTunerVersion()檢查正在運行的 HAL 版本。

更新

頂點壓縮

安裝 Android Pony EXpress 容器 (APEX) 更新後,不再使用其預安裝版本,但佔用相同數量的內存空間。佔用的空間仍然不可用。在 Android 12 中,APEX 壓縮通過在只讀分區(例如/system分區)上使用一組高度壓縮的 APEX 文件來最大限度地減少這種存儲影響。要了解 Android 12 中的 APEX 壓縮,請參閱Compressed APEXes

Resume-on-Reboot 安全性和便利性

Android 12 引入了增強的多客戶端支持和基於服務器的重啟功能。 resume-on-reboot (RoR) 流程為用戶提供了額外的安全性和便利性,因為可以在設備空閒時間進行 OTA 更新,而 Android 12 多客戶端和基於服務器的更新功能共同提供了設備硬件級別的類型安全性。

有關詳細信息,請參閱重啟時恢復

使用 RoR 重放 SIM PIN

Android 12 具有 SIM-PIN 重放功能,可在 RoR 啟動的重啟後無縫驗證 PIN 碼。每次用戶成功啟用、驗證或修改 SIM PIN 時,都會重新加密並存儲它。

有關詳細信息,請參閱SIM-PIN 重播

虛擬 A/B 更新

Android 12 在快照分區上提供了虛擬 A/B 壓縮選項。在 Android 12 中,可以對引導加載程序不使用的可更新分區進行快照以節省空間。這些也可以被壓縮。在 Android 12 的構建中啟用快照壓縮可以節省/data分區上的空間。

使用快照壓縮實現虛擬 A/B 需要更改特定於設備的代碼。請參閱虛擬 A/B 概述實施虛擬 A/B頁面上的更改和實施詳細信息。