From bloated POS terminal to snappy personal device β¨
Everything we learned repurposing a Sunmi V2 β so you don't have to figure it out yourself
The Sunmi V2 is a handheld POS (Point of Sale) terminal that restaurants and shops use for orders and receipts. It runs Android, has a built-in thermal printer, camera, WiFi, Bluetooth, GPS, and a nice 720x1440 screen.
When these devices get retired, they're usually tossed in a drawer. But they're full Android devices! With some cleanup, they make great little machines for all kinds of projects. π
This guide documents everything we found while stripping one down to bare metal.
| Guide | What's inside |
|---|---|
| π Device Specs | Full hardware & software specs of the Sunmi V2 |
| π§Ή Debloat Guide | Every package explained β what to kill, what to keep, and why |
| π¨οΈ Thermal Printer | How to actually use the printer β working APIs, bitmap rules, pitfalls |
| β‘ Performance Tweaks | ADB commands to make it snappy |
| π« Limitations | What you CAN'T do (locked bootloader, no root, etc.) |
| π‘ Project Ideas | Cool stuff to build with this device |
| π ADB Lock Bypass | Sunmi ADB OTP lock β what it is, who's affected, how to avoid it |
Got a Sunmi V2 and just want it clean? Run this:
# Connect via USB
adb devices
# Nuclear debloat β removes everything non-essential
# (see debloat.md for the full breakdown)
for pkg in com.baidu.map.location com.google.android.inputmethod.pinyin com.sunmi.input.pinyin com.mediatek.bluetooth.dtt com.mediatek.emcamera com.mediatek.engineermode com.mediatek.fancycolor com.mediatek.galleryfeature.stereo.segment.background com.mediatek.galleryfeature.stereo.segment.copypaste com.mediatek.lbs.em2.ui com.mediatek.mdmconfig com.mediatek.mdmlsample com.mediatek.mtklogger com.mediatek.omacp com.mediatek.photopicker com.mediatek.refocus com.mediatek.sensorhub.ui com.mediatek.ygps com.mediatek.calendarimporter com.mediatek.batterywarning com.sunmi.agreement com.sunmi.gallery com.sunmi.instruction com.sunmi.monitor com.sunmi.ota com.sunmi.printer.firmware com.sunmi.remotecontrol.pro com.sunmi.sunmiqrcodescanner com.sunmi.toolbox com.sunmi.toolbox.log.v2 com.sunmi.wallpaper com.sunmi.dataService com.sunmi.newuserfeedback com.sunmi.payment com.sunmi.payment.mobile com.sunmi.welcome com.sunmi.usercenter com.sunmi.documentsui com.android.bookmarkprovider com.android.dreams.basic com.android.egg com.android.emergency com.android.stk com.android.wallpaper.livepicker com.android.wallpaperbackup com.android.wallpapercropper com.android.wallpaperpicker com.android.providers.calendar com.svox.pico com.huaqin.factoryservice com.huaqin.smartbatterymode com.yha.factory woyou.market com.woyou.launcher com.ekesoo.mtfont com.lovelyfont.defcontainer com.google.android.apps.maps com.google.android.gm com.android.mms com.android.soundrecorder com.mediatek.dataprotection com.mediatek.fwk.plugin com.android.captiveportallogin com.android.cts.ctsshim com.android.cts.priv.ctsshim com.android.printservice.recommendation com.android.printspooler com.android.providers.applications com.android.providers.blockednumber com.android.onetimeinitializer com.android.managedprovisioning com.android.htmlviewer com.android.dialer com.android.contacts com.android.mtp com.android.vpndialogs com.android.sharedstoragebackup com.android.statementservice com.android.storagemanager com.android.backupconfirm com.google.android.feedback com.google.android.partnersetup com.google.android.gsf.login com.google.android.apps.calculator com.google.android.configupdater com.google.android.backuptransport org.simalliance.openmobileapi.service org.simalliance.openmobileapi.uicc1terminal org.simalliance.openmobileapi.uicc2terminal com.mtk.telephony; do
adb shell pm uninstall -k --user 0 "$pkg"
done
# Performance tweaks
adb shell settings put global window_animation_scale 0
adb shell settings put global transition_animation_scale 0
adb shell settings put global animator_duration_scale 0
adb shell settings put global wifi_sleep_policy 2
# Enable wireless ADB (optional β run while USB connected)
adb tcpip 5555π Read the individual guides below for the full story.
Yes! Everything is reversible.
# Re-enable a single package
adb shell cmd package install-existing com.whatever.package
# Full factory reset (restores EVERYTHING)
adb shell am broadcast -a android.intent.action.MASTER_CLEAR| Metric | Before | After |
|---|---|---|
| π¦ Packages | 139 | 46 |
| π§ RAM Used | 720 MB | 487 MB |
| π RAM Free | 273 MB | 338 MB |
| π Speed | Sluggish | Snappy |
| ποΈ Bloat | Deliveroo, Baidu, MTK debug tools... | Gone |
Made with π€ by Ziad
Tested on Sunmi V2 (T5930), ROM v2.12.1, Android 7.1.1