Android 16 Compatibility Definition — Changes Only

Last updated: December 2, 2025

2. Device Types

2.2. Handheld Requirements

2.2.1. Hardware

Start of requirements added in Android 16

If handheld device implementations declare support of any 64-bit ABI (with or without any 32-bit ABI) and return false for ActivityManager.isLowRamDevice(), they:

  • [7.1.4.2/H-2-1] MUST support Vulkan 1.1.

2.2.3. Software

Start of requirements added in Android 16

An app's Live Update Notification can be promoted when the app meets all the promotion characteristics. Such notification is described as Promoted Live Update Notification in this document. Handheld device implementations MUST prominently display Promoted Live Update Notification per the following requirements.

If Handheld device implementations declare API level 36.1 or greater, they:

  • [3.8.3.1/H-0-1] MUST display a Promoted Live Update Notification in a prominent place on the lockscreen.

  • [3.8.3.1/H-0-12] MUST display at the top of the notification stack Heads Up Notification and above colorized notifications (where setColorized is true) when the Promoted Live Update Notification is displayed among other notifications.

    • MAY determine the order sequence of Promoted Live Update Notifications displayed within notification shade and lock screen when more than one app is eligible for Promoted Live Update Notification.
  • [3.8.3.1/H-0-2] MUST display a Promoted Live Update Notification in the expanded state.

  • [3.8.3.1/H-0-3] MUST NOT provide a user-affordance to collapse the expanded notification above.

  • [3.8.3.1/H-0-4] MUST display the basic styles (bold, italic, and underline) of text content in a Promoted Live Update Notification, as provided by StyleSpan or UnderlineSpan.

  • [3.8.3.1/H-0-5] MUST display only standard action objects (via Notification.Action), and MUST hide non-standard action objects such as input boxes, reply buttons, and contextual actions (via addRemoteInput() and setContextual()) in a Promoted Live Update Notification, even when the notification contains them.

  • [3.8.3.1/H-0-6] MUST display a Compact Representation, also referred to as Status Chip in the SDK documentation, for a Promoted Live Update Notification that MUST include Notification.getSmallIcon().

    • [3.8.3.1/H-0-7] Other fields are optional for the Compact Representation, but whenever the compact representation can be expanded, MUST display Notification.getShortCriticalText() if present, or Notification.when if Notification.getShortCriticalText isn't present.

    • [3.8.3.1/H-0-8] When more than one Promoted Live Update notifications are present, MUST display at least one of them in the status bar as a Compact Representation.

    • [3.8.3.1/H-0-9] MUST either show the associated notification (preferred) or open the associated app (via Notification.contentIntent), when the user taps on the Compact Representation.

    • [3.8.3.1/H-0-13] MUST display all the same content in the associated notification as the one that is available in the notification shade.

  • [3.8.3.1/H-0-10] MUST provide a user affordance to disable and enable the promoted display of individual app's notifications.

  • [3.8.3.1/H-0-11] MUST correctly render all Live Update Notifications, including but not limited to non-promoted Live Update Notifications that don't or only partially meet the promotion characteristics. Such non-promoted notifications MUST be displayed in a non-promoted state.

2.2.5. Security Model

Start of requirements removed in Android 16

If device implementations declare support for android.hardware.telephony, they:

  • [9.5/H-1-1] MUST NOT set UserManager.isHeadlessSystemUserMode to true.

Start of requirements removed in Android 16

If Handheld device implementations set UserManager.isHeadlessSystemUserMode to true, they

  • [9.5/H-4-1] MUST NOT include support for eUICCs, nor for eSIMs with calling capability.
  • [9.5/H-4-2] MUST NOT declare support for android.hardware.telephony.

2.5. Automotive Requirements

2.5.1. Hardware

Automotive device implementations:

Start of requirements added in Android 16

  • [7.1.1.1/A-0-3] MUST support GPU composition of graphic buffers at least as large as the highest resolution of any built-in display.

Start of requirements added in Android 16

If Automotive device implementations include support for Vulkan, they:

Start of requirements added in Android 16

If Automotive device implementations claim support for high dynamic range displays through Configuration.isScreenHdr(), they:

  • [7.1.4.5/A-1-1] MUST advertise support for the EGL_EXT_gl_colorspace_bt2020_pq, EGL_EXT_surface_SMPTE2086_metadata, EGL_EXT_surface_CTA861_3_metadata, VK_EXT_swapchain_colorspace, and VK_EXT_hdr_metadata extensions.

