{
	"id": "4de10ff9-bb98-4d58-8a08-fbc8fbb84f06",
	"created_at": "2026-04-06T00:15:34.715074Z",
	"updated_at": "2026-04-10T13:12:36.483788Z",
	"deleted_at": null,
	"sha1_hash": "3d0689d96dd2231000fdf7e332252b7d18b19225",
	"title": "Android 10 release notes",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 226948,
	"plain_text": "Android 10 release notes\r\nArchived: 2026-04-05 21:17:36 UTC\r\nThis page summarizes the major features in the Android 10 release, and provides links to additional information.\r\nThese feature summaries are organized according to the feature's documentation location on this site.\r\nBuild\r\njava_sdk_library\r\nAndroid 10 introduces java_sdk_library , a new build rule to fix compatibility issues for shared Java libraries.\r\nDevice manufacturers can use this mechanism for their own shared Java libraries to maintain backward\r\ncompatibility for their APIs.\r\nArchitecture\r\nModular system components\r\nAndroid 10 modularizes some Android system components and enables them to be updated outside of the normal\r\nAndroid release cycle. Some modules include:\r\nAndroid Runtime\r\nConscrypt\r\nDNS Resolver\r\nDocumentsUI\r\nExtServices\r\nMedia\r\nModuleMetadata\r\nNetworking\r\nPermissionController\r\nTime Zone Data\r\nHardware abstraction layer (HAL)\r\nAndroid 10 adds support for HALs to shut down automatically when they have no clients.\r\nKernel\r\nABI\r\nAndroid 10 includes support for new ABI monitoring utilities to help with comparing, tracking, and mitigating\r\nkernel ABI changes that affect compatibility with kernel modules.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 1 of 20\n\nAndroid 10 also introduces a symbol-based ABI usages checker. The checker can detect outdated prebuilt binaries\r\nat build time, so that shared library developers can know which prebuilt binaries might be broken by their change\r\nand which prebuilt binaries must be rebuilt.\r\nAndroid Live-Lock Daemon\r\nAndroid 10 includes the Android Live-Lock Daemon (llkd), which is designed to catch and mitigate kernel\r\ndeadlocks.\r\nvDSO32 on ARM64\r\nAndroid 10 supports using vDSO32 on 64-bit kernels, which provides a 0.4 percent increase in battery life and\r\nother performance improvements.\r\nfstab entries for early mounted partitions\r\nAndroid 10 requires devices to specify fstab entries for early mounted partitions using an fstab file in the\r\nfirst stage ramdisk.\r\nHIDL\r\nOffload BroadcastQueue\r\nAndroid 10 includes a new offload BroadcastQueue to the existing background and foreground queues. The\r\noffload queue has the same priority and timeout behavior as the background queue. To prevent blocking the\r\nbackground queue, where more interesting or user-visible broadcasts can happen, the offload queue handles the\r\nBOOT_COMPLETED broadcast, which many apps listen to and can take a long time to complete. The offload queue\r\ncurrently only handles the BOOT_COMPLETED broadcast, but can potentially handle other long broadcasts.\r\nSystemSuspend service\r\nAndroid 10 replaces the thread in libsuspend responsible for initiating system suspend with the SystemSuspend\r\nHIDL service. This implementation offers equivalent functionality to previous versions while leveraging benefits\r\nfrom the Android HIDL infrastructure.\r\nsafe_union in HIDL\r\nAndroid 10 introduces safe_union , an explicitly tagged union type, in HIDL.\r\nConfiguration\r\nConfigStore HAL\r\nAndroid 10 deprecates the ConfigStore HAL due to high memory consumption and difficult usage, and replaces\r\nthe HAL with system properties.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 2 of 20\n\nConfig File Schema API\r\nThe Android platform contains a large number of XML files for storing config data. Many of the XML files are in\r\nthe vendor partition, but they're read in the system partition. In this case, the schema of the XML file serves as\r\nthe interface across the two partitions, and therefore the schema must be explicitly specified and must evolve in a\r\nbackward-compatible manner. Before Android 10, the platform didn’t provide mechanisms to require specifying\r\nand using the XML schema, or to prevent incompatible changes in the schema. Android 10 provides this\r\nmechanism, called the Config File Schema API.\r\nSystem properties as APIs\r\nSystem properties accessed across partitions are schematized into sysprop description files, and APIs to access\r\nproperties are generated as concrete functions for C++ and classes for Java.\r\nVendor interface (VINTF) object\r\nVINTF\r\nChanges to VINTF in Android 10 include:\r\nDeprecating AVB version tags\r\nAdding kernel information in OTA packages\r\nBuilding ODM manifests officially\r\nAdding a product compatibility matrix\r\nAssociating a manifest entry with a HAL module in the build system\r\nBootloader\r\nRamdisk\r\nIn Android 10, the root file system is no longer included in ramdisk.img and is instead merged into\r\nsystem.img .\r\nBuild ODM partitions\r\nAndroid 10 includes support for building odm partitions using the Android build system. You can use a separate\r\n/odm partition for customizations, which enables you to use a single vendor image for multiple hardware SKUs.\r\nThis enables original design manufacturers (ODMs) to customize system-on-chip (SoC) vendor board-support\r\npackages (BSPs) to their specific devices (their boards). They can implement kernel modules for board-specific\r\ncomponents, board-specific daemons, or their own features on hardware abstraction layers (HALs). They may also\r\nreplace or customize SoC components.\r\nAndroid 10 updates the boot image header to version 2, which includes a section to store the device tree blob\r\n(DTB) image. Android 10 VTS tests verify that all devices launching with Android 10 use boot image header\r\nversion 2 and include a valid DTB image as part of the boot/recovery images.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 3 of 20\n\nRecovery images for non-A/B devices\r\nIn Android 9 and higher, a device's recovery image must contain information from the overlay image. Device\r\nmanufacturers can use DeviceTree or Advanced Configuration and Power Interface (ACPI) to describe all\r\nnondiscoverable devices. Android 10 and higher includes support for architectures that use ACPI instead of\r\nDeviceTree blob for overlay (DTBO).\r\nStable AIDL\r\nAndroid 10 adds support for stable Android Interface Definition Language (AIDL), a new way to keep track of the\r\napplication program interface (API)/application binary interface (ABI) provided by AIDL interfaces.\r\nMove fastboot to user space\r\nAndroid 10 adds support for resizable partitions by relocating the fastboot implementation from bootloader to user\r\nspace.\r\nDisplay\r\nHDR video playback\r\nAndroid 10 supports HDR10, VP9, and HDR10+ playback.\r\nText classification\r\nText classification uses machine learning techniques to help developers classify text. Android 10 introduces two\r\nmethods to the TextClassifier API: suggestConversationActions and detectLanguage . The\r\nsuggestConversationActions method generates suggested replies and actions from a given conversation and the\r\ndetectLanguage method detects the language of the text.\r\nSupport for Zawgyi font rendering\r\nZawgyi is the most popular font in Myanmar. Android 9 and lower didn't support rendering Zawgyi because it isn't\r\nUnicode compliant. Android 10 addresses this by including a Unicode font capable of rendering both Unicode\r\nBurmese and Zawgyi together. No implementation work is needed to support Zawgyi font rendering on devices\r\nlaunching with Android 10. If your devices have a custom implementation to support Zawgyi, you can:\r\nRevert those changes and use the platform-supported method.\r\nKeep the common Zawgyi font in your system and use the locale code my-qaag in your fonts.xml . For\r\nmore information, see the Unicode CLDR release notes on Zawgyi (Qaag).\r\nLimitations to hiding app icons\r\nAndroid 10 limits the ability for apps to hide their launcher icons. If an app doesn't have a launcher activity\r\nenabled, the system displays a synthesized activity in the launcher; this synthesized activity represents the app's\r\ndetails page within system settings.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 4 of 20\n\nFor more information about the logic used to show app icons, including the types of apps whose app icons aren't\r\nshown, see the documentation for getActivityList() in the API reference.\r\nSettings\r\nTo improve accessibility, Android 10 includes user-customizable timeout settings. The API and Settings changes\r\ncome with Android 10. If you customize your Settings, make sure that this feature is supported. If you have UI\r\nelements that time out on your device, use the timeouts API on those. For more information, see the Android\r\ndeveloper accessibility guidelines.\r\nCompatibility\r\nAndroid Compatibility Definition Document (CDD)\r\nThe Android 10 Compatibility Definition Document iterates upon previous versions with updates for new features\r\nand changes to requirements for previously released functionality.\r\nTests\r\nCompatibility Test Suite (CTS)\r\nAndroid CTS has a separate release notes page that lists many important changes for Android 10.\r\nCTS downloads\r\nCTS packages supporting Android 10 are available on the CTS Downloads page. The source code for the included\r\ntests can be synced with the android-cts-10_r1 tag in the open-source tree.\r\nCTS shim APEX\r\nAndroid 10 introduces a package called CtsShimApex , which must be preinstalled on a device to write CTS tests\r\nfor APEX management.\r\nTest harness mode\r\nCTS test harness mode helps developers automate testing for a device or a fleet of devices.\r\nInstant Apps mode\r\nStarting in Android 10, CTS runs in Instant Apps mode, which means installing the test APK as an Instant App\r\nand running the tests.\r\nIn addition to a CTS mode for Instant Apps, Android 10 includes CTS Verifier for Instant Apps\r\nCTS Verifier pro audio test\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 5 of 20\n\nAndroid 10 adds a CTS Verifier test for Pro Audio compliance.\r\nCTS Verifier MIDI tests\r\nIn Android 10, the CTS Verifier MIDI test tests MIDI functionality with USB MIDI interfaces, Bluetooth MIDI\r\ninterfaces, and a virtual MIDI device path.\r\nCTS test interpretation\r\nAndroid 10 updates the mechanism for interpreting CTS results.\r\nVendor Test Suite (VTS)\r\nVTS testing with debug ramdisk\r\nIn Android 10, the generic system image (GSI) used to run CTS-on-GSI/VTS compliance testing changes from\r\nuserdebug to user build type, because GSI is release signed. However, the adb root command that gives a host\r\nroot permissions to the Android device under test isn't available in a user build. This is a problem because VTS\r\nrequires adb root to run.\r\nThe debug ramdisk is introduced to make adb root possible, if the device is unlocked. This simplifies the\r\ntesting flow by reusing the same user build system.img (either GSI or the OEM’s system.img ).\r\nHardware Composer validation\r\nAndroid 10 adds a new VTS test class for Hardware Composer validation through the readback interface in\r\nIComposerClient.hal . If vendors don't implement readback , tests pass automatically.\r\nDebugging\r\nLoad shared libraries with different class loaders\r\nIn Android 9 and lower, apps loaded their linked Java shared libraries in the app's class loader. In Android 10, the\r\nframework uses a different class loader than the app's class loader to load Java shared libraries linked through\r\nuses-library or uses-static-library .\r\nIn general, apps shouldn't rely on using a specific class loader, so this change shouldn't break app behavior.\r\nHowever, if an app relies on using a single class loader, that behavior is broken. Additionally, package-private\r\nvisibility of classes in the same package is still supported, but isn't supported in shared libraries.\r\nDevice manufacturers might see app compatibility issues as they test their devices running Android 10.\r\nSecurity features\r\nFor a more complete list of enhancements related to security and privacy only, see the Android 10 security and\r\nprivacy enhancements page.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 6 of 20\n\nFace authentication\r\nFace authentication allows users to unlock their device simply by looking at the front of their device. Android 10\r\nadds support for a new face authentication stack that can securely process camera frames, preserving security and\r\nprivacy during face authentication on supported hardware. Android 10 also provides an easy way for security-compliant implementations to enable app integration for transactions such as online banking or other services.\r\nExtended access\r\nTrust agents, the underlying mechanism used by tertiary authentication mechanisms such as Smart Lock, can only\r\nextend unlock in Android 10. Trust agents can no longer unlock a locked device and can only keep a device\r\nunlocked for a maximum of four hours.\r\nEncryption\r\nOEMCrypto\r\nAndroid 10 uses OEMCrypto API version 15.\r\nTesting\r\nBoundsSanitizer\r\nAndroid 10 deploys BoundsSanitizer (BoundSan) in Bluetooth and codecs. BoundSan uses UBSan's bounds\r\nsanitizer. This mitigation is enabled on a per-module level. It helps keep critical components of Android secure\r\nand shouldn't be disabled. BoundSan is enabled in the following codecs:\r\nlibFLAC\r\nlibavcdec\r\nlibavcenc\r\nlibhevcdec\r\nlibmpeg2\r\nlibopus\r\nlibvpx\r\nlibspeexresampler\r\nlibvorbisidec\r\nlibaac\r\nlibxaac\r\nInteger Overflow Sanitization\r\nAndroid 10 enables Integer Overflow Sanitization (IntSan) in software codecs. Ensure that playback performance\r\nis acceptable for any codecs that aren't supported in the device's hardware. IntSan is enabled in the following\r\ncodecs:\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 7 of 20\n\nlibFLAC\r\nlibavcdec\r\nlibavcenc\r\nlibhevcdec\r\nlibmpeg2\r\nlibopus\r\nlibvpx\r\nlibspeexresampler\r\nlibvorbisidec\r\nExecute-only memory\r\nBy default, executable code sections for AArch64 system binaries are marked execute-only (nonreadable) as a\r\nhardening mitigation against just-in-time code reuse attacks. Code that mixes data and code together and code that\r\npurposefully inspects these sections (without first remapping the memory segments as readable) no longer\r\nfunctions. Apps with a target SDK of Android 10 (API level 29 or higher) are impacted if the app attempts to read\r\ncode sections of execute-only memory (XOM) enabled system libraries in memory without first marking the\r\nsection as readable.\r\nScudo\r\nScudo is a dynamic user-mode memory allocator designed to be more resilient against heap-related vulnerabilities.\r\nIt provides the standard C allocation and deallocation primitives, as well as the C++ primitives.\r\nShadowCallStack\r\nShadowCallStack (SCS) is an LLVM instrumentation mode that protects against return address overwrites (like\r\nstack buffer overflows) by saving a function's return address to a separately allocated ShadowCallStack instance\r\nin the function prolog of nonleaf functions and loading the return address from the ShadowCallStack instance in\r\nthe function epilog.\r\nAudio\r\nAudio HAL\r\nAndroid 10 includes the following new capatibilties for audio HAL.\r\nAudioSource\r\nAudioFormat\r\nAudioChannelMask\r\nAdditional requirements are added for audio HAL and subsystem implementation.\r\nPreprocessing effects\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 8 of 20\n\nAndroid provides preprocessing effects, such as acoustic echo cancellation, automatic gain control, and noise\r\nsuppression. Android 10 includes new requirements for capturing with VOICE_COMMUNICATION .\r\nAudio policy manager\r\nAndroid 10 includes a significant refactoring of the audio policy manager to provide more flexibility to support\r\ncomplex automotive use cases.\r\nHigh-resolution audio\r\nAndroid 10 includes the following improvements for high-resolution audio.\r\nFloat support\r\n192 KHz frequency support\r\nEight-channel support\r\nInclusion of timing information\r\nConcurrent capture\r\nAndroid 10 improves the concurrent capture user experience that requires more than one active audio capture to\r\nhappen simultaneously.\r\nAudioPlaybackCapture\r\nAndroid 10 contains a new API called AudioPlaybackCapture , which gives apps the ability to copy the audio\r\nbeing played by other apps. This feature is similar to screen capture, but for audio. The primary use case is to\r\nenable streaming apps to capture the audio being played by games.\r\nThe capture API doesn't affect the latency of the app whose audio is being captured.\r\nMIDI\r\nAndroid 10 makes it easier to port professional audio apps using MIDI to the Android platform using the AMidi\r\nNDK API.\r\nCamera\r\nFor a summary of the changes to the camera API, camera HAL, and camera module introduced in Android 10, see\r\nAndroid 10 camera updates.\r\nCamera framework privacy improvements\r\nAndroid 10 introduces privacy enhancements to the camera framework. To avoid exposing potentially sensitive\r\nstatic camera information in CameraCharacteristics without user consent, apps must obtain the CAMERA\r\npermission to retrieve static metadata with a privacy-sensitive tag using the getCameraCharacteristics method.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 9 of 20\n\nTo get a list of the camera characteristic keys that require the CAMERA permission, call the\r\ngetKeysNeedingPermission method.\r\nSession reconfiguration query\r\nAndroid 10 adds a session reconfiguration query feature, which allows for improved performance through more\r\ncontrol over the internal session parameter reconfiguration logic.\r\nCamera HAL3 buffer management APIs\r\nAndroid 10 introduces optional camera HAL3 buffer management APIs that allow you to implement buffer\r\nmanagement logic to achieve different memory and capture latency tradeoffs in camera HAL implementations.\r\nCamera HAL dynamic physical camera switch\r\nAndroid 10 introduces a dynamic metadata tag, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID , which\r\nindicates the active underlying physical camera of a logical camera device. For more information, see Multi-Camera Support.\r\nSupport for hiding physical cameras\r\nIn Android 10, the camera HAL can reduce the number of physical cameras that can be directly opened by an app.\r\nFor more details, see Multi-Camera Support.\r\nCamera2 VNDK API\r\nIn Android 10, vendor modules can access and control camera devices through two new standard HIDL interfaces,\r\nandroid.frameworks.cameraservice.service@2.0 and android.frameworks.cameraservice.device@2.0 . To\r\nmake using the HIDL interfaces more convenient, Android 10 also introduces a vendor-available library,\r\nlibcamera2_vendor . This library is similar to the Camera NDK library, with a few minor modifications.\r\nStream configurations\r\nAndroid 10 adds features that allow camera vendors to advertise recommended camera streams to camera clients\r\nand to support an API to query stream combinations.\r\nCamera stream combination requirements\r\nDevices running Android 10 are no longer required to support stream combinations with physical subcamera\r\nstreams. However, devices running Android 10 with the camera HAL device version 3.5 must support\r\nisStreamCombinationSupported() to allow apps to query whether a stream combination containing physical\r\nstreams is supported.\r\nFor more information, see Multi-Camera Support.\r\nHEIF imaging\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 10 of 20\n\nAndroid 10 provides native camera support for high efficiency image file format (HEIF) images, which offer\r\nimproved image quality and smaller sizes over JPEG images. Devices must have an HEIC or HEVC encoder to\r\nsupport HEIF images.\r\nMonochrome cameras\r\nAndroid 10 provides additional support for the Y8 stream format, monochrome and near-infrared (NIR) color\r\nfilter array static metadata, and DngCreator functions for monochrome cameras.\r\nConnectivity\r\nCalling and messaging\r\nEmergency numbers and emergency calling\r\nAndroid 10 provides improved support for emergency calling. In an emergency, devices with support for IRadio\r\nHAL v1.4 can initiate an emergency call using emergency numbers retrieved from a source such as a SIM card,\r\nthe network signal, or the Android database. Numbers can be categorized based on emergency service categories\r\nsuch as police, fire, and ambulance.\r\nGroup call APIs\r\nThe group call APIs are an extension of the eMBMS APIs added in Android 9. The new APIs define a standard for\r\napps to join and broadcast on cell-broadcast group calls by interacting with eMBMS middleware packages. Group\r\ncalls require support from the chipset vendor, middleware vendor, and the cell carrier to function properly.\r\nDeveloper documentation is located at developer.google.com.\r\nRemote SIM capabilities\r\nAndroid 10 introduces remote SIM capabilities that allow messaging apps on an Android host device to send SMS\r\nmessages through phones using mechanisms such as Bluetooth. For more information, see the reference\r\ndocumentation for the getSubscriptionType method and the SUBSCRIPTION_TYPE_REMOTE_SIM constant.\r\nMultiple eSIMs\r\nIn Android 10, the EuiccManager class supports devices with multiple embedded SIMs (eSIMs), or eUICCs.\r\neSIM updates\r\nFor devices running Android 10 that support eSIMs, a nonremovable eUICC slot ID array must be defined.\r\nDevices must also support IRadio HAL v1.4 and IRadioConfig HAL v1.2. For more information, see\r\nImplementing eSIM and HAL Requirements.\r\n5G Non-Standalone (NSA)\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 11 of 20\n\nAndroid 10 adds support for 5G non-standalone (NSA). 5G NSA is a solution for 5G networks where the network\r\nis supported by an existing 4G infrastructure. On Android 10, devices can display a 5G icon on the status bar\r\nwhen a device connects to a 5G network.\r\nPhone account suggestion\r\nAndroid 10 introduces the phone account suggestion service, which allows suggestions for phone accounts to be\r\nshown to users when making a call.\r\nCarrier\r\nMigrate Mobile Network settings\r\nAndroid 10 rearchitected the Mobile Network settings UI code and moved it from the Telephony stack to the\r\nSettings stack. To support the migrated code, change the following Mobile Network settings configuration values\r\nfrom Android resources to CarrierConfig resources:\r\nconfig_world_mode -\u003e CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL\r\nconfig_support_tdscdma -\u003e CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL\r\nconfig_support_tdscdma_roaming_on_networks -\u003e\r\nCarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY\r\nconfig_enabled_lte -\u003e CarrierConfigManager#KEY_LTE_ENABLED_BOOL\r\nDevice identifiers\r\nPersistent device identifiers (IMEI/MEID, IMSI, and build serial) are guarded by a privileged permission with\r\naccess also granted to device and profile owner apps. Because the IMSI and SIM serial number are carrier\r\nprovided, access to these identifiers is granted to packages with carrier privileges.\r\nWi-Fi\r\nNetwork selection\r\nAndroid continuously evaluates the quality of the connected network and assesses the quality of available\r\nnetworks. Android 10 has updated algorithms and procedures for selecting and switching between Wi-Fi\r\nnetworks.\r\nWi-Fi preferred network offload scanning\r\nAndroid 10 introduces an optional API method named setDeviceMobilityState() in WifiManager that\r\nincreases the interval between preferred network offload (PNO) scans when the device is stationary to reduce\r\npower usage.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 12 of 20\n\nCarrier Wi-Fi\r\nIn Android 10, devices with the carrier Wi-Fi feature automatically connect to configured carrier Wi-Fi networks\r\n(networks with public key certificates).\r\nWi-Fi Easy Connect\r\nIn Android 10, devices can use Wi-Fi Easy Connect, which uses the device provisioning protocol (DPP)\r\nintroduced by the Wi-Fi Alliance (WFA), to provision and configure Wi-Fi devices.\r\nWi-Fi low-latency mode\r\nAndroid 10 introduces a Wi-Fi low-latency mode, which configures the Wi-Fi chip to reduce latency.\r\nUpdated DHCP server\r\nAs part of the formation of an \"IP Server\" service umbrella, dnsmasq is being deleted. Android 10 replaces its\r\nDHCPv4 server functional use with a separate component, primarily written in Java to better integrate with the\r\nJava framework control plane. This improves security and updatability for the DHCP server. For more details, see\r\npackages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java .\r\nNo action is required to implement this change: all devices releasing and upgrading to Android 10 use\r\nDhcpServer by default. If you have customizations to the DHCP server, you can revert to Android 9 behavior by\r\nsetting the global setting tether_enable_legacy_dhcp_server=1 . The new DhcpServer is included in the\r\nnetworking components module, so any customization to DHCP server functionality should be upstreamed.\r\nWPA3 and Wi-Fi Enhanced Open\r\nAndroid 10 adds support for the Wi-Fi Protected Access 3 (WPA3) and Wi-Fi Enhanced Open security standards\r\nto provide better privacy and robustness against known attacks.\r\nWi-Fi Direct\r\nWi-Fi Direct, also known as Wi-Fi P2P, allows supporting devices to discover and connect to one another directly\r\nusing the Wi-Fi Direct protocol without internet or cellular network access.\r\nMAC randomization enhancements\r\nFrom Android 10, MAC randomization is enabled by default for client mode, SoftAp, and Wi-Fi Direct. Devices\r\nmust provide an option to enable or disable MAC randomization for each SSID in the system UI.\r\nPasspoint R2\r\nAndroid 10 introduces support for Passpoint R2 features. Passpoint R2 implements online sign up (OSU), a\r\nstandard method to provision new Passpoint profiles. Android 10 supports the provisioning of EAP-TTLS profiles\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 13 of 20\n\nusing SOAP-XML.\r\nNFC\r\nSecure NFC\r\nSecure NFC allows off-host NFC card emulation to be enabled only when the device's screen is unlocked.\r\nImplementing this feature gives users the option to enable Secure NFC for improved security.\r\nAndroid Beam deprecated\r\nIn Android 10, Android Beam is no longer required and the following interfaces and methods have been\r\ndeprecated.\r\nInterfaces:\r\nNfcAdapter.CreateBeamUrisCallback\r\nNfcAdapter.CreateNdefMessageCallback\r\nNfcAdapter.OnNdefPushCompleteCallback\r\nMethods:\r\ncreateBeamUris\r\ninvokeBeam\r\nisNdefPushEnabled\r\nsetBeamPushUris\r\nsetBeamPushUrisCallback\r\nsetNdefPushMessage\r\nsetNdefPushMessageCallback\r\nsetOnNdefPushCompleteCallback\r\ncreateNdefMessageCallback\r\nonNdefPushCompleteCallback\r\nTo use Android Beam, report the android.sofware.nfc.beam feature constant.\r\nGraphics\r\nASurfaceControl\r\nAndroid 10 adds ASurfaceControl , a new way for SurfaceFlinger to accept buffers.\r\nGraphics implementation\r\nOpenGL ES layers\r\nAndroid 10 introduces a layering system for GLES.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 14 of 20\n\nEGL 1.5\r\nAndroid 10 implements the EGL 1.5 interface. For information on new features in EGL 1.5, view the Khronos\r\nReleases EGL 1.5 Specification.\r\nVulkan\r\nAndroid 10 includes support for Vulkan 1.1 graphics. The platform also supports VK_KHR_swapchain v70, so the\r\nVulkan app is able to create a VkImage backed by swapchain memory.\r\nPerformance refresh rate\r\nAndroid 10 adds support for a performance refresh rate. This feature is turned off by default.\r\nInteraction\r\nAutomotive\r\nAutomotive audio\r\nIn Android 10, Audio HAL context maps to AudioAttributes.usage to identify sounds. Android supports one\r\nAUDIO_DEVICE_OUT_BUS instance per context. IAudioControl HAL provides vehicle-specific extensions to the\r\nAudio HAL.\r\nGestural navigation\r\nAndroid 10 introduces an option for a fully gestural system navigation. For information about how to prepare apps\r\nto use this feature, see the Gestural navigation page on the Android Developer site.\r\nNeural networks\r\nAndroid 10 introduces updates to the Neural Networks API and the Neural Networks HAL. For a summary of the\r\nchanges, see Neural networks.\r\nNew and updated Neural Networks documentation for Android 10:\r\nOverview\r\nAHardwareBuffer\r\nBurst Executions and Fast Message Queues\r\nCompilation Caching\r\nDevice Discovery and Assignment\r\nVendor Extensions\r\nSensors\r\nSensors HAL 2.0\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 15 of 20\n\nSensors HAL 2.0 supports using fast message queues (FMQs) to send sensor events from the HAL into the\r\nAndroid Sensors Framework.\r\nSensors off\r\nAndroid 10 includes a developer setting to shut off all sensors on a device. This feature helps developers test their\r\napp’s functionality in situations where those sensors become unavailable, and also gives users a way to control the\r\nsensors in their device.\r\nIf your devices use the default implementation of SensorService , CameraService , and AudioPolicyService ,\r\nthen no additional customization is needed to the reference design. If you have other sensors, see Customization\r\nfor more details about supporting this feature.\r\nUpdatable media components\r\nAndroid 10 provides updatable media components that enable updating media-related modular system\r\ncomponents through the Google Play Store infrastructure or through a partner-provided over-the-air (OTA)\r\nmechanism.\r\nMedia DRM\r\nAndroid 10 improves the utility and usability of the MediaDrm Java and NDK APIs.\r\nDecoding\r\nAndroid 10 supports AV1 SW decoding.\r\nPermissions\r\nAndroid 10 provides additional permission configurations for transparency and user privacy.\r\nContacts provider and affinities information\r\nStarting in Android 10, contacts-affinity-related data, managed by the Contacts Provider component, is accessed\r\ndifferently than in Android 9 and lower. These changes regarding data accessibility improve user privacy in all\r\nAndroid 10 devices that use the Contacts Provider component. The underlying database no longer contains contact\r\naffinities data. Therefore apps can’t write to or read from it.\r\nThe changes in Android 10 are expected to have a large impact on APIs. If your apps rely on the deprecated\r\nfeatures mentioned in Contacts Provider and Affinities Information, you may want to update your apps to\r\ncompensate for any changes. Additionally, if you use a forked version of the Contacts Provider, you must update\r\nyour Contacts Provider.\r\nTristate location permissions\r\nTristate location permissions in Android 10 give users more control over how apps access their device locations.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 16 of 20\n\nBackground location access reminder\r\nAndroid 10 features a background access location reminder, which increases transparency into how much access\r\napps have to a device's location and helps users maintain control over such access.\r\nRestrict opportunistic locations\r\nWhen an app requests a device’s location, the app can either wait for the request response or, by using active\r\nlocation listeners, get an opportunistic location update. Starting in Android 10, to get opportunistic location\r\nupdates, developers must specify that they need passive location updates from the\r\nFusedLocationProviderClient class.\r\nBackground apps launching\r\nIn Android 10, nonprivileged apps without a visible window can’t launch themselves automatically to the\r\nforeground. This change suppresses ad popups and malicious takeovers. No action is required to enable this.\r\nApp sandboxing\r\nIn Android 10, apps have a limited raw view of the file system, with no direct access to paths like /sdcard/DCIM .\r\nHowever, apps retain full raw access to their package-specific paths, as returned by any applicable methods such\r\nas Context.getExternalFilesDir() . Apps still have full raw access to their package-specific paths.\r\nUse the app sandbox guidelines for sharing files to provide appropriate data-sharing granularity.\r\nRestrict app clipboard access\r\nIn Android 10, clipboard access has changed so that clipboard content can’t be watched by calling\r\nClipboardManager.getPrimaryClip or by adding an onPrimaryClipChangedListener listener for notification\r\nwhen the clipboard changes. This increases user privacy and disables malvertizing apps from modifying the\r\nclipboard.\r\nIn Android 10, read access is only allowed to either the current app with input focus, or to the current keyboard.\r\nThe ClipboardManager.onPrimaryClipChanged() listener call now only fires for apps that meet such restrictions.\r\nClipboardManager.getPrimaryClip and ClipboardManager.getPrimaryClipDescription return null if the\r\nrequesting app either isn’t the default input method editor (IME), or doesn’t have input focus.\r\nRuntime permissions include activity recognition\r\nUsers now see an activity recognition dialog when an app accesses device location in the background. Hard-restricted runtime permissions must be properly whitelisted in Android 10.\r\nMANAGE_DEVICE_ADMINS permission\r\nAndroid 10 changes the MANAGE_DEVICE_ADMINS permission from signature or privileged to signature only. This\r\nmeans that only platform-signed apps can set other apps as a device admin.\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 17 of 20\n\nSharing API improvements\r\nAndroid 10 provides a number of new Android Platform API features related to sharing. If you've modified the\r\nShare Sheet code in your implementation, ensure that your implementation supports these new features. If you\r\nhaven't modified the Share Sheet code in your implementation, you don’t need to do anything to support these\r\nnew features.\r\nAndroid Runtime (ART)\r\nSigned Config\r\nThe Signed Config feature allows embedding configuration of non-SDK interface restrictions in APKs. This\r\nenables removing specific non-SDK interfaces from the blacklist, so that AndroidX can safely use them. With this\r\nchange, AndroidX can add support for new features on older Android versions.\r\nPerformance\r\nCgroup abstraction layer\r\nAndroid 10 includes a cgroup abstraction layer and task profiles, which developers can use to describe a set of\r\nrestrictions to apply to a thread or a process.\r\nLow Memory Killer Daemon (lmkd)\r\nAndroid 10 supports a new lmkd mode that uses kernel pressure stall information (PSI) monitors for memory\r\npressure detection.\r\nPower\r\nPlatform power management\r\nIn Android 10, Doze mode can be enabled on always-on devices as well as on battery-powered devices.\r\nRoutine battery saver\r\nAndroid 10 introduces a new battery saver schedule option called based on routine. Routine battery saver allows\r\nan app chosen by the OEM to provide signals to the system for more intelligent battery saver scheduling. This\r\noption requires configuration, and is optional to implement.\r\nPower stats HAL\r\nIn Android 10, IPowerStats.hal replaces the power stats collection APIs in IPower.hal . While the power HAL\r\nstill supports the APIs, they'll be migrated exclusively to the power stats HAL in the future.\r\nThe power stats HAL includes new APIs to support the collection of data from on-device power measurement, for\r\nsupported devices. The existing power stats collection APIs are also updated to improve flexibility. The power\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 18 of 20\n\nhinting APIs remain in power HAL and aren't changing.\r\nThermal mitigation\r\nThe thermal framework in Android 10 abstracts device interfaces for the thermal subsystem temperature sensor,\r\nincluding CPU, GPU, battery, skin, and cooling device. The framework introduces a polling interface to query\r\nthermal status to initiate throttling, and a callback interface to send a message to the user when a threshold is\r\nexceeded.\r\nAndroid 10 provides the new data types through the IThermalService interface using these three new methods:\r\ngetCurrentThermalStatus() returns the current thermal status of the device as an integer, unless the\r\ndevice is undergoing throttling.\r\naddThermalStatusListener() adds a listener.\r\nremoveThermalStatusListener() removes a previously added listener.\r\nApps add and remove listeners and access temperature status in the PowerManager class. Only a trusted system\r\nservice such as an Android API or device manufacturer API can access information about associated causal events.\r\nDevice manufacturers or SoC makers must implement thermal HAL 2.0 to enable the full functionality of the\r\nnew thermal framework.\r\nFor a thermal mitigation implementation example, see the Reference implementation.\r\nUpdates\r\nAPEX file format\r\nAndroid Pony EXpress (APEX) is a new container format used in the install flow for modular system\r\ncomponents.\r\nDynamic partitions\r\nDynamic partitions introduce a userspace partitioning system to Android, allowing partitions to be created,\r\nresized, or destroyed during OTA updates. Device makers don't have to worry about the individual sizes of\r\npartitions, such as system , vendor , and product . Instead, one big super partition is allocated, and\r\nsubpartitions can be sized dynamically within it.\r\nDynamic system updates\r\nDynamic system updates (DSU) allows you to make an Android system image that users can download from the\r\ninternet and try out without the risk of corrupting the current system image.\r\nMultiuser backup and restore\r\nAndroid 10 supports backup and restore functionality for all users on a device. Previously, backup and restore was\r\nonly available for the system user. Backup and restore for nonsystem users is turned off by default as it has only\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 19 of 20\n\npartial coverage for settings, wallpaper, and system components.\r\nOverlayfs\r\nUsers working with userdebug or eng builds expect to be able to efficiently remount the system partition as\r\nread-write and then add or modify any number of files without reflashing the system image. You can use\r\nOverlayfs , which automatically sets up backing storage for a writable file system as an upper reference, and\r\nmounts over the lower. These actions happen in the adb disable-verity and adb remount requests. For more\r\ndetails, see the Overlayfs README in AOSP.\r\nShared library support in recovery mode\r\nIn Android 10, shared libraries are available in the recovery partition, which eliminates the need for all recovery\r\nmode executables to be static. The shared libraries are located under the /system/lib (or /system/lib64 for\r\n64-bit devices) directory in the partition.\r\nTo add a new shared library to the recovery partition, add recovery_available: true or recovery: true to\r\nAndroid.bp of the shared library. The former installs the library to both the system and recovery partitions, while\r\nthe latter installs it only to the recovery partition.\r\nShared library support can't be built with Android's make-based build system. To convert an existing static\r\nexecutable for the recovery mode to a dynamic one, remove LOCAL_FORCE_STATIC_EXECUTABLE := true in\r\nAndroid.mk or static_executable: true (in Android.bp ).\r\nUser Data Checkpoint (UDC)\r\nAndroid 10 introduces the User Data Checkpoint (UDC) feature, which allows Android to roll back to its previous\r\nstate when an Android over-the-air (OTA) update fails.\r\nSource: https://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nhttps://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons\r\nPage 20 of 20",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"origins": [
		"web"
	],
	"references": [
		"https://source.android.com/setup/start/android-10-release#limitations_to_hiding_app_icons"
	],
	"report_names": [
		"android-10-release#limitations_to_hiding_app_icons"
	],
	"threat_actors": [
		{
			"id": "aa73cd6a-868c-4ae4-a5b2-7cb2c5ad1e9d",
			"created_at": "2022-10-25T16:07:24.139848Z",
			"updated_at": "2026-04-10T02:00:04.878798Z",
			"deleted_at": null,
			"main_name": "Safe",
			"aliases": [],
			"source_name": "ETDA:Safe",
			"tools": [
				"DebugView",
				"LZ77",
				"OpenDoc",
				"SafeDisk",
				"TypeConfig",
				"UPXShell",
				"UsbDoc",
				"UsbExe"
			],
			"source_id": "ETDA",
			"reports": null
		}
	],
	"ts_created_at": 1775434534,
	"ts_updated_at": 1775826756,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/3d0689d96dd2231000fdf7e332252b7d18b19225.pdf",
		"text": "https://archive.orkl.eu/3d0689d96dd2231000fdf7e332252b7d18b19225.txt",
		"img": "https://archive.orkl.eu/3d0689d96dd2231000fdf7e332252b7d18b19225.jpg"
	}
}