Information Security 21 min read

Android 12 Security and Privacy Settings Overview

This article provides a comprehensive overview of Android 12's new security and privacy features, including the Privacy Information Center, location accuracy levels, package visibility filtering, deprecation of system‑dialog closing intents, app hibernation, permission group queries, microphone and camera toggles, and numerous other system‑level changes that affect app behavior and user experience.

IEG Growth Platform Technology Team
IEG Growth Platform Technology Team
IEG Growth Platform Technology Team
Android 12 Security and Privacy Settings Overview

Security and Privacy Settings

Privacy Information Center

The system adds a "Privacy Information Center" where users can view the past 24 hours of permission usage for location, camera, and microphone, and see exact timestamps for each request.

Location Accuracy

Android distinguishes between Coarse Location (≈1.6 km radius) granted via ACCESS_COARSE_LOCATION and Fine Location (≈50 m, sometimes a few meters) granted via ACCESS_FINE_LOCATION . When both permissions are requested, the system dialog offers the user a choice between precise and approximate location.

Package Visibility Filtering

On devices running Android 12 or higher, apps targeting API 30+ have their results from methods such as getAllPermissionGroups() , getPermissionGroupInfo() , getPermissionInfo() , and queryPermissionsByGroup() filtered based on package visibility.

Deprecation of ACTION_CLOSE_SYSTEM_DIALOGS

Starting with Android 12, the ACTION_CLOSE_SYSTEM_DIALOGS intent is deprecated. Apps targeting Android 12+ that attempt to broadcast this intent receive a SecurityException . Apps targeting Android 11 or lower see a log‑cat denial message unless they fall under specific exception cases (instrumented tests, accessibility services, etc.).

App Hibernation

When an app targeting Android 12 remains unused for several months, the system automatically revokes all granted permissions and places the app in a hibernated state.

Permission Group Queries

Developers can now query how platform permissions are grouped using getGroupOfPlatformPermission() and retrieve all permissions belonging to a group with getPlatformPermissionsForGroup() .

Microphone and Camera Global Switch

Supported devices provide a single toggle that enables or disables the microphone and camera for all apps.

Microphone/Camera Indicator

On Android 12+ devices, an icon appears in the status bar whenever an app accesses the microphone or camera.

Untrusted Touch Event Blocking

Android 12 blocks certain touch events that could be used to bypass security, applying an overlay that prevents touch‑through in untrusted windows, with a few documented exceptions.

Removal of BouncyCastle Implementations

The platform drops deprecated BouncyCastle crypto implementations (including all AES algorithms) in favor of Conscrypt. Apps using 512‑bit keys, invalid key sizes with KeyGenerator , or non‑12‑byte GCM parameters must adjust their cryptographic code.

New Bluetooth Permissions

Android 12 introduces new Bluetooth permissions that allow apps to scan nearby devices without requesting location permissions.

Device Property Attestation

Apps targeting Android 12+ can verify device properties (BRAND, DEVICE, MANUFACTURER, MODEL, PRODUCT) in certificate attestation via setDevicePropertiesAttestationIncluded() .

BiometricPrompt Localization

New APIs expose localized strings for button labels, prompts, and setting names used in BiometricPrompt dialogs.

Pixel‑Only Phishing Detection

On supported Pixel devices, Android 12 performs phishing detection for messages received in popular instant‑messaging apps.

User Experience

Display Size APIs

Methods Display.getRealSize() and Display.getRealMetrics() are deprecated in Android 12; developers should use the WindowMetrics API and Configuration.densityDpi for screen dimensions and density.

Game Mode

A new API lets users optimize games for performance or battery life.

Splash Screen API

Custom launch screens must migrate to the new SplashScreen API introduced in Android 12.

Network Intent Filtering

Only apps explicitly allowed to handle a specific domain in a generic web intent will receive the intent.

Multi‑Window Standardization

Multi‑window mode becomes the default behavior on large‑screen devices.

Rich Notification Images

