{
	"id": "1b856f98-fd98-42aa-9071-a73e2d3a81c6",
	"created_at": "2026-04-06T00:14:53.998277Z",
	"updated_at": "2026-04-10T03:22:01.681555Z",
	"deleted_at": null,
	"sha1_hash": "e1e510cdde002ab2ec4150777892a85e875cc2ff",
	"title": "Privacy indicators",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 1110250,
	"plain_text": "Privacy indicators\r\nArchived: 2026-04-05 17:40:17 UTC\r\nRuntime permissions in Android 6 and higher give users control over when they allow audio from a device's\r\nmicrophone or video from a device's camera to be recorded. Before an app can record, a user must either grant or\r\ndeny it permission through a dialog the system presents.\r\nAndroid 12 provides users with transparency by displaying indicators when an app uses a private data source\r\nthrough the cameras and microphone app-op permissions. App-ops record accesses to runtime permission-protected APIs.\r\nApp-op tracks both the activity status and the number of individual API calls, and interacts with the microphone\r\nand camera indicators in Android 12 to show users when apps have accessed audio and camera data on their\r\ndevices. When users click the microphone or camera indicators, they see which apps have accessed their data.\r\nThis feature is mandatory for all OEMs.\r\nIndicator visibility requirements\r\nThese are the requirements for microphone and camera indicators on devices running on Android 12 or higher:\r\nThe indicators must appear in the status bar, and retain the highest visual priority (for example, located at\r\nthe rightmost position in the top-right corner).\r\nThe indicators must be consistently located in the same position, and must not be blocked by an app when\r\nit launches.\r\nBoth indicators must be green (or a variation of green) in color.\r\nClicking one or both indicators must render an app attribution affordance notification that does the\r\nfollowing:\r\nDisplays the name of the app that's using the microphone and (or) camera\r\nDisplays the name of the app which used the microphone and (or) camera within the last 15 seconds\r\nTakes users to the app permission page in Settings\r\nUsage and features\r\nIn Android 12, the UI distinguishes between running usages and recent usages. Usages are considered active if\r\nthey're either marked by the system as running, or are less than 5 seconds old.\r\nStatus bar icons show each time an app has ongoing user-sensitive microphone or camera access.\r\nUsers can click these icons and see which apps are accessing the microphone, the camera, or both.\r\nhttps://source.android.com/devices/tech/config/privacy-indicators\r\nPage 1 of 5\n\nFigure 1. Microphone and camera in-use indicators showing active access (top-right corner)\r\nAccess is considered active for as long as the indicators show. An icon shows first, then transitions to a dot that\r\npersists until the app is either dismissed or closed.\r\nWhen a user opens Quick Settings and then taps the indicators, a dialog appears that shows whether the app is\r\nusing the camera, the microphone, or both.\r\nhttps://source.android.com/devices/tech/config/privacy-indicators\r\nPage 2 of 5\n\nFigure 2. Active and recent access indicators\r\nThe image in Figure 2 shows active access indicators when data has been accessed in the past 5 seconds by a\r\nrunning app.\r\nRecent access indicators show that data was accessed by an app during the prior 15 seconds, but that the app isn't\r\nactive. All active apps show in the dialogue, but only one app shows as the source of recent access, even when\r\nmore than 1 app accessed data within a prior 15 second time-frame. The access view remains frozen until the user\r\ndismisses the notification dialog.\r\nDeliver and enable\r\nThe PermissionManager class provides a method to populate the dialog, which resides in System UI.\r\nSystem UI reacts to a device configuration switch: privacy/mic_camera_indicators_enabled .\r\nhttps://source.android.com/devices/tech/config/privacy-indicators\r\nPage 3 of 5\n\nThe switch is necessary because there are two separate delivery vehicles, in this order:\r\n1. Deliver.\r\n2. Enable.\r\nThe System UI must not crash if the method in PermissionManager can't provide the needed data.\r\nProcess flow\r\nThe Permission Indicator functionality has three main parts:\r\nThe apps\r\nThe indicators (handled by SystemUI)\r\nA way to determine which apps are using the data\r\nThe PermissionController provides the mechanism to determine which apps are using data. SystemUI listens\r\nfor apps using private data. The SystemUI shows an icon in the top navigation bar that corresponds to the\r\npermissions used. The PermissionController displays data about usages when a user clicks an icon.\r\nFigure 3. System components and (UI) transitions flow\r\nThe numbered transitions in Figure 3 are described below:\r\n1- An app requests private data from the system.\r\n2- The system checks permissions. If the permissions are allowed, the system notifies the data provider, and notes\r\nthe usage in app-ops\r\n3- The data provider gives data to the app.\r\n4-5 The user clicks the icons. System UI requests data from the PermissionManager and presents the dialog to\r\nthe user.\r\nProcess details\r\nhttps://source.android.com/devices/tech/config/privacy-indicators\r\nPage 4 of 5\n\n1. Apps use the microphone and camera, calling AppOpsManager.startOp , stopOp , and (or) noteOp . This\r\ncreates app-op records in the system server.\r\n2. The System UI listens for new app-ops using the AppOpsManager.OnOpActiveChangedInternalListener\r\nand OnOpNotedListener listeners. When a new usage comes in (through a call to either startOp or\r\nnoteOp ), the System UI verifies that the usage is by a system app.\r\n3. If System UI verifies system app usage, and if the usage is for the microphone, System UI checks if the\r\nmicrophone is muted.\r\n4. If System UI verifies non-system app usage, (and, for microphone usage, that the microphone is unmuted;\r\nfor camera usage, that the camera is toggled on), it shows an icon reflecting such usage.\r\nIf System UI receives a noteOp , which has no duration, it shows the icon for at least 5 seconds. Otherwise, the\r\nicon shows either until it receives a stopOp , or for 5 seconds, whichever is longer. The user clicking an icon\r\ninitiates an intent that goes to the PermissionController to start the Dialog.\r\nThe PermissionController loads all recent usage for microphone and camera. It checks if any of those are\r\nrunning, or were running within the timeframe set by System UI. If it finds a match, it displays the name of the\r\napp that used the permission, and which permissions the app used.\r\nBecause of this change in Android 12 and higher, some apps must either change their behavior or implement\r\nspecial behavior.\r\nTelephony must implement permission usage (to account for the separate microphone stack used in phone calls),\r\nwhile working with Android Google Search app (AGSA) and Google Mobile Services (GMS).\r\nSource: https://source.android.com/devices/tech/config/privacy-indicators\r\nhttps://source.android.com/devices/tech/config/privacy-indicators\r\nPage 5 of 5",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"references": [
		"https://source.android.com/devices/tech/config/privacy-indicators"
	],
	"report_names": [
		"privacy-indicators"
	],
	"threat_actors": [],
	"ts_created_at": 1775434493,
	"ts_updated_at": 1775791321,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/e1e510cdde002ab2ec4150777892a85e875cc2ff.pdf",
		"text": "https://archive.orkl.eu/e1e510cdde002ab2ec4150777892a85e875cc2ff.txt",
		"img": "https://archive.orkl.eu/e1e510cdde002ab2ec4150777892a85e875cc2ff.jpg"
	}
}