Start of requirements added in Android 16

Automotive device implementations:

  • [7.1.4.6/A-0-1] MUST report whether the device supports the GPU profiling capability via a system property graphics.gpu.profiler.support.

If Automotive device implementations declare support via a system property graphics.gpu.profiler.support, they:

Start of requirements added in Android 16

Automotive device implementations:

  • [7.1.5/A-0-1] MUST include support for legacy app compatibility mode as implemented by the upstream Android open source code. That is, device implementations MUST NOT alter the triggers or thresholds at which compatibility mode is activated, and MUST NOT alter the behavior of the compatibility mode itself.

Start of requirements added in Android 16

If Automotive device implementations include a USB port with a controller operating in peripheral mode, they:

  • [7.7.1/A-1-1] MUST implement the Android Open Accessory (AOA) API.

Start of requirements added in Android 16

If Automotive device implementations include a USB port supporting host mode, they:

  • [7.7.2/A-1-1] MUST implement the USB audio class as described in the Android SDK documentation.

Start of requirements added in Android 16

When the AudioManager.getDevices() API is called while the USB peripheral is connected, it:

2.5.3. Software

Automotive device implementations:

Start of requirements added in Android 16

Start of requirements added in Android 16

If Automotive device implementation's settings application implements a split functionality, using activity embedding, they:

Start of requirements added in Android 16

If Automotive device implementations allow users to place calls of any sort, they:

2.5.4. Performance and Power

Start of requirements added in Android 16

  • [8.1/A-0-1] Consistent frame latency. Inconsistent frame latency or a delay to render frames MUST NOT happen more often than 5 frames in a second, and SHOULD be below 1 frame in a second.

  • [8.1/A-0-2] User interface latency. Device implementations MUST ensure low latency user experience by scrolling a list of 10K list entries as defined by the Android Compatibility Test Suite (CTS) in less than 36 seconds.

  • [8.1/A-0-3] Task switching. When multiple apps have been launched, re-launching an already-running application after it has been launched MUST take less than 1 second.

Automotive device implementations:

Start of requirements added in Android 16

  • [8.2/A-0-2] MUST ensure a sequential write performance of at least 5 MB/s.

  • [8.2/A-0-3] MUST ensure a random write performance of at least 0.5 MB/s.

  • [8.2/A-0-4] MUST ensure a sequential read performance of at least 15 MB/s.

  • [8.2/A-0-5] MUST ensure a random read performance of at least 3.5 MB/s.

Start of requirements added in Android 16

If Automotive device implementations return android.os.Build.VERSION_CODES.U or greater for android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS, they:

  • [8.2/A-1-1] MUST ensure a sequential write performance of at least 150 MB/s.

  • [8.2/A-1-2] MUST ensure a random write performance of at least 10 MB/s.

  • [8.2/A-1-3] MUST ensure a sequential read performance of at least 250 MB/s.

  • [8.2/A-1-4] MUST ensure a random read performance of at least 100 MB/s.

  • [8.2/A-1-5] MUST ensure a parallel sequential read and write performance with 2x read and 1x write performance of at least 50 MB/s.

2.5.5. Security Model

If Automotive device implementations support multiple users, they:

Start of requirements added in Android 16

