Package
com.android.microdroid.empty_payload
Guidance
This is the empty payload APK that ships with the Android Virtualization Framework (AVF), and like the CompOS payload above it is a platform component rather than an app. In the Android source it is built as EmptyPayloadApp inside the com.android.virt APEX. Its manifest declares the package com.android.microdroid.empty_payload, marks the application android:testOnly="true" with android:hasCode="false", requests MANAGE_VIRTUAL_MACHINE and requires the android.software.virtualization_framework feature. Its native payload does almost nothing: it prints "Hello Microdroid", signals that the payload is ready and then waits, which is what you want when the point is to boot a Microdroid virtual machine and interact with it rather than to run a workload. In other words it exists so that AVF can be brought up with an effectively empty guest, for development, testing and benchmarking of the virtual machine itself. It does nothing at all unless something deliberately starts a VM with it, and its testOnly flag means it is not a normally installable app. Version note: AOSP states that AVF is supported only on ARM64 devices. The source builds this app with a minimum and target SDK of 34, that is Android 14, and our sample records it with target SDK 34 to 37 and platform version names of 15 to 17. No change of role across releases was found. For Android Enterprise, EMM and kiosk use it has no enrolment, policy or user-facing role. It will show up in an app inventory on devices that support AVF and can be ignored. Because it is delivered inside a platform APEX it is not something to strip out, and there is no benefit in trying, so leave it alone.
- Android Virtualization Framework (AVF) overview - Android Open Source Project →
- Microdroid - Android Open Source Project →
- EmptyPayloadApp AndroidManifest.xml - Android (packages/modules/Virtualization) source →
- Package provenance for com.android.microdroid.empty_payload - Android System App Database →
Package intelligence
Observed signing, permission, version and size signals from contributing devices - descriptive of that sample, not a verdict. These come from the v2 Package Search sync, which not every device has contributed to yet, so for some packages this detail is partial or not present at all.
- Re-signed by each device maker with its own platform key - 12 different certificates appear across 9 device makers in our sample. That is the signature of a stock AOSP/system package every OEM builds and signs itself, not a single maker's or a third party's preinstall.
- Its largest observed manifest declares 1 permissions: 1 vendor or uncatalogued.
- Never reported as user-facing, so it runs as a background or system component rather than an app the user opens.
Declared permissions (1)
Largest permission set observed for this package. Text is Android's own published description where one exists; platform permissions Android does not document show their granted protection level (in grey) instead; vendor or unknown constants show the name only.
| Permission | Description |
|---|---|
MANAGE_VIRTUAL_MACHINE |
- |
Manage on devices
ADB commands for this package (the inverse of each is included so you can undo). Run from an authorised shell or wire the equivalent into your DPC. Verify on a test device first - this database doesn’t yet classify which packages are safe to change. --user 0 targets the current user; drop it (and use a privileged shell) to act device-wide.
/system, so Restore re-adds it (-k keeps app data)Seen on
Each record is a device profile (make + model + Android version). Each unique handset that syncs against a matching profile will increase the observations of a package, thereby increasing confidence that a package is expected to be on a device.
| OEM | Model | Android | Provenance | Observations | Last seen |
|---|---|---|---|---|---|
| ALCommon | ALCommon | Android 15 | - | 1 | 20 Jun 2025 |
| Fairphone | Fairphone 6 | Android 15 | - | 2 | 6 Nov 2025 |
| Fezawio | F11_V_US | Android 15 | - | 1 | 14 Jul 2026 |
| Pixel 10 | Android 16 | 1 | 5 Jun 2026 | ||
| Infinix | Infinix X6871 | Android 14 | - | 1 | 21 May 2025 |
| Lenovo | TB570FU | Android 15 | - | 1 | 17 Jun 2025 |
| Motorola | moto g05 | Android 15 | OEM Motorola | 2 | 15 Apr 2026 |
| Motorola | moto g06 | Android 15 | - | 2 | 3 Mar 2026 |
| Motorola | moto g15 | Android 15 | - | 10 | 27 Nov 2025 |
| Motorola | moto g85 5G | Android 14 | - | 1 | 21 Aug 2025 |
| Newland | NLS-MT95 | Android 15 | OEM Newland | 1 | 19 Aug 2026 |
| Nothing | A015 | Android 15 | - | 2 | 14 May 2025 |
| OnePlus | CPH2653 | Android 16 | - | 1 | 24 Nov 2025 |
| OPPO | CPH2591 | Android 15 | - | 1 | 10 Jul 2025 |
| OPPO | CPH2637 | Android 15 | OEM OPPO | 1 | 2 Feb 2026 |
| OUKITEL | C59 Pro | Android 15 | - | 1 | 6 Nov 2025 |
| OUKITEL | WP100 TITAN | Android 15 | - | 1 | 6 Dec 2025 |
| OUKITEL | WP60 | Android 15 | OEM OUKITEL | 3 | 9 Dec 2025 |
| Samsung | SM-A566B | Android 16 | OEM Samsung | 3 | 12 Sep 2026 |
| Samsung | SM-F766B | Android 16 | - | 1 | 11 Nov 2025 |
| Samsung | SM-F971B | Android 17 | OEM Samsung | 1 | 18 Sep 2026 |
| Samsung | SM-G766B | Android 16 | OEM Samsung | 1 | 5 Sep 2026 |
| Samsung | SM-S928B | Android 16 | OEM Samsung | 2 | 12 Jun 2026 |
| Samsung | SM-S931B | Android 16 | - | 1 | 23 Nov 2025 |
| Samsung | SM-S936B | Android 16 | - | 1 | 18 Dec 2025 |
| Samsung | SM-S942B | Android 17 | OEM Samsung | 1 | 25 May 2026 |
| Samsung | SM-S948U | Android 16 | - | 1 | 9 Sep 2026 |
| TCL | 9566X | Android 15 | OEM TCL | 1 | 13 Mar 2026 |
| TCL | T517F | Android 16 | OEM TCL | 1 | 8 Aug 2026 |
| TCL | T951K | Android 15 | OEM TCL | 8 | 8 Jan 2026 |
| Unihertz | Titan 2 | Android 15 | - | 2 | 5 Jan 2026 |
| Urao | X108 | Android 16 | OEM URAO | 1 | 3 Jun 2026 |
| vivo | V2550 | Android 16 | OEM vivo | 1 | 21 Jul 2026 |
| Xiaomi | 23106RN0DA | Android 15 | - | 1 | 22 May 2025 |
| Xiaomi | 23124RA7EO | Android 15 | - | 1 | 17 Jun 2025 |
| Xiaomi | 24117RN76O | Android 15 | OEM Xiaomi | 1 | 28 Dec 2025 |
| Xiaomi | 24117RN76O | Android 16 | OEM Xiaomi | 1 | 20 Mar 2026 |
Known labels
Locale-aware display names seen in the wild.
| Label | Locale | Seen |
|---|---|---|
| com.android.microdroid.empty_payload | en-us | 20 |
| com.android.microdroid.empty_payload | en-gb | 18 |
| com.android.microdroid.empty_payload | en | 11 |
| com.android.microdroid.empty_payload | de-at | 10 |
| com.android.microdroid.empty_payload | it-IT | 5 |
| com.android.microdroid.empty_payload | vi-vn | 2 |
| com.android.microdroid.empty_payload | es-us | 2 |
| com.android.microdroid.empty_payload | vi-VN | 2 |
| com.android.microdroid.empty_payload | 1 | |
| com.android.microdroid.empty_payload | es-mx | 1 |
| com.android.microdroid.empty_payload | it-it | 1 |
| com.android.microdroid.empty_payload | ja-jp | 1 |
| com.android.microdroid.empty_payload | nl-nl | 1 |
| com.android.microdroid.empty_payload | pl-PL | 1 |
| com.android.microdroid.empty_payload | pl-pl | 1 |
| com.android.microdroid.empty_payload | ru-ru | 1 |
| com.android.microdroid.empty_payload | es-US | 1 |
| com.android.microdroid.empty_payload | cs-cz | 1 |
| com.android.microdroid.empty_payload | de-de | 1 |
| com.android.microdroid.empty_payload | en-GB | 1 |
| com.android.microdroid.empty_payload | en-US | 1 |
| com.android.microdroid.empty_payload | en-au | 1 |
| com.android.microdroid.empty_payload | en-lk | 1 |
| com.android.microdroid.empty_payload | es-MX | 1 |