進行我們的可用性調查以改進此站點。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

Android權限

Android權限提供了一些控件,這些控件可以提高用戶的知名度並限制應用程序對敏感數據的訪問。在Android 8.0及更低版本上配置權限包括白名單,如果沒有特權應用,即使這些特權應用位於priv-app路徑中,該列表也將被禁用。在Android 9及更高版本上,嘗試使用未正確列入白名單的應用程序的設備將無法啟動。

增強的針對潛在有害應用程序(PHA)的保護

  • 透明化為潛在有害的應用行為。
  • 用戶控制應用程序的行為。
  • 應用開發人員在使用私有數據時應自行決定,並受權限保護。

軟件包安裝和許可

在Android 9及更低版本中,軟件包安裝和權限控制功能包含在PackageInstaller軟件包( //packages/apps/PackageInstaller )中。在Android 10及更高版本中,權限控制功能駐留在單獨的包PermissionController//packages/apps/PermissionController )中。圖1說明了這兩個軟件包在Android 10中的位置。

分離系統應用程序和用戶安裝的應用程序使用的軟件包安裝和權限控制功能
圖1. Android 10中的軟件包安裝和權限控制功能

白名單和訪問

在Android 6.0及更高版本中,應用程序會在運行時請求訪問危險權限。 Android 10添加了活動識別(AR)運行時權限,提示用戶修改或允許危險權限。

Android 8.0要求您在/etc/permissions目錄的系統配置XML文件中將特權應用明確列入白名單。在Android 9及更高版本中,特權權限必須列入白名單,否則設備將無法啟動。

為了限制內部API的可見性並防止應用意外訪問平台庫,Android 7.0引入了本機庫命名空間。這樣可以將系統庫與應用程序庫分開,設備製造商可以添加自己的本機庫。

從Android 10開始,應用必須同時具有簽名權限和用戶許可才能訪問設備的屏幕內容。依賴於靜默捕獲功能的特權應用(例如截屏)應改為使用MediaProjection類。

透明度和隱私

在Android 6.0及更高版本中,設備出廠MAC地址受到保護,以防止Wi-Fi服務提供商和數據包分析器訪問。自Android 10起,其他限制限制了應用訪問不可更改的設備標識符(ID)的權限,除非將其列入特權權限的白名單中。 (“連接性”部分提供了有關設備標識符的相關討論,因為這會影響運營商。)

在Android 9及更低版本上,用戶在向應用授予位置訪問權限時會做出永久選擇。從Android 10開始,三態位置權限功能為用戶提供了三個選項,以允許應用訪問設備的位置。這些權限要求適用於Android 10中的應用,無論目標SDK是什麼。

從Android 10開始配置其他透明度和隱私功能的權限

簡化的配置

對於Android 6.0及更高版本,權限配置已得到簡化。

  • init啟動的服務的環境功能將服務配置的所有方面都保存在單個.rc文件中。為非init啟動的服務設置功能時,請改用fs_config.c配置文件系統功能。
  • Android 7.x及更低版本通過使用特定於設備的android_filesystem_config.h文件來指定文件系統功能和/或自定義設備製造商AID來擴展Android ID(AID)機制。 Android 8.0及更高版本支持擴展文件系統功能新方法
  • 在Android 8.0中,處理USB命令已從設備專用的init腳本(代替HAL層)移入了本機USB守護程序。必須在Android 8.0及更高版本上啟動的每個設備上實現USB HAL接口。