System app database

Package

com.sec.android.app.hwmoduletest

HwModuleTest

46device profiles
70observations
0user-facing hits
18 Sep 2026last seen

Guidance

Disable with caution verified 21 Aug 2026

Labelled "HwModuleTest" on Galaxy devices, this is a Samsung-signed system package with no launcher entry: this site records it as not user-facing on every observation, and the signing key it shares with the rest of the Samsung system estate also signs the framework. It belongs to Samsung's factory and hardware test tooling. The clearest sourceable evidence for that is what it declares: android.permission.HARDWARE_TEST, which the Android platform manifest defines as allowing access to hardware peripherals and describes as intended only for hardware testing, at signature protection level and not for third-party use. Alongside it sit permissions that match a per-component test harness, including MANAGE_FINGERPRINT, HIGH_SAMPLING_RATE_SENSORS, MODIFY_AUDIO_SETTINGS, BLUETOOTH_ADMIN, DEVICE_POWER and VIBRATE. It also holds keystring permissions belonging to com.sec.android.app.lcdtest, com.sec.factory and com.sec.testingsettings. A keystring is one of the star-and-hash sequences typed into the dialler to reach a hidden engineering screen, and those declarations are consistent with the keystring family covered by this site's notes on DRParser Mode and Service mode. They establish what this package declares, not that it is itself reachable from the dialler: no source examined here demonstrates a runtime route. Samsung publishes no functional documentation for this package, so which individual test screens it presents is not sourceable here, and descriptions circulating on APK catalogues are not a basis for a claim. Version note. Samsung's own Common Criteria application lists record it at version 9 on Android 9-era Galaxy S10+ firmware and 11 on Android 11-era Galaxy S20 FE and S20 Ultra firmware, matching the Android major version in each case. This site records later builds from "12" through to "2.0.13.0", so dotted version names appear in the later builds observed here rather than the Android major number used earlier; which Android release introduced that change, and why, could not be sourced. Nothing sourced suggests the package has been superseded or modularised: it is observed here from API 28 through API 37. For Android Enterprise, EMM and kiosk use, it is worth separating visibility from exposure. Being non-user-facing it will not appear in a launcher, so administrators normally meet it in an EMM app inventory rather than on a device. Where a build does make engineering screens reachable from the dialler, that is the exposure that matters on a locked-down device, and the practical control is the allowlist: keep the dialler and other system apps out of a kiosk allowlist unless they are needed, then test the finished build by actively trying to escape it. In the Android Management API the documented lever is an application policy with installType BLOCKED, which the reference defines as the app being blocked and unable to install, and uninstalled if it was installed under a previous policy; the reference does not state what that does to a package preinstalled in the system image, so confirm the outcome on the device model in question. Samsung documents neither what depends on this package nor what service and repair workflows need it, so disabling is rated caution rather than treated as a routine debloat target.

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.

2
signing certs
OEM-forked / varies
26
permissions
largest set observed
1.5 MB – 5.1 MB
APK size
31 – 36
target SDK
12 → 2.0.13.0
versions observed
21
device profiles
Declared permissions (26)

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.

PermissionDescription
ACCESS_CHECKIN_PROPERTIES Signature or privileged system permission.
BLUETOOTH Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
BLUETOOTH_ADMIN Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
CHANGE_CONFIGURATION Signature or privileged system permission.
DEVICE_POWER Signature-level system permission, for platform-signed apps.
HARDWARE_TEST Signature-level system permission, for platform-signed apps.
HIGH_SAMPLING_RATE_SENSORS Allows the app to sample sensor data at a rate greater than 200 Hz
MANAGE_FINGERPRINT Signature or privileged system permission.
MODIFY_AUDIO_SETTINGS Allows the app to modify global audio settings such as volume and which speaker is used for output.
MODIFY_PHONE_STATE Signature or privileged system permission.
MOUNT_UNMOUNT_FILESYSTEMS 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.
REORDER_TASKS Allows the app to move tasks to the foreground and background. The app may do this without your input.
VIBRATE Allows the app to control the vibrator.
WAKE_LOCK Allows the app to prevent the phone from going to sleep.
WRITE_MEDIA_STORAGE Signature or privileged system permission.
WRITE_OWNER_DATA -
WRITE_SETTINGS Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
sec.BARCODE_READ -
com.samsung.android.permission.ACCESS_SYSTEM_KEY_DISPATCHING -
com.samsung.android.permission.FINGERPRINT_PRIVILEGED -
com.samsung.difactorycamera.permission.ACCESS -
com.sec.android.app.hwmoduletest.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION -
com.sec.android.app.lcdtest.permission.KEYSTRING -
com.sec.factory.permission.KEYSTRING -
com.sec.testingsettings.permission.KEYSTRING -

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.

