guide #027

Extended Boot Debloat (+3 Packages)

Problem
Chrome (45 MB), defcontainer (35 MB), qcrilmsgtunnel (35 MB) still running after initial debloat.

Solution
Added 3 more packages to boot-debloat.sh. Total 54+ disabled. ~100 MB additional savings.

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 rendering
  • com.android.defcontainer — the package installer helper (35 MB). Used by the system to verify and install APK files. Not needed unless actively installing apps
  • com.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.qcrilmsgtunnel

To run the updated script:

# Apply after reboot:
adb shell sh /data/local/tmp/boot-debloat.sh

To 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.defcontainer

Verification

# 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 after

Gotchas

  • Disabling com.android.defcontainer completely blocks adb 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
  • qcrilmsgtunnel is safe to disable if you don't need SMS/MMS functionality. The phone still receives calls on some carriers even with this disabled

Result

MetricBeforeAfter
Disabled packages5154+
Background RAM used~280 MB~180 MB
Chrome runningYes (45 MB)No
defcontainer runningYes (35 MB)No
Continue reading
guide
Pocket AI complete guide
Running self-hosted AI on portable hardware
guide
Edge AI hardware buyer's guide 2026
Pi 5 vs Mini PC vs Mac Mini
report
Self-hosted AI landscape 2026
Quarterly state of the ecosystem
section
Pocket AI hardware hub
All portable hosts reviewed
section
Agent tracker
Live stats on every agent
newsletter
Thursday digest
Weekly summary in your inbox