If Automotive device implementations support the System API VisualQueryDetectionService or another mechanism for query detection without mic and/or camera access indication, they:

  • [9.8/A-1-1] MUST make sure the query detection service can only transmit data to the System, ContentCaptureService, or on-device speech recognition service (created by SpeechRecognizer#createOnDeviceSpeechRecognizer()).

  • [9.8/A-1-2] MUST NOT allow any audio or video information to be transmitted out of the VisualQueryDetectionService, except to ContentCaptureService or on-device speech recognition service.

  • [9.8/A-1-3] MUST display a user notice in System UI when the device detects user intent to engage with the Digital Assistant Application (such as by detecting user presence via camera).

  • [9.8/A-1-4] MUST display a microphone indicator and display the detected user query in the UI immediately after the user query is detected.

  • [9.8/A-1-5] MUST NOT allow a user-installable application to provide the visual query detection service.

3. Software

3.4. Web Compatibility

3.4.1. WebView Compatibility

If device implementations provide a complete implementation of the android.webkit.Webview API, they:

Start of requirements changed in Android 16

  • [C-1-3] The user agent string reported by the WebView for apps targeting SDK level 35 and lower MUST be in the following format:

    Mozilla/5.0 (Linux; Android $(VERSION); \[$(MODEL)\] \[Build/$(BUILD)\]; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile Safari/537.36

    • The value of the $(VERSION) string MUST be the same as the value for android.os.Build.VERSION.RELEASE.

    • The $(MODEL) string MAY be empty, but if not empty it MUST have the same value as android.os.Build.MODEL.

    • "Build/$(BUILD)" MAY be omitted, but if present the $(BUILD) string MUST be the same as the value for android.os.Build.ID.

    • The value of the $(CHROMIUM_VER) string MUST be the version of Chromium in the upstream Android Open Source Project.

    • Device implementations MAY omit Mobile in the user agent string.

Start of requirements changed in Android 16

3.8. User Interface Compatibility

3.8.14. Multi-windows

Start of requirements removed in Android 16

3.9. Device Administration

3.9.1. Device Provisioning

3.9.1.2. Managed profile provisioning

If device implementations declare android.software.managed_users, they:

Start of requirements changed in Android 16

  • [C-1-1] MUST declare android.software.device_admin and implement the APIs allowing a Device Policy Controller (DPC) application to become the owner of a new Managed Profile.

3.9.4. Device Policy Management Role Requirements

Start of requirements changed in Android 16

If device implementations declare android.software.device_admin or android.software.managed_users, they:

  • [C-1-1] MUST support the device policy management role as defined in section 9.1. The application that holds the device policy management role MAY be defined by setting config_devicePolicyManagement to the package name. The package name MUST be followed by a colon (:) and the signing certificate, unless the application is preloaded.

3.9.5. Device Policy Resolution Framework

Start of requirements changed in Android 16

If device implementations declare android.software.device_admin or android.software.managed_users, they:

3.18. Contacts

Start of requirements changed in Android 16

Custom local account: an account for raw contacts that are only stored on the device and not associated with an Account in the AccountManager, which are created with at least one non-null values for both the ACCOUNT_NAME and ACCOUNT_TYPE columns.

If device implementations use a custom local account:

Start of requirements changed in Android 16

  • [C-1-3] Raw contacts that are inserted by third party applications with the default local account (i.e. by setting null values for ACCOUNT_NAME and ACCOUNT_TYPE) MUST be inserted to the custom local account.

  • [C-1-3] Raw contacts inserted by third-party applications without specifying an account MUST be inserted to the device's default contact account. If the default contact account is DEFAULT_ACCOUNT_STATE_LOCAL or DEFAULT_ACCOUNT_STATE_NOT_SET, these raw contacts MUST be stored in the custom local account.

5. Multimedia Compatibility

5.1. Media Codecs

5.1.3. Audio Codecs Details

Start of requirements changed in Android 16
Format/Codec Details File Types/Container Formats to be supported
G.711 μ-law and A-law Support for mono/stereo/5.1 content sampled at 8 kHz
  • WAVE (.wav)
MPEG-4 AAC Profile
(AAC LC)
Support for mono/stereo/5.0/5.1 content with standard sampling rates from 8 to 48 kHz.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
  • ADTS raw AAC (.aac, ADIF not supported)
  • MPEG-TS (.ts, not seekable, decode only)
  • Matroska (.mkv, decode only)
MPEG-4 HE AAC Profile (AAC+) Support for mono/stereo/5.0/5.1 content with standard sampling rates from 16 to 48 kHz.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
MPEG-4 HE AACv2
Profile (enhanced AAC+)
Support for mono/stereo/5.0/5.1 content with standard sampling rates from 16 to 48 kHz.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
AAC ELD (enhanced low delay AAC) Support for mono/stereo content with standard sampling rates from 16 to 48 kHz.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
USAC Support for mono/stereo content with standard sampling rates from 7.35 to 48 kHz. MPEG-4 (.mp4, .m4a)
AMR-NB 4.75 to 12.2 kbps sampled @ 8 kHz 3GPP (.3gp)
AMR-WB 9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16 kHz, as defined at AMR-WB, Adaptive Multi-Rate - Wideband Speech Codec 3GPP (.3gp)
FLAC For both encoder and decoder: at least Mono and Stereo modes MUST be supported. Sample rates up to 192 kHz MUST be supported; 16-bit and 24-bit resolution MUST be supported. FLAC 24-bit audio data handling MUST be available with floating point audio configuration.
  • FLAC (.flac)
  • MPEG-4 (.mp4, .m4a, decode only)
  • Matroska (.mkv, decode only)
MP3 Mono/Stereo 8-320Kbps constant (CBR) or variable bitrate (VBR)
  • MP3 (.mp3)
  • MPEG-4 (.mp4, .m4a, decode only)
  • Matroska (.mkv, decode only)
MIDI MIDI Type 0 and 1. DLS Version 1 and 2. XMF and Mobile XMF. Support for ringtone formats RTTTL/RTX, OTA, and iMelody
  • Type 0 and 1 (.mid, .xmf, .mxmf)
  • RTTTL/RTX (.rtttl, .rtx)
  • iMelody (.imy)
Vorbis Decoding: Support for mono, stereo, 5.0 and 5.1 content with sampling rates of 8000, 12000, 16000, 24000, and 48000 Hz.
Encoding: Support for mono and stereo content with sampling rates of 8000, 12000, 16000, 24000, and 48000 Hz.
  • Ogg (.ogg)
  • MPEG-4 (.mp4, .m4a, decode only)
  • Matroska (.mkv)
  • Webm (.webm)
PCM/WAVE PCM codec MUST support 16-bit linear PCM and 16-bit float. WAVE extractor must support 16-bit, 24-bit, 32-bit linear PCM and 32-bit float (rates up to limit of hardware). Sampling rates MUST be supported from 8 kHz to 192 kHz. WAVE (.wav)
Opus Decoding: Support for mono, stereo, 5.0 and 5.1 content with sampling rates of 8000, 12000, 16000, 24000, and 48000 Hz.
Encoding: Support for mono and stereo content with sampling rates of 8000, 12000, 16000, 24000, and 48000 Hz.
  • Ogg (.ogg)
  • MPEG-4 (.mp4, .m4a, decode only)
  • Matroska (.mkv)
  • Webm (.webm)

5.5. Audio Playback

5.5.4. Audio Offload

If device implementations support audio offload playback, they:

Start of requirements added in Android 16

  • [C-SR-2] Are STRONGLY RECOMMENDED to implement offload playback for AAC, MP3, OPUS, and PCM formats.

5.6. Audio Playback

Start of requirements changed in Android 16
Device and Declarations RTL (ms) MAD (ms) Loopback Paths
Handheld 250 200 30 25 speaker/mic, analog 3.5mm (if supported), USB (if supported)
>= MPC_T (13) 80 15 at least one path
FEATURE_AUDIO_LOW_LATENCY 50 10 at least one path
FEATURE_AUDIO_PRO 25 5 at least one path
FEATURE_AUDIO_PRO 20 5 analog (if supported)
FEATURE_AUDIO_PRO 25 5 USB (if analog not supported)

5.12. HDR Video

If device implementation includes codecs that support FEATURE_HdrEditing, then the device:

Start of requirements added in Android 16

HDR Display Requirements

If device implementations receive buffer content encoded with ADATASPACE_TRANSFER_HLG, and that content is sent to the display through SurfaceControl.Transaction#setBuffer, they:

  • [C-8-1] MUST follow the graphics white recommendation in BT. 2408-7, and only display that content to be at most greater than 4.926 times of SDR content.

6. Developer Tools and Options Compatibility

6.1. Developer Tools

Device implementations:

Start of requirements changed in Android 16

  • [C-0-10] MUST record, without omission, and make the following events accessible and available to the cmd stats shell command and the StatsManager System API class.
    • ActivityForegroundStateChanged
    • AnomalyDetected
    • AppBreadcrumbReported
    • AppCrashOccurred
    • AppStartOccurred
    • BatteryLevelChanged
    • BatterySaverModeStateChanged
    • BleScanResultReceived
    • BleScanStateChanged
    • ChargingStateChanged
    • DeviceIdleModeStateChanged
    • ForegroundServiceStateChanged
    • GpsScanStateChanged
    • InputDeviceUsageReported
    • JobStateChanged
    • KeyboardConfigured
    • KeyboardSystemsEventReported
    • PluggedStateChanged
    • PressureStallInformation
    • ScheduledJobStateChanged
    • ScreenStateChanged
    • SyncStateChanged
    • SystemElapsedRealtime
    • TouchpadUsage
    • UidProcessStateChanged
    • WakelockStateChanged
    • WakeupAlarmOccurred
    • WifiLockStateChanged
    • WifiMulticastLockStateChanged
    • WifiScanStateChanged

7. Hardware Compatibility

7.1. Display and Graphics

7.1.3. Screen Orientation

If device implementations support both screen orientations, they:

Start of requirements removed in Android 16

  • [C-1-1] MUST support dynamic orientation by applications to either portrait or landscape screen orientation. That is, the device must respect the application's request for a specific screen orientation.

7.3. Sensors

7.3.5. Barometer

Start of requirements added in Android 16

Device implementations that declare the system property sensor.barometer.high_quality.implemented:

  • [C-2-1] MUST report pressure measurements in the range of 300 hPa to 1100 hPa, with an absolute accuracy of +/- 1 hPa.

  • [C-2-2] MUST have a relative accuracy of 0.15 hPa over a 100 hPa range, equivalent to ~1 m accuracy over ~1000 m change at sea level.

  • [C-2-3] MUST be stable within +/- 0.5 hPa when the user taps, presses, or squeezes the device.

  • [C-2-4] MUST be stable within +/- 0.15 hPa when the user walks with the device in hand or in pocket.

  • [C-2-5] MUST NOT be smoothed with a time constant of more than 300 ms for activations above 5 Hz, and smoothing MUST NOT leak across sensor activations.

  • [C-2-6] MUST be stable within +/- 0.15 hPa when exposed to day-to-day lighting and radio frequencies introduced by common sources such as Bluetooth, cellular connection, or Wi-Fi.

7.3.14. Custom sensors [new section]

Start of requirements added in Android 16

To help provide a differentiated experience, device implementations MAY include additional sensors not covered by Android or Wear OS, which preloaded apps may access.

For such sensors, the sensor ID:

  • [C-0-1] MUST be higher than 65536.

If the custom sensor is intended for health or fitness related purposes, it:

  • [C-0-2] MUST be protected by either a platform permission or system permission.

7.4. Data Connectivity

7.4.3. Bluetooth

If device implementations declare FEATURE_BLUETOOTH_LE, they:

Start of requirements added in Android 16

If device implementations declare FEATURE_BLUETOOTH_LE_CHANNEL_SOUNDING, they:

  • [C-11-1] MUST report the hardware feature flag android.hardware.bluetooth_le.channel_sounding.

  • [C-11-2] MUST report the range accurately to within +/- 0.5 m at the 90th percentile, as calculated with the Cumulative Distribution Function, at the distance of 1 m.

7.5. Cameras

Start of requirements added in Android 16

If device implementations include at least one camera, and the pre-installed camera application handles the intents MediaStore.ACTION_MOTION_PHOTO_CAPTURE or MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE, they:

  • [C-1-4] MUST ensure that when handling these intents, the pre-installed camera app removes the user location in the image metadata before sending it to receiving applications that don't have ACCESS_FINE_LOCATION.

  • [C-1-5] MUST ensure that the returned motion photo uses the Motion Photo format 1.0 specification.

9. Security Model Compatibility

9.1. Permissions

Start of requirements added in Android 16

If devices include data sensors exposing health-related biometrics such as heart rate or skin temperature, those biometrics:

  • [C-0-16] MUST be guarded by platform permissions from android.permission-group.HEALTH, if there's a corresponding permission in HealthPermissions.

  • [C-0-17] MUST, if no platform permission matches the desired data type, be guarded by a custom system permission. (For example, ELECTROCARDIOGRAM.)

Start of requirements changed in Android 16

If devices report android.software.managed_users, they:

  • [C-1-1] MUST NOT have the following permissions silently granted by the admin:

    • Location (ACCESS_BACKGROUND_LOCATION, ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION).
    • Camera (CAMERA)
    • Microphone (RECORD_AUDIO)
    • Body sensor (BODY_SENSORS)
    • Health (HealthPermissions)
    • Physical activity (ACTIVITY_RECOGNITION)

9.5. Multi-User Support

Start of requirements added in Android 16

If device implementations create the additional user profile discussed above, they include at least one camera, and the pre-installed camera application handles the intents MediaStore.ACTION_MOTION_PHOTO_CAPTURE or MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE, they:

  • [C-5-1] MUST allow applications of the primary user to handle these intents originating from that additional user profile.

9.7. Security Features

Kernel integrity and self-protection features are integral to Android security. Device implementations:

Start of requirements changed in Android 16

  • [C-0-8] MUST implement strict kernel memory protections where executable code is read-only, read-only data is non-executable, and non-writable, and writable data is non-executable (e.g. CONFIG_DEBUG_RODATA or CONFIG_STRICT_KERNEL_RWX) (for example, both rodata and CONFIG_STRICT_KERNEL_RWX are enabled).

9.8. Privacy

9.8.2. Recording

Device implementations:

Start of requirements changed in Android 16

Start of requirements removed in Android 16

9.11. Keys and Credentials

When the device implementation supports a secure lock screen, it:

Start of requirements changed in Android 16

  • [C-1-6] MUST support one of the following:

    • IKeymasterDevice 3.0,
    • IKeymasterDevice 4.0,
    • IKeymasterDevice 4.1,
    • IKeyMintDevice version 1, or
    • IKeyMintDevice version 2.

  • [C-1-6] MUST support IKeymasterDevice 3.0 or higher, or IKeyMintDevice version 1 or higher.

  • [C-SR-1] Is STRONGLY RECOMMENDED to support IKeyMintDevice version 1.

9.11.1. Secure Lock Screen, Authentication, and Virtual Devices

If device implementations allow applications to create secondary virtual displays and support associated input events, such as via VirtualDeviceManager, they:

Start of requirements removed in Android 16

  • [C-10-2] MUST disconnect all virtual devices upon idle timeout

  • [C-10-3] MUST have an idle timeout

Start of requirements removed in Android 16

  • [C-10-7] MUST either:

    • Disable clipboard usage
    • Enable a separate clipboard for each device that supports clipboards

Start of requirements changed in Android 16

  • [C-10-15] MUST show notifications when clipboard data is accessed across devices, and MUST make content inaccessible after one minute measured from the initial sharing time.

  • [C-10-15] MUST show notifications when clipboard data is accessed on both the device it was accessed from and on the device fromwhich the clipboard originated.

9.18. Developer Verification [new section]

Start of requirements added in Android 16

Device implementations declaring API level 36.1 or greater:

  • MAY include support for a developer verifier service to certify that applications originate from a known developer.

Device implementations declaring API level 36.1 or greater and configure a developer verifier by defining config_developerVerificationServiceProviderPackageName in config.xml:

  • [9.18/C-1-1] MUST invoke the configured android.content.pm.verify.developer.DeveloperVerifierService for every application package installation, which includes both new installations and updates to existing applications.

Device implementations declaring API level 36.1 or greater:

  • MAY also configure a delegate for setting the active policy by defining config_developerVerificationPolicyDelegatePackageName in config.xml.

If a developer verifier is configured, device implementations:

  • [9.18/C-2-1] MUST only allow the developer verifier or its configured delegate to set the installation policy as defined in android.content.pm.PackageInstaller.

If a verifier is invoked as part of a package installation session, device implementations:

  • [9.18/C-3-1] MUST prevent the installation of an application package if:

    • The installation fails the developer identity verification.
    • The developer verification policy for the installation session is set to any value other than DEVELOPER_VERIFICATION_POLICY_NONE.
    • Unless either 9.18/C-3-2 or 9.18/C-3-3 apply.
  • [9.18/C-3-2] MUST NOT prevent the installation of an application package regardless of policy or verification status when:

    • The package is installed via the Android Debug Bridge (ADB).
    • The package is the configured developer verifier or its installer.
  • [9.18/C-3-3] MUST NOT prevent the installation of an application package when all following conditions are met:

    • Policy is set to DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_WARN or DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_OPEN.
    • The verification is reported as incomplete.
    • The installer indicates the user explicitly requested the installation continue by reporting DEVELOPER_VERIFICATION_USER_RESPONSE_INSTALL_ANYWAY.
  • MAY allow the installation of an application package regardless of policy or verification status for installations initiated by the device owner on a managed device or the profile owner on a managed profile, but it's STRONGLY RECOMMENDED to prevent installations as outlined in 9.18/C-3-1.