Disable for the current user
adb shell pm disable-user --user 0 com.sec.android.app.hwmoduletest
Remove for the current user - a per-user uninstall; the APK stays on /system, so Restore re-adds it (-k keeps app data)
adb shell pm uninstall -k --user 0 com.sec.android.app.hwmoduletest
Re-enable
adb shell pm enable com.sec.android.app.hwmoduletest
Restore (re-install for the current user)
adb shell pm install-existing com.sec.android.app.hwmoduletest

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.

OEMModelAndroidProvenanceObservationsLast seen
Samsung SM-A125F Android 12 OEM Samsung 1 21 Jan 2026
Samsung SM-A135F Android 14 OEM Samsung 3 21 Jan 2026
Samsung SM-A137F Android 14 - 1 17 Jan 2026
Samsung SM-A236B Android 14 OEM Samsung 2 10 Apr 2026
Samsung SM-A266B Android 15 - 2 21 Aug 2025
Samsung SM-A266B Android 16 - 1 26 Jan 2026
Samsung SM-A346B Android 15 OEM Samsung 1 27 Jul 2026
Samsung SM-A515F Android 13 - 1 30 Jun 2025
Samsung SM-A528B Android 13 - 1 19 Jun 2025
Samsung SM-A536B Android 15 - 1 19 Jun 2025
Samsung SM-A536B Android 16 OEM Samsung 1 29 Jul 2026
Samsung SM-A556B Android 15 - 1 1 Jul 2025
Samsung SM-A566B Android 16 OEM Samsung 3 12 Sep 2026
Samsung SM-F721B Android 15 - 1 9 Jul 2025
Samsung SM-F766B Android 16 - 1 11 Nov 2025
Samsung SM-F971B Android 17 OEM Samsung 1 18 Sep 2026
Samsung SM-G766B Android 15 - 1 17 Oct 2025
Samsung SM-G766B Android 16 OEM Samsung 1 5 Sep 2026
Samsung SM-G780F Android 13 OEM Samsung 1 29 Dec 2025
Samsung SM-G973U Android 12 OEM Samsung 2 10 Jun 2026
Samsung SM-G991B Android 15 OEM Samsung 1 19 Apr 2026
Samsung SM-M315F Android 12 - 1 2 Feb 2026
Samsung SM-N950U1 Android 9.0 - 1 20 Aug 2025
Samsung SM-N986B Android 13 - 9 17 Jul 2025
Samsung SM-S721U Android 15 - 5 5 Aug 2025
Samsung SM-S731B Android 16 OEM Samsung 1 11 Aug 2026
Samsung SM-S906B Android 15 - 1 2 Jun 2025
Samsung SM-S908U Android 16 OEM Samsung 2 17 Sep 2026
Samsung SM-S921B Android 15 OEM Samsung 2 22 Jul 2025
Samsung SM-S921B Android 16 OEM Samsung 1 17 Sep 2026
Samsung SM-S921U Android 15 - 1 19 Jun 2025
Samsung SM-S926B Android 16 OEM Samsung 1 14 Apr 2026
Samsung SM-S928B Android 16 OEM Samsung 2 12 Jun 2026
Samsung SM-S928U1 Android 15 - 1 12 Sep 2025
Samsung SM-S931B Android 15 - 1 20 Sep 2025
Samsung SM-S931B Android 16 - 1 23 Nov 2025
Samsung SM-S936B Android 16 - 1 18 Dec 2025
Samsung SM-S937B Android 15 - 1 25 Aug 2025
Samsung SM-S938B Android 15 - 2 25 Aug 2025
Samsung SM-S942B Android 17 OEM Samsung 1 25 May 2026
Samsung SM-S948U Android 16 - 1 9 Sep 2026
Samsung SM-T636B Android 15 - 2 12 Oct 2025
Samsung SM-T976B Android 13 - 1 21 Jul 2025
Samsung SM-X716B Android 15 - 1 27 Jun 2025
Samsung SM-X910 Android 14 - 1 26 Jun 2025
Samsung SM-X910 Android 15 - 1 12 Sep 2025

Known labels

Locale-aware display names seen in the wild.

LabelLocaleSeen
HwModuleTest en-gb 26
HwModuleTest en 20
HwModuleTest en-us 19
HwModuleTest it-IT 5
HwModuleTest nl-nl 5
HwModuleTest de-de 3
HwModuleTest en-nl 3
HwModuleTest 2
HwModuleTest en-GB 2
HwModuleTest es-ES 2
HwModuleTest es-es 2
HwModuleTest es-us 2
HwModuleTest fr-fr 2
HwModuleTest it-it 2
HwModuleTest fr-dz 1
HwModuleTest pl-pl 1
HwModuleTest en-au 1
HwModuleTest ru-ru 1
HwModuleTest es-US 1
HwModuleTest en-US 1
HwModuleTest pl-PL 1
HwModuleTest fr-FR 1