Package
com.google.android.retaildemo
Retail Demo
Guidance
Labelled "Retail Demo" on most builds, this is a Google-signed system app with no launcher icon. In our sample it appears on Google Pixel devices and on Googlebook laptops from ASUS, Dell and HP, all signed by a single Google certificate, and it is usually reported as an updated system app, so a newer build is installed over the one in the system image. It is the Google-built component for store demonstration units. Android's platform retail demo mode, documented by the Android Open Source Project, uses a demo user and a custom launcher that loops a promotional video, and resets the session after idle time. The permissions this package declares include PROVISION_DEMO_DEVICE and several retaildemo-specific permissions, which fits that role. The exact behaviour of Google's package, as opposed to the AOSP reference RetailDemo app, is not publicly documented and could not be sourced here. Version note: AOSP says system-level retail demo support arrived in Android 7.1.1 and was reworked in Android 8.1 to use demo-type users, and the same page also carries a notice that retail demo mode is no longer supported from 8.1. This package nevertheless appears in our sample on Android 15 through 17, so Google evidently still ships it; whether its role has changed on newer releases could not be sourced. For Android Enterprise, EMM and kiosk use it has no enrolment or management role. AOSP says that to leave retail mode the device must not be enrolled in device management and must be factory reset, so a unit that arrives in a store demo should be reset before provisioning. No safe_to_disable rating is given because its dependencies are undocumented; test on the target model before disabling it.
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.
- Signed by Google's own signing key (the same key Google uses across devices), so it is a Google-provided preinstall that updates independently of the system image, and that single certificate is consistent across all 10 device profiles. This certificate spans 4 device makes - the hallmark of a globally distributed Google key.
- Its largest observed manifest declares 52 permissions: 7 runtime (user-granted), 22 signature or system-level, 14 install-time and 9 vendor or uncatalogued.
- APK size ranges from 2.6 MB to 30.7 MB across the reporting device profiles, so the build differs substantially between them.
- Reported as an updated system app in 22 of 56 observations - a newer build was installed over the one in the system image. Multiple observations can come from the same device profile.
Declared permissions (52)
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 |
|---|---|
ACCESS_BLOBS_ACROSS_USERS |
Signature or privileged system permission. |
ACCESS_COARSE_LOCATION |
This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location. |
ACCESS_FINE_LOCATION |
This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage. |
ACCESS_LOCAL_NETWORK |
- |
ACCESS_NETWORK_STATE |
Allows the app to view information about network connections such as which networks exist and are connected. |
ACCESS_WIFI_STATE |
Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices. |
CHANGE_COMPONENT_ENABLED_STATE |
Signature or privileged system permission. |
CHANGE_CONFIGURATION |
Signature or privileged system permission. |
CHANGE_OVERLAY_PACKAGES |
Signature or privileged system permission. |
CHANGE_WIFI_STATE |
Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks. |
DELETE_PACKAGES |
Signature or privileged system permission. |
DOWNLOAD_WITHOUT_NOTIFICATION |
- |
FOREGROUND_SERVICE |
Allows the app to make use of foreground services. |
FOREGROUND_SERVICE_SYSTEM_EXEMPTED |
Allows the app to make use of foreground services with the type "systemExempted" |
GET_ACCOUNTS |
Allows the app to get the list of accounts known by the phone. This may include any accounts created by applications you have installed. |
GET_PACKAGE_SIZE |
Allows the app to retrieve its code, data, and cache sizes |
INSTALL_PACKAGES |
Signature or privileged system permission. |
INTERNET |
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet. |
MANAGE_ACCOUNTS |
Install-time permission, granted automatically. docs ↗ |
MANAGE_EXTERNAL_STORAGE |
Signature-level system permission, for platform-signed apps. docs ↗ |
MANAGE_USERS |
Signature or privileged system permission. |
MODIFY_DAY_NIGHT_MODE |
Signature or privileged system permission. |
MODIFY_PHONE_STATE |
Signature or privileged system permission. |
OBSERVE_APP_USAGE |
Signature or privileged system permission. |
PACKAGE_USAGE_STATS |
Signature or privileged system permission. |
POST_NOTIFICATIONS |
Allows the app to show notifications |
PROVISION_DEMO_DEVICE |
Signature-level system permission, for platform-signed apps. |
QUERY_ALL_PACKAGES |
Allows an app to see all installed packages. |
QUERY_USERS |
Signature or privileged system permission. |
READ_CALL_LOG |
This app can read your call history. |
READ_PHONE_STATE |
Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call. |
READ_PRIVILEGED_PHONE_STATE |
Signature or privileged system permission. docs ↗ |
REAL_GET_TASKS |
Signature or privileged system permission. |
RECEIVE_BOOT_COMPLETED |
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running. |
SCHEDULE_EXACT_ALARM |
This app can schedule work to happen at a desired time in the future. This also means that the app can run when you\u2019re not actively using the device. |
SET_TIME_ZONE |
Allows the app to change the phone's time zone. |
SET_WALLPAPER |
Allows the app to set the system wallpaper. |
START_ACTIVITIES_FROM_BACKGROUND |
Signature or privileged system permission. docs ↗ |
START_FOREGROUND_SERVICES_FROM_BACKGROUND |
Signature or privileged system permission. |
USE_EXACT_ALARM |
This app can schedule actions like alarms and reminders to notify you at a desired time in the future. |
USE_LOOPBACK_INTERFACE |
- |
WAKE_LOCK |
Allows the app to prevent the phone from going to sleep. |
WRITE_CALL_LOG |
Allows the app to modify your phone's call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log. |
WRITE_SECURE_SETTINGS |
Signature or privileged system permission. |
WRITE_SETTINGS |
Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration. |
WRITE_SYNC_SETTINGS |
Allows an app to modify the sync settings for an account. For example, this can be used to enable sync of the People app with an account. |
com.google.android.apps.pixel.factoryota.permission.CONFIG_RESULT |
- |
com.google.android.apps.retaildemo.permission.FACTORY_CONFIG_QUERY |
- |
com.google.android.apps.retaildemo.permission.RETAILDEMO_COMMUNICATION |
- |
com.google.android.gms.permission.AD_ID |
- |
com.google.android.pixelsystemadapter.permission.ACCESS_RETAIL_DEMO_SERVICE |
- |
com.google.android.providers.gsf.permission.READ_GSERVICES |
- |
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 |
|---|---|---|---|---|---|
| ASUS | ASUS Googlebook 14 | Android 17 | 1 | 12 Oct 2026 | |
| Dell | XPS Googlebook | Android 17 | 2 | 1 Nov 2026 | |
| Pixel 10 Pro | Android 16 | 1 | 26 Mar 2026 | ||
| Pixel 10 Pro | Android 17 | 1 | 1 Nov 2026 | ||
| Pixel 7 Pro | Android 16 | 1 | 9 Mar 2026 | ||
| Pixel 8 | Android 16 | - | 4 | 3 Jun 2026 | |
| Pixel 8a | Android 15 | - | 1 | 5 Oct 2025 | |
| Pixel 9 Pro XL | Android 16 | 21 | 29 Mar 2026 | ||
| Pixel 9 Pro XL | Android 17 | 2 | 26 Oct 2026 | ||
| Pixel 9a | Android 15 | - | 1 | 15 Jun 2025 | |
| Pixel 9a | Android 16 | 6 | 2 Jun 2026 | ||
| Pixel 9a | Android 17 | - | 1 | 16 Jul 2026 | |
| Hp | HP Googlebook 14 | Android 17 | 2 | 10 Oct 2026 |
Known labels
Locale-aware display names seen in the wild.
| Label | Locale | Seen |
|---|---|---|
| com.google.android.retaildemo | nl-NL | 27 |
| com.google.android.retaildemo | en-us | 24 |
| Retail Demo | en | 18 |
| com.google.android.retaildemo | en-gb | 8 |
| com.google.android.retaildemo | en | 7 |
| Retail Demo | en-gb | 6 |
| Retail Demo | en-GB | 4 |
| com.google.android.retaildemo | nl-nl | 3 |
| Retail Demo | 1 | |
| com.google.android.retaildemo | en-ca-u-fw-mon-mu-celsius | 1 |
| com.google.android.retaildemo | en-us-u-fw-mon-ms-ussystem-mu-fahrenhe | 1 |