Android 會顯示下列類型存取權的隱私權指標,讓使用者瞭解相關資訊:
相機和麥克風存取權。當應用程式透過相機和麥克風 app-op 權限使用私人資料來源時,就會顯示指標。如要瞭解相關 CDD 規定,請參閱「2.2.5. 安全模型。
位置資訊存取權。應用程式存取裝置位置資訊時,系統會顯示指標。如要瞭解相關 CDD 規定,請參閱 9.8.8 節。位置。
使用者輕觸指標即可查看哪些應用程式存取過他們的資料。
活躍和近期使用情況
Android UI 會區分「正在執行」和「最近」的使用情形:
在 Android 17 以上版本中,如果系統將位置資訊使用情形標示為正在執行,或時間未滿 10 秒,就會視為有效。如果是位置資訊圓點,如果非系統應用程式處於前景狀態,系統就會視為有效存取。
在 Android 12 以上版本中,如果麥克風和相機的使用情形標示為正在執行,或發生時間不到五秒,系統就會視為處於啟用狀態。
每當應用程式持續存取麥克風、相機或位置資訊等使用者私密資料,狀態列就會顯示相應圖示。使用者可以輕觸這些圖示,查看哪些應用程式正在存取麥克風、相機、位置資訊或這些項目的組合。以下是使用中指標的範例:
圖 1. 使用中指標,顯示有效存取權 (右上角)。
只要指標顯示存取權有效,圖示會先顯示,然後轉換為圓點,直到應用程式關閉或停止顯示為止。使用者開啟「快速設定」並輕觸指標後,系統會顯示對話方塊,指出應用程式是否正在使用麥克風、相機、位置資訊或這些項目的組合。
圖 2 說明執行中的應用程式在有效時間範圍內存取資料時,顯示的有效存取指標。
圖 2. 顯示目前和近期存取權的指標。
「近期存取指標」顯示應用程式在過去 15 秒內 (位置資料為 20 秒) 存取資料,但應用程式並未處於活動狀態。對話方塊會顯示所有使用中的應用程式,但即使有多個應用程式在先前 15 或 20 秒的時間範圍內存取資料,也只會顯示一個應用程式做為最近存取的來源。對話方塊會顯示在有效或最近時間範圍內存取位置資料的所有應用程式。存取畫面會持續顯示,直到使用者關閉通知對話方塊為止。
提供並啟用
PermissionManager 類別提供方法,可填入對話方塊 (位於系統 UI 中)。系統 UI 會對裝置設定切換 privacy/mic_camera_indicators_enabled 做出反應;這個切換是必要的,因為有兩個不同的傳送車輛:(1) 傳送,然後 (2) 啟用。
處理流程
權限指標功能主要分為三部分:
- 應用程式
- 指標 (由系統 UI 處理)
- 判斷哪些應用程式正在使用資料
PermissionController 提供判斷哪些應用程式正在使用資料的機制。系統 UI 會監聽使用私人資料的應用程式。系統 UI 會在頂端導覽列中顯示與所用權限對應的圖示。使用者點選圖示時,PermissionController 會顯示使用情況資料。
圖 3. 系統元件和 (UI) 轉場效果流程。
1 應用程式向系統要求私人資料。
2 系統會檢查權限。如果允許這些權限,系統會通知資料供應商,並在應用程式作業中記錄使用情況。
3 資料提供者將資料提供給應用程式。
4-5 使用者點按圖示。系統 UI 會向
PermissionManager要求資料,並向使用者顯示對話方塊。
處理程序詳細資料
應用程式作業會記錄對受執行階段權限保護的 API 的存取行為,追蹤活動狀態和個別 API 呼叫次數,並與相機、麥克風和指標互動,向使用者顯示應用程式何時存取裝置上的音訊和相機資料。
應用程式會呼叫
AppOpsManager.startOp、stopOp或noteOp,藉此使用麥克風、相機或位置資訊。這項操作會在系統伺服器中建立應用程式作業記錄。在 17 以上版本中,位置指標也會使用這些應用程式作業記錄。系統 UI 會使用
AppOpsManager.OnOpActiveChangedInternalListener和OnOpNotedListener監聽器,監聽新的應用程式作業。當系統收到新的用量 (透過呼叫startOp或noteOp),系統 UI 會驗證用量是否來自系統應用程式:如果系統 UI 驗證系統應用程式的使用情形,且使用情形與麥克風有關,系統 UI 會檢查麥克風是否已設為靜音。
如果「系統 UI」驗證非系統應用程式的使用情況 (以及麥克風是否處於未靜音狀態,攝影機是否已開啟),就會顯示反映這類使用情況的圖示。
如果「系統 UI」驗證非系統應用程式的使用情形,且相關切換按鈕處於啟用狀態,就會顯示反映這類使用情形的圖示:
- 麥克風:麥克風已取消靜音。
- 攝影機:攝影機已開啟。
- 位置資訊:應用程式正在前景執行。
如果系統 UI 收到noteOp,但沒有時間長度,則會顯示圖示至少 5 秒 (位置資訊為 10 秒)。否則,圖示會顯示到收到 stopOp 為止,或至少顯示 5 或 10 秒 (以較長者為準)。使用者點選圖示後,系統會啟動意圖,前往 PermissionController 啟動對話方塊。
「PermissionController」會載入麥克風、相機和位置資訊的近期使用記錄。並檢查這些功能是否正在執行,或是否在系統 UI 設定的時間範圍內執行 (麥克風或相機為 15 秒,位置資訊為 20 秒)。如果找到相符項目,就會顯示應用程式名稱和使用的權限。
電話必須實作權限使用情形 (以說明通話中使用的獨立麥克風堆疊),同時與 Android Google 搜尋應用程式 (AGSA) 和 GMS 搭配運作。