|
#!/usr/bin/env bash |
|
set -euo pipefail |
|
# NOT TESTED!!! |
|
# LG K52 (Android 12) – privacy/OTA block + safe debloat |
|
# Requires: ADB authorized (Developer options + USB debugging ON) |
|
|
|
# Helper to run an adb shell cmd and ignore "Unknown package/component" |
|
shx() { adb shell "$@" 2>/dev/null || true; } |
|
|
|
echo "[1/8] Waiting for device…" |
|
adb start-server >/dev/null 2>&1 || true |
|
adb wait-for-device |
|
|
|
echo "[2/8] Disable automatic system updates + set provisioned flags" |
|
shx settings put global ota_disable_automatic_update 1 |
|
shx settings put global device_provisioned 1 |
|
shx settings put secure user_setup_complete 1 |
|
|
|
echo "[3/8] Block LG firmware OTA (FOTA) services" |
|
# Some may already be disabled; commands are idempotent |
|
for pkg in \ |
|
com.lge.lgdmsclient \ |
|
com.lge.updatecenter \ |
|
com.lge.systemservice \ |
|
com.lge.lgfota.permission \ |
|
com.android.LGSetupWizard |
|
do |
|
shx pm disable-user --user 0 "$pkg" |
|
done |
|
|
|
echo "[4/8] Minimize Google ‘system updates’ channels (best effort without root)" |
|
# GMS components are signature-protected; we still add safe constraints |
|
# Background/run + wakelocks off for Feedback + GMS where allowed |
|
shx appops set com.google.android.feedback RUN_ANY_IN_BACKGROUND ignore |
|
shx appops set com.google.android.feedback POST_NOTIFICATION ignore |
|
shx am force-stop com.google.android.feedback |
|
# Optional nudges for GMS (safe; no-break): |
|
shx cmd appops set com.google.android.gms RUN_ANY_IN_BACKGROUND ignore |
|
shx cmd appops set com.google.android.gms WAKE_LOCK ignore |
|
|
|
echo "[5/8] Disable telemetry / analytics (LG & Google)" |
|
for pkg in \ |
|
com.lge.ia.task.smartcare \ |
|
com.lge.gdec.client \ |
|
com.google.mainline.telemetry \ |
|
com.google.android.feedback |
|
do |
|
shx pm disable-user --user 0 "$pkg" |
|
done |
|
|
|
# System-wide telemetry/usage flags (no-ops if missing on this ROM) |
|
shx settings put global usage_reporting_enabled 0 |
|
shx settings put global upload_enabled 0 |
|
shx settings put global analytics_service_enabled 0 |
|
shx settings put global stats_collection 0 |
|
|
|
echo "[6/8] Debloat: remove visible Google/LG apps that aren’t essential" |
|
# Uninstall for the current user only (safe). Add/remove lines to taste. |
|
debloat_pkgs=( |
|
# Google apps |
|
com.android.chrome |
|
com.google.android.youtube |
|
com.google.android.apps.youtube.music |
|
com.google.android.apps.docs |
|
com.google.android.apps.docs.editors.docs |
|
com.google.android.apps.docs.editors.sheets |
|
com.google.android.apps.docs.editors.slides |
|
com.google.android.apps.photos |
|
com.google.android.apps.maps |
|
com.google.android.calendar |
|
com.google.android.apps.tachyon # Duo/Meet |
|
com.google.android.apps.googleassistant |
|
com.google.android.googlequicksearchbox |
|
com.google.android.apps.magazines # News |
|
com.google.android.apps.podcasts |
|
com.google.android.apps.nbu.files # Files by Google |
|
com.google.android.apps.walletnfcrel # Wallet |
|
com.android.vending # Play Store (since you’ll use F-Droid) |
|
# LG extras |
|
com.lge.gametools |
|
com.lge.gamelauncher |
|
com.lge.smartsharepush |
|
com.lge.qmemoplus |
|
com.lge.fmradio |
|
com.lge.hifirecorder |
|
com.lge.music |
|
com.lge.videoplayer |
|
com.lge.videostudio |
|
com.lge.gallery.studio |
|
com.lge.gallery.contentservice |
|
com.lge.lgcontentsetting |
|
com.lge.wallpaperpicker |
|
com.lge.themeservice |
|
com.lge.launcher2.theme.optimus |
|
com.lge.sizechangable.weather |
|
com.lge.sizechangable.weather.platform |
|
com.lge.sizechangable.weather.theme.optimus |
|
# Partners / bloat |
|
com.facebook.katana |
|
com.facebook.appmanager |
|
com.facebook.system |
|
com.facebook.services |
|
com.booking |
|
com.gameloft.android.GloftANPH |
|
com.gameloft.android.GloftLBPH |
|
com.gameloft.android.GloftMBCF |
|
com.gameloft.android.ANMP.GloftDOHM |
|
com.gameloft.android.ANMP.GloftGHHM |
|
) |
|
|
|
for pkg in "${debloat_pkgs[@]}"; do |
|
shx pm uninstall --user 0 "$pkg" |
|
done |
|
|
|
echo "[7/8] Clean up launcher cache so removed icons vanish" |
|
# If you use LG launcher; harmless if not present. |
|
shx am force-stop com.lge.launcher3 |
|
shx pm clear com.lge.launcher3 |
|
|
|
echo "[8/8] Verification" |
|
echo "Disabled packages:" |
|
adb shell pm list packages -d | sed 's/^/ /' |
|
echo |
|
echo "Play Store present? (should be empty if removed)" |
|
adb shell pm list packages | grep -F com.android.vending || echo " Play Store removed" |
|
echo |
|
echo "OTA auto-update flag:" |
|
adb shell settings get global ota_disable_automatic_update || true |
|
|
|
echo |
|
echo "Done. Reboot recommended." |