Debloat and no-root neutralization of the Sunmi "Experience mode" trial timer, the leftover MDM Device Owner, and the fleet device-lock on second-hand SUNMI V3 POS devices (e.g. ex-Deliveroo units resold on marketplaces).
Turn a locked, single-purpose ex-fleet POS into a general-purpose Android device for art, signage, hacking, or e-waste rescue — without rooting.
- Use this only on hardware you legally own.
- This is intended for right-to-repair, e-waste rescue, security research and education. Do not use it to defeat an active lease/rental agreement you still owe money on, or on lost/stolen devices.
- It voids any warranty and may violate the terms you accepted with the original vendor. You assume all responsibility.
- Everything here is non-destructive and reversible (see
scripts/restore.sh). Nothing is flashed; the bootloader is not touched. No factory reset.
Using only privileged adb (shell, uid 2000) — no root, no unlock, no flashing:
- Kills the "Experiencing – N days left" trial timer by disabling
com.sunmi.welcomeand revoking its overlay permission. The countdown lives in that app; disabled, it never runs. - Debloats ~15 Sunmi/telemetry/remote-management/store packages
(
pm uninstall --user 0, restorable). - Neutralizes the leftover MDM (
com.sunmi.remotecontrol.pro, a Device Owner that can't be removed without root) by restricting its network and guiding you to a proper per-app firewall block. - Disables the ex-fleet app (e.g. Deliveroo) that the Device Owner blocks from being uninstalled.
Result: a quiet, usable device with no trial nag and no phone-home — without ever risking a brick.
- It does not remove the Device Owner or the
ro.sunmi.dev_lock_onlease-lock framework — that requires root (see ROADMAP). - It does not activate the device (Sunmi's server refuses re-activation of ex-fleet units anyway — see docs/FINDINGS.md).
- A SUNMI V3 with USB debugging enabled (Settings → Developer options).
adb(Android platform-tools) on your PC.- The device authorized for adb (
adb devicesshowsdevice, notunauthorized).
# Linux / macOS / WSL / Git-Bash
adb devices # confirm the device is listed and authorized
./scripts/liberate.sh # apply the neutralization# Windows PowerShell
.\scripts\liberate.ps1To undo everything:
./scripts/restore.shOptional helper — reset the trial timer to 14 days without a factory reset
(only relevant if you keep com.sunmi.welcome enabled):
./scripts/reset-timer.shAfter running, follow the on-screen notes to (optionally) install a no-root
firewall (NetGuard) and/or block *.sunmi.com on your router to fully stop the
MDM from phoning home. See docs/FINDINGS.md for the why.
The no-root path neutralizes the problem but leaves the Device Owner dormant. To
permanently remove the Device Owner and the dev_lock, root is required. On the
V3 (Qualcomm QCM4325, bootloader locked but OEM-unlock allowed) the only
self-contained route we've found is:
- Dump
init_boot.imgvia EDL / QFIL (read-only, non-destructive) — needs a QCM4325 firehose programmer. - Patch with Magisk,
fastboot flashing unlock(wipes), flash the patchedinit_boot. - With root: delete the Device Owner,
resetprop ro.sunmi.dev_lock_on false, uninstall the MDM for good.
This is not yet automated here and carries real (but reversible, if you keep the EDL backup) risk. Contributions welcome.
Full technical write-up of how the lock works and how it was reverse-engineered: docs/FINDINGS.md.
MIT — see LICENSE.