Context
After the initial boot-debloat script (Hack #26) disabled 51+ packages, monitoring dumpsys meminfo revealed three more packages quietly running in the background:
com.android.chrome— full Chromium browser (45 MB RSS). The Moto E2 came with Chrome pre-installed as a system app. Even though it was never opened, Android pre-loads parts of it for WebView renderingcom.android.defcontainer— the package installer helper (35 MB). Used by the system to verify and install APK files. Not needed unless actively installing appscom.qualcomm.qcrilmsgtunnel— Qualcomm's Radio Interface Layer message tunnel (35 MB). Handles carrier text messages. Useless on a WiFi-only server
Implementation
Add the three packages to the boot-debloat script:
# Additional packages added to /data/local/tmp/boot-debloat.sh:
# (requires Dirty COW root — see Hack #34)
pm disable com.android.chrome
pm disable com.android.defcontainer
pm disable com.qualcomm.qcrilmsgtunnelTo run the updated script:
# Apply after reboot:
adb shell sh /data/local/tmp/boot-debloat.shTo temporarily re-enable defcontainer for APK installs:
# Before installing an APK:
adb shell pm enable com.android.defcontainer
# Install the APK:
adb install my-app.apk
# Disable again after install:
adb shell pm disable com.android.defcontainerVerification
# Verify all three are disabled:
adb shell pm list packages -d | grep -E "chrome|defcontainer|qcrilmsgtunnel"
# Expected:
# package:com.android.chrome
# package:com.android.defcontainer
# package:com.qualcomm.qcrilmsgtunnel
# Check total disabled count:
adb shell pm list packages -d | wc -l
# Expected: 54+
# Check RAM savings:
adb shell dumpsys meminfo | grep "Total RAM"
# Compare used RAM before and afterGotchas
- Disabling
com.android.defcontainercompletely blocksadb install— the system can't verify APK signatures without it. Always re-enable before installing any APK, then disable again after - Chrome is the system WebView provider on some Android 6 devices. If any app uses WebView, it may crash. The PocketClaw launcher (Hack #39, #40) uses native Canvas rendering specifically to avoid this dependency
qcrilmsgtunnelis safe to disable if you don't need SMS/MMS functionality. The phone still receives calls on some carriers even with this disabled
Result
| Metric | Before | After |
|---|---|---|
| Disabled packages | 51 | 54+ |
| Background RAM used | ~280 MB | ~180 MB |
| Chrome running | Yes (45 MB) | No |
| defcontainer running | Yes (35 MB) | No |