MessagingStyle and BigPictureStyle now support animated images, and users can send image replies directly from the notification shade.

Immersive Mode Gesture Improvements

Gestural navigation in immersive mode is refined, with backward‑compatible behavior for sticky immersive mode.

Core Functionality

Automatic App Updates

Apps using the PackageInstaller API can call setRequireUserAction() to perform silent updates without user confirmation.

Device Chipset Information

Two new constants, Build.SOC_MANUFACTURER and Build.SOC_MODEL , expose SoC vendor and model details.

Core Java API Updates

Refer to the official Android documentation for a list of updated Java APIs in Android 12.

Connectivity

Wi‑Fi Aware (NAN) Enhancements

New callbacks such as onServiceLost() , more efficient data‑path setup, and WifiAwareManager.getAvailableAwareResources() to query available resources.

NFC Payments Without Screen On

Set requireDeviceScreenOn to false to allow NFC payments when the screen is off.

Concurrent P2P + Internet

When supported, P2P connections no longer disrupt existing Wi‑Fi connections; check support via WifiManager.isMultiStaConcurrencySupported() .

Performance

Foreground Service Start Restrictions

Apps cannot start foreground services while running in the background on Android 12+, unless they meet specific exception criteria; otherwise a ForegroundServiceStartNotAllowedException is thrown.

Exact Alarm Permission

Apps that schedule exact alarms must request the SCHEDULE_EXACT_ALARM permission, which appears under special app access settings.

Notification Trampoline Restrictions

Apps targeting Android 12+ cannot launch activities from services or broadcast receivers in response to notification clicks; they must start activities directly from the UI thread.

Graphics and Images

AVIF Image Support

Android 12 adds native support for AVIF images, offering higher visual quality at smaller file sizes compared to JPEG and WebP.

Refresh‑Rate Switching

Refresh‑rate changes are now possible even on displays that do not support seamless switching.

Tombstone Access

Developers can access native crash tombstones without using ADB.

Image Effects API

New APIs simplify applying blur, color filters, and other visual effects to views.

Native Animated Image Decoding

NDK image decoding now supports full frame data for GIF and WebP animations.

Storage

Media Management Permission

Apps targeting Android 12 can request MANAGE_MEDIA (plus READ_EXTERNAL_STORAGE and optionally ACCESS_MEDIA_LOCATION ) to modify, delete, or trash files without prompting the user each time.

Media

Audio Focus

When an app requests audio focus while another app is playing, the system now fades out the currently playing app.

Rich Media Input

A unified API lets apps receive rich media (images, video, etc.) from clipboard, keyboard, or drag‑and‑drop sources.

Media Transcoding Compatibility

Modern video formats are automatically transcoded for playback on devices that lack native support.

MediaDrm Updates

New methods simplify checking for secure decoder components.

Video Encoding Improvements

Standardized keys for controlling quantization parameters (QP) are added to MediaFormat , and a minimum quality threshold is enforced for high‑complexity scenes.

Performance Classes

Devices declare a performance class; apps can query Build.VERSION.MEDIA_PERFORMANCE_CLASS to tailor experiences. Example: if (Build.VERSION.MEDIA_PERFORMANCE_CLASS >= Build.VERSION_CODES.S) { // Provide the most premium experience for highest performing devices } else if (Build.VERSION.MEDIA_PERFORMANCE_CLASS == Build.VERSION_CODES.R) { // Provide a high quality experience } else { // Remove extras to keep experience functional }

Other Changes

Activity Lifecycle

Pressing the back button no longer finishes the root launcher activity; instead, the activity and its task are moved to the background, allowing faster warm‑start recovery.

AndroidPrivacySecurityPermissionsAndroid12
IEG Growth Platform Technology Team
Written by

IEG Growth Platform Technology Team

Official account of Tencent IEG Growth Platform Technology Team, showcasing cutting‑edge achievements across front‑end, back‑end, client, algorithm, testing and other domains.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.