Compare commits

...

42 commits
v2.6 ... master

Author SHA1 Message Date
w1nst0n 316b01b5ee
This project is no longer maintained! 2021-10-07 22:09:40 +02:00
w1nst0n 0b98f69fde
Add EOL warning 2021-09-09 18:05:04 +02:00
Ryan Fransen-Pruden 6c6b63e33c Update Carriers.sh (I narrowed down hotspot issue to com.verizon.mips.services) 2021-07-29 20:46:55 +00:00
hakerdefo bfdbf13442 Update AOSP.sh with some information related to "com.android.wallpaper.livepicker". 2021-05-25 17:17:34 +00:00
w1nst0n 480b292bd9
Add "com.google.mainline.telemetry" (address #27) 2021-04-04 23:52:45 +02:00
w1nst0n f4d4744398
New package + description update (adress #71, #64) 2021-04-04 23:45:32 +02:00
w1nst0n 51e22ac254
Support for poco phones (xiaomi sub-brand) 2021-03-30 19:11:57 +02:00
w1nst0n 7ded3301e4 New Version (2.9.1) 2021-03-05 23:49:40 +01:00
w1nst0n 76a3035fa2 UX improvement + bugfixes (includes #78) 2021-03-05 23:49:26 +01:00
w1nst0n f09dfe8fe7 Improve documentation 2021-03-05 23:24:28 +01:00
w1nst0n ff66e774b2 New packages 2021-03-05 22:55:21 +01:00
w1nst0n 6c4e819275 Add zip as a dependency + Bash doesn't need to be the default shell on MacOS 2021-03-03 20:02:22 +01:00
Max Overmeyer ff05dd35b2 Added some more Samsung apps (Galaxy A9 2018, Android 10, Europe, not branded) 2021-02-24 20:12:14 +00:00
Waryle W 6c6798fd04 Update Samsung.sh - fix Easy One Hand mode description 2021-02-23 14:13:28 +00:00
Elges István 8e35a1d104 Updates on some Xiaomi Advanced Debloat options 2021-02-22 21:16:00 +00:00
w1nst0n e410b3d9fe Better bash version check (#60) 2021-02-22 20:57:20 +00:00
Max Overmeyer 39d6ab29d6 Update Samsung.sh, typo in package name 2021-02-22 20:06:47 +00:00
w1nst0n 38d216688f New Version (v2.9) 2021-01-30 01:54:31 +01:00
w1nst0n d0d73a2c2d Systemless debloat support for all android version 2021-01-30 01:54:26 +01:00
w1nst0n 4a6ae80380 Add new packages (cherry pick !10) 2021-01-30 01:54:02 +01:00
w1nst0n 5573f5c701 Adress #49 + #51 2021-01-27 22:55:59 +01:00
w1nst0n 53357d76dc Partial Android 10 support + fix #48 2021-01-27 22:27:43 +01:00
w1nst0n 3d24cc2f49 Fix parsing issue (package / path) 2021-01-19 22:16:48 +01:00
w1nst0n 9e40855840 Hotfix (v2.8.4) 2021-01-17 04:48:30 +01:00
w1nst0n 9b62302d61 Hotfix (v2.8.3) 2021-01-12 23:04:19 +01:00
w1nst0n e8024ffd60 Fix bad variable name (#45) 2021-01-12 23:04:05 +01:00
w1nst0n 8d5ce9f690 Hotfix (v2.8.2) 2021-01-11 18:33:03 +01:00
w1nst0n c7c298db05 Hotfix (v2.8.1) 2021-01-11 01:33:40 +01:00
w1nst0n 28bd19b3bf Rework of the broken flashable zip generation function 2021-01-11 01:33:31 +01:00
w1nst0n 0f4c010d53 Update README for v2.8 + list another workaround for Windows users 2021-01-10 22:31:38 +01:00
w1nst0n e5634dd4e6 META-INF for the flashable zip 2021-01-10 21:13:14 +01:00
w1nst0n 9283b7bbab New Version (v2.8) 2021-01-10 21:06:48 +01:00
w1nst0n 754bd245ae v2.8: ROOT support + new features + better UI/UX + bugfixes 2021-01-10 19:59:33 +01:00
w1nst0n a71dc2104c Better title for DO NOT REMOVE section and safer default selection 2021-01-10 19:55:41 +01:00
w1nst0n 1add3b24c2 Do not remove com.google.android.ext.services on Android 11 devices (#43) 2021-01-10 03:13:41 +01:00
w1nst0n 511b6c41bd Remove a lot of packages (now in official lists) 2021-01-03 23:19:52 +01:00
w1nst0n 6dadaea7da Add new packages (+ new list: mediatek) 2021-01-03 23:17:44 +01:00
w1nst0n 2571cfaf53 New packages, documentation improvements & default selection changes 2021-01-03 23:16:29 +01:00
Marius Spangenberger 7efaad59ae add bloated packages for huawei devices 2020-12-01 13:44:08 +01:00
w1nst0n 3937fe31db Bump script version number to v2.7 2020-10-20 22:00:21 +02:00
w1nst0n 8b93202ba6 New Version (v2.7) 2020-10-04 23:50:57 +02:00
w1nst0n 376924cba9 Fixed #31, #32 and added feature #30 2020-10-04 23:25:48 +02:00
16 changed files with 1835 additions and 466 deletions

View file

@ -1,3 +1,132 @@
# New Version (v2.9.1)
## New packages added
- **AOSP** : 1
- **Asus** : 2
- **Google** : 1
- **Carriers** : 3 (AT&T)
- **OnePlus**: 1
- **Pending**: 24
- **Samsung** : 9
- **Xiaomi** : 1
## Bugfixes
- Bash version check not working as expected (#60)
- Debloating/restoring not working if the script was run from the recovery
- Package name typo (!3) (thanks @maximilian.overmeyer!)
- "pm: command not found" when disabling packages (Android 7 [Nougat] and below) (#78)
## Miscellaneous
- Documentation improvement/update for many apps.
- UI/UX improvement for the recovery version of the script
# New Version (v2.9)
**Note:** The `debloat_script.sh` is now in maintenance mode and won't receive any more features. The focus is on the developement of a GUI.
### Magisk module and root support for Android 10+
Root users can now systemlessly debloat their device. The script will create a flashable Magisk zip you'll need to flash from **TWRP** or **Magisk Manager** (recommended). Once installed the module will, on boot, replace the APKs folders with an empty folder (only containing a `.replace` file).
Systemless debloat is the only solution for Android 10+ users because *system* can't be mounted in read-write anymore.
## New packages added
- **Samsung** : 5 (thanks @j0taz)
## Bugfixes
- **Debloated packages (non root) reappear after a reboot (#48)**
- Bad apks names when using root features (parsing issue)
- Connection preferences settings won't open (AOSP list, Pixel 4a / Android 11) (#49)
- Impossible to use a non-root feature after having used a root feature
# Miscellaneous
- App data is now cleared (`pm clear $package`) before root debloat
# Hotfix (v2.8.4)
- Error when remounting `/system` as read-only after a restore/debloat action (#46)
- Package search feature now displays APK path along with the package name
- The APK was not backed-up when you use the manual root debloat feature (`1 - debloat a package`)
- `deleted_apks.txt` not found
- Mounting error on Android 9+ (only fixed for Android 9)
# IMPORTANT NOTE
**Root features do currently not work for Android 10+**. Android 10 has introduced a new dynamic partitioning system
which, in short, prevent to easily mount system filesystem in read-write (use of EXT4 dedup filesystem, which is not writable).
Fortunately, the awesome @topjohnwu (developer of Magisk) found a solution. I'll try to update my script to use the Magisk magic.
# Hotfix (v2.8.3)
- Fix a bug (bad variable name) which basically broke all the non root debloat/restore features.
# Hotfix (v2.8.2)
- Flashable debloat zip not removing anything (oversight on my part after debugging for the first hotfix)
# Hotfix (v2.8.1)
- Flashable zip was broken. I reworked all the generation logic. It is much simpler and correctly works now.
- The script will now force a backup of the apks before generating a flashable zip.
# New Version (v2.8)
Happy new year! :star2:
## Notable changes
- Apps are now removed for all users (not only `user 0`) (see #29)
- `debloated_packages.txt` logfile will no longer have duplicates.
- New list added: `Mediatek` a chipset manufacturer (like Qualcomm) mostly providing chinese phones.
- Documentation improvement/update for many apps.
- General improvement of UI/UX and better error handling.
### Root Support
If your device is rooted you can now use this script to physically remove apks. Ironically this method is actually safer because you can restore the apks from TWRP recovery in case of a bootloop.
- Root debloat: use the lists but remove the apks (`rm -rf`) instead of using the package manager (`pm`). All apks are automatically backed-up in `apks_backup` before being deleted.
- APKs restore: you can use the script, even when in TWRP recovery, to restore your apks
- Flashable zip: Generate a flashable zip
## New packages added
- **AOSP** : 0
- **Google** : 0
- **Huawei** : 25
- **Miscellaneous** : 0
- **OnePlus**: 1
- **Samsung** : 13
- **Xiaomi** : 1
## Pending --> Official lists
- **Tcl** : 2
- **AOSP** : 16
- **Google** : 16
- **Nokia** : 1
- **Samsung** : 25
- **Huawei** : 7
- **Xiaomi** : 49
- **Mediatek** : 13
- **Miscellaneous** : 0
## Bugfixes
- Renamed confusing variable name (OLDER_THAN_ANDROID_7_1) to OLDER_THAN_ANDROID_8.
- Fixed broken bash version check
- Bootloop with Google debloat list on Android 11 (and higher) (#43)
# New Version (v2.7)
Didn't you notice the last release never found packages to debloat/restore? Well... this works now. It seems all my changes wasn't pushed on the repo.
Altough this release contains almost exclusively bugfixes, it's is not a hotfix as there's also a new feature.
NB: I currently don't have a lot free time so the next *real* release will be in quite some time.
## Notable changes
- New menu entry (`7 - External list`) which enables you to use your own debloat list (#30)
## Bugfixes
- Nothing to debloat message when there is stuff to debloat.
- Compatibility issue with BSD version of `sed` MacOS which prevented the script to generate the debloat lists (#32)
- Backup integrity check always failing (#31)
- Script failed when `Packages search` feature didn't find any package
# New Release (v2.6)
:fallen_leaf: :fallen_leaf: :fallen_leaf: :fallen_leaf: :fallen_leaf: :fallen_leaf:

View file

@ -1,33 +1,40 @@
# This project is no longer maintained!
The whole project has been rewritten in Rust. The Universal Android Debloat is now a real software with a cross-platform GUI. It is still in a early stage of developpement but most features are there. Please do not open new merge requests and issues on this repo.<br>
===> [The new Universal Android Debloat](https://github.com/0x192/universal-android-debloater)
# Universal Android Debloater
**DISCLAIMER**: Use this script at your own risk. I am not responsible for anything that could happen to your phone.
**DISCLAIMER**: Use this script at your own risk. I am not responsible for anything that could happen to your phone.
## Summary
I try to maintain a universal tool which removes bloatwares on any Android phones by using ADB.
The main goal is to improve battery performance and privacy by removing unnecessary and obscure system apps. This can also contribute to improve security by reducing [the attack surface](https://en.wikipedia.org/wiki/Attack_surface). The script has a menu that lets you choose what debloat list you want to use. I strongly encourage you to take a look at the lists because the default selection may not suit you. All packages are as well documented as possible in order to provide a better understanding of what you can delete or not.
This script *should* be safe with the default selection. The worse thing which could happen is preventing an essential system process to be loaded during boot causing then an unfortunate bootloop. After about 5 failed system boots, the phone will automatically reboot in recovery mode and you'll have to perform a FACTORY RESET. So make a backup!
This script *should* be safe with the default selection. The worse thing which could happen is preventing an essential system process to be loaded during boot causing then an unfortunate bootloop. If you used the non-root solution, after about 5 failed system boots, the phone will automatically reboot in recovery mode and you'll have to perform a FACTORY RESET. So make a backup!
If you have a rooted device you can also physically delete the apks. Ironically this solution is safer because the script saves the apks before their removal. In case of bootloop you just need to run the script from a recovery with ADB support (e.g TWRP) and restore them.
In any case, you can NOT brick your device with this script! That's the main thing, right?
## Features
* [X] Quick search among all the packages of your phone
* [X] Quick search among all the packages of an android device
* [X] Uninstallation of system/user packages (manually or with the debloat lists)
* [X] Reinstallation of system packages (manually or with the debloat lists)
* [X] ADB backup/restore (not really reliable, see the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ))
* [X] Device brand detection and auto-selection of the appropriate manufacturer debloat list
* [X] Logs in `debloated_packages.txt` and `remaining_packages.txt`.
* [X] Logging:`debloated_packages.txt`, `remaining_packages.txt`, `deleted_apks.txt` (for root users)
* [X] Root support
* [ ] Installation of alternative open-source apps replacing stock apps (list in the WIKI section) (WIP)
NB : It is NOT a real uninstallation for system apps (see the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ))
NB : The non-root method is NOT a real uninstallation for system apps (see the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ))
## Universal debloat lists
* [X] GFAM (Google/Facebook/Amazon/Microsoft)
* [X] AOSP
* [X] Manufacturers (OEM)
* [X] Mobile carriers
* [X] Qualcomm / Miscellaneous
* [X] Qualcomm / Mediatek / Miscellaneous
## Manufacturers debloat lists
* [ ] Archos
@ -49,13 +56,13 @@ NB : It is NOT a real uninstallation for system apps (see the [FAQ](https://gitl
* [X] Xiaomi
* [ ] ZTE
## Mobile carriers debloat lists
|France | USA |Germany |
|:---------------:|:--------:|:----------:|
| Orange | T-Mobile | Telekom |
| SFR | Verizon | |
| Free | Sprint | |
| Bouygues / Sosh | AT&T | |
## Mobile carriers debloat lists
| Country | Carriers |
|-----------------|-----------------------------------|
| France | Orange, SFR, Free, Bouyges/Sosh |
| USA | T-Mobile, Verizon, Sprint, AT&T |
| Germany | Telekom |
## How to use it
- **Read the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ)!**
@ -69,17 +76,17 @@ NB : It is NOT a real uninstallation for system apps (see the [FAQ](https://gitl
- Install *Android platform tools* and *qpdf* on your PC :
Debian Base :
Debian Base:
```bash
$ sudo apt install android-sdk-platform-tools qpdf
$ sudo apt install android-sdk-platform-tools qpdf zip
```
Arch-Linux Base :
Arch-Linux Base:
```bash
$ sudo pacman -S android-tools qpdf
$ sudo pacman -S android-tools qpdf zip
```
Fedora :
Red Hat Base:
```bash
$ sudo yum install android-tools qpdf
$ sudo yum install android-tools qpdf zip
```
</details>
</p>
@ -96,18 +103,6 @@ You will also need to upgrade bash because Apple ships a very old bash version (
```bash
$ brew install android-platform-tools qpdf bash
```
You have to make the new bash version your default :
```bash
$ sudo echo "/usr/local/bin/bash" >> /etc/shells
$ chsh -s /usr/local/bin/bash
```
Check if it works :
```bash
$ echo $BASH_VERSION
```
</details>
</p>
@ -115,10 +110,21 @@ $ echo $BASH_VERSION
<details>
<summary>WINDOWS</summary>
Windows can't natively run bash script. Choose a workaround:
## Method 1: Live Linux USB
Create a Linux Live USB. Boot your computer on it and follow the instructions of the `LINUX` section. If you are a new to Linux, this will be a good opportunity to discover this wonderful OS. I recommend Linux Mint: [Instructions](https://itsfoss.com/install-linux-mint/)
**Note:** Just in case, I recall that you don't need to install Linux on your computer. You can do whatever your want direclty on the Live USB.
## Method 2: WSL (W10 only)
This method consists of installing WSL, a compatibility layer for running Linux binary executables natively on Windows 10.
For now, there is no USB support in the WSL. This means you need to install both Windows and Linux platform-tools and force the use of Windows adb server.
- Download [android platform tools](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) and unzip it somewhere. [Add the folder to your PATH](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/).
- [Install USB drivers of your device](https://developer.android.com/studio/run/oem-usb#Drivers)
- Check your device is detected :
- Check your device is detected:
```batch
> adb devices
```
@ -127,7 +133,7 @@ For now, there is no USB support in the WSL. This means you need to install both
- Install *Android platform tools* and *qpdf* from the Debian/Ubuntu shell
```bash
$ sudo apt update && sudo apt upgrade
$ sudo apt install android-sdk-platform-tools qpdf
$ sudo apt install android-sdk-platform-tools qpdf zip
```
- Check the version of ADB on Linux & Windows
```bash
@ -158,14 +164,14 @@ Note: You can access your Windows files under `/mnt/c/`
</p>
- Download [the lastest release of Android Universal Debloater](https://gitlab.com/W1nst0n/universal-android-debloater/-/releases)
- Download [the lastest release of Android Universal Debloater](https://gitlab.com/W1nst0n/universal-android-debloater/-/releases).
- Browse through the debloat lists to be sure the default selection suits you.
- Run `debloat_script.sh` from a Unix terminal
- Run `debloat_script.sh` from a Unix terminal.
```bash
$ bash debloat_script.sh
```
**NOTE:** Chinese phones users may need to use the AOSP list for removing some stock apps because those chinese manufacturers (especially Xiaomi and Huawei) have been using the name of AOSP packages for their own (modified & closed-source) app.
**NOTE:** Chinese phones users may need to use the AOSP list for removing some stock apps because those chinese manufacturers (especially Xiaomi and Huawei) have been using the name of AOSP packages for their own (modified & closed-source) apps.
**IMPORTANT NOTE:** You will have to run this script whenever your OEM push an update to your phone as some *uninstalled* system apps could be reinstalled.

688
debloat_script.sh Executable file → Normal file
View file

@ -1,13 +1,14 @@
#!/usr/bin/env bash
# BASH 4.3 or newer is needed ! (use of local -n)
if (( BASH_VERSINFO < 5 )); then printf "\n%s\n\n" "Please upgrade to a bash version >= 4.3" && exit 1; fi
# BASH 4.4 or newer is needed!
if (( "${BASH_VERSINFO[0]}" < 4 || ("${BASH_VERSINFO[0]}" == 4 && "${BASH_VERSINFO[1]}" < 4) )); then
printf "\n%s\n\n" "Please upgrade to a bash version >= 4.4" && exit 1;
fi
if ! adb get-state &>/dev/null; then printf "\n%s\n\n" "Your phone is not detected by ADB." && exit 1; fi
set -euo pipefail # Safer bash script
set -Eeuo pipefail # Safer bash script
# Colors used for printing
readonly BRED='\033[1;31m' # Bold + Red
readonly BBLUE='\033[0;34m' # Bold + Blue
readonly BGREEN='\033[1;32m'
@ -17,11 +18,11 @@ readonly Bold=$(tput bold)
readonly nBold=$(tput sgr0)
# Trap error
trap 'catch' EXIT
trap 'catch $LINENO' ERR
catch() {
(( $? == 0 )) && exit 0;
printf "\n\n${BRED}%s\n" "[EXIT TRAP] Hum... something is wrong."
printf "\n\n${BRED}%s\n" "[EXIT TRAP] Hum... something is wrong. Error on line $1"
printf "\n%s\n" "If you think this is a bug. Please report it :)"
printf "%s${NC}\n\n" "==> https://gitlab.com/W1nst0n/universal-android-debloater/-/issues"
}
@ -34,43 +35,50 @@ done
############################################### MAIN SCRIPT ##########################################################
main() {
readonly VERSION="v2.6 (September 18th 2020)"
readonly VERSION="v2.9.2 (March 30th 2021)"
readonly PAD=$(((48-${#VERSION})/2))
readonly BRAND="$(get_brand)"
readonly BRAND_SUPPORTED=$( declare -p "$BRAND" &>/dev/null && echo "1" || echo "0")
# Legacy support
readonly OLDER_THAN_ANDROID_7_1=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') < 26 ))
readonly OLDER_THAN_ANDROID_8=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') < 26 ))
readonly OLDER_THAN_ANDROID_5=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') < 21 ))
readonly OPTION_NEEDED=$( ((OLDER_THAN_ANDROID_5)) && echo "" || echo "--user 0" )
readonly NEWER_THAN_ANDROID_9=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') >= 29 ))
declare -a CUSTOM_LIST=()
readonly SYSTEM_MOUNT_POINT=$(adb shell getprop ro.build.system_root_image | grep "true" && echo "/system_root" || echo "/system")
FORCE_UNINSTALL=0
RESTORE=0
declare -a CUSTOM_LIST=() # Trimed APK/package list only containing packages/APK on the device (populated by generate_custom_list())
declare -a EXTERNAL_LIST=() # APK/package list provided by the user (populated by import_external_list())
declare -a USERS=() # User list (populated by debloat_or_restore())
declare -ra LISTS=(us_carriers french_carrier german_carriers "$BRAND" google facebook amazon microsoft \
qualcomm mediatek misc aosp pending EXTERNAL_LIST)
declare -i FORCE_UNINSTALL=0
declare -i RESTORE=0
declare -i ROOT=0
clear
echo " ================================================"
echo " # #"
echo " # UNIVERSAL ANDROID DEBLOAT SCRIPT #"
echo " # #"
printf " %-${PAD}s${BRED}%s${NC}%${PAD}s\n" "#" "${VERSION}" "#"
echo " # #"
echo " ================================================"
echo
printf "${Bold}%s\n\n" "Please carefully read the FAQ before using this script!"
printf "%s${nBold} " "Do you want to do an ADB backup ? [Y/N]"
printf "\n${BORANGE}%s\n" "================================================"
printf "%s\n" "# #"
printf "%-8s${NC}%s${BORANGE}%8s\n" "#" "UNIVERSAL ANDROID DEBLOAT SCRIPT" "#"
printf "%s\n" "# #"
printf "%-${PAD}s${BRED}%s${BORANGE}%${PAD}s\n" "#" "${VERSION}" "#"
printf "%s\n" "# #"
printf "%s${NC}\n\n" "================================================"
printf "${Bold}%s\n\n" "Please carefully read the FAQ before using this script!"
if [[ $(adb get-state) = "recovery" ]]; then uad_recovery_mode || exit; fi
printf "%s${nBold} " "Do you want to do an ADB backup ? [Y/N]"
read -r
if [[ $REPLY =~ [Yy]+[Ee]*[Ss]* ]]; then backup; fi
if (( OLDER_THAN_ANDROID_7_1 )); then
if (( OLDER_THAN_ANDROID_8 )); then
clear
printf "\n${BRED}%s " "WARNING : Your android version is too old (< 8.0)."
printf "%s${NC}\n\n" "Uninstalled packages can't be restored."
printf "%s" "The script will force-disable the apps instead of uninstalling them"
printf "%s" "The script will force-disable the apps instead of uninstalling them "
printf "%s\n\n" "so that you can restore them if needed"
printf "%s " "If you still want to force-uninstall the apps, type '1' ('0' otherwise):"
@ -78,20 +86,22 @@ main() {
fi
while true; do
adb shell 'pm list packages -s' | sed 's/package://g' > remaining_packages.txt &
adb shell 'pm list packages -s' | sed -r 's/package://g' > remaining_packages.txt &
clear
printf "\n${BORANGE}%s\n" "=================== MAIN MENU ==================="
printf "%s\n" "# #"
printf "%-14s${NC}%s${BORANGE}%17s\n" "#" "0 - Package Search" "#"
printf "%-14s${NC}%s${BORANGE}%15s\n" "#" "1 - Restore a backup" "#"
printf "%-14s${NC}%s${BORANGE}%15s\n" "#" "2 - Restore packages" "#"
printf "%-14s${NC}%s${BORANGE}%15s\n" "#" "3 - Debloat packages" "#"
printf "%s\n" "# #"
printf "%-14s${NC}%s${BORANGE}%6s\n" "#" "X - Exit and reboot the phone" "#"
printf "%s\n" "# #"
printf "%s${NC}\n\n" "==================================================="
clear -x
printf "\n${BORANGE}%s\n" "================== MAIN MENU =================="
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%16s\n" "#" "0 - Packages search" "#"
printf "%-12s${NC}%s${BORANGE}%15s\n" "#" "1 - Restore a backup" "#"
printf "%-12s${NC}%s${BORANGE}%15s\n" "#" "2 - Restore packages" "#"
printf "%-12s${NC}%s${BORANGE}%15s\n" "#" "3 - Debloat packages" "#"
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%12s\n" "#" "4 - Restore APKs (Root)" "#"
printf "%-12s${NC}%s${BORANGE}%12s\n" "#" "5 - Debloat APKs (Root)" "#"
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%6s\n" "#" "X - Exit and reboot the phone" "#"
printf "%s\n" "# #"
printf "%s${NC}\n\n" "================================================="
printf "${BRED}%s${NC}\n\n" "DON'T FORGET TO REBOOT YOUR PHONE ONCE THE DEBLOAT IS OVER."
@ -101,36 +111,60 @@ main() {
elif [[ $REPLY = 1 ]]; then restore_backup;
elif [[ $REPLY = 2 || $REPLY = 3 ]]; then
clear
elif [[ $REPLY = 2 || $REPLY = 3 || $REPLY = 4 || $REPLY = 5 ]]; then
clear -x
(( !BRAND_SUPPORTED )) && printf "\n${BRED}%s\n" "No $BRAND debloat list found. Feel free to contribute ! :)"
(( !BRAND_SUPPORTED )) && printf "\n${BRED}%s${NC}\n" "No $BRAND debloat list found. Feel free to contribute ! :)"
[[ $REPLY = 2 ]] && { title="RESTORE"; RESTORE=1; } || { title="DEBLOAT"; RESTORE=0; }
case $REPLY in
2) { title="RESTORE"; RESTORE=1; ROOT=0; };;
3) { title="DEBLOAT"; RESTORE=0; ROOT=0; };;
4) { title="RESTORE"; RESTORE=1; ROOT=1; };;
5) { title="DEBLOAT"; RESTORE=0; ROOT=1; };;
esac
printf "\n${BORANGE}%s\n" "==================== $title ===================="
printf "%s\n" "# #"
printf "%-14s${NC}%s${BORANGE}%14s\n" "#" "1 - $title a package" "#" | awk '{print tolower($0)}'
(( BRAND_SUPPORTED )) && printf "#${NC}%10s 2 - ${BRAND} %$((25-${#BRAND}))s ${BORANGE} #\n"
printf "%-14s${NC}%s${BORANGE}%27s\n" "#" "3 - GFAM" "#"
printf "%-14s${NC}%s${BORANGE}%23s\n" "#" "4 - Carriers" "#"
printf "%-14s${NC}%s${BORANGE}%25s\n" "#" "5 - Others" "#"
printf "%-14s${NC}%s${BORANGE}%27s\n" "#" "6 - AOSP" "#"
printf "%s\n" "# #"
printf "%-14s${NC}%s${BORANGE}%15s\n" "#" "0 - Pending list /!\\" "#"
printf "%s\n" "# #"
printf "%s\n${NC}" "==================================================="
if (( ROOT && NEWER_THAN_ANDROID_9 )); then
magisk_module
continue
fi
read -r -p "Your selection (e.g: 2 3 4 5): "
echo
if (( ROOT )); then
printf "\n%s\n" "The script will physically $title the apks from your phone"
printf "%s${BBLUE}%s${NC}%s\n" "Do you prefer to use a " "Magisk " "module for a systemless $title instead? [y/n]"
read -r
if [[ $REPLY =~ [Yy] ]]; then
magisk_module
continue
fi
fi
((!ROOT)) && printf "\n${BORANGE}%s\n" "=================== $title ==================="
(( ROOT )) && printf "\n${BORANGE}%s\n" "================ $title (ROOT) ==============="
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%14s\n" "#" "1 - $title a package" "#" | awk '{print tolower($0)}'
(( BRAND_SUPPORTED )) && printf "#${NC}%7s 2 - ${BRAND} %$((25-${#BRAND}))s ${BORANGE} #\n"
printf "%-12s${NC}%s${BORANGE}%27s\n" "#" "3 - GFAM" "#"
printf "%-12s${NC}%s${BORANGE}%23s\n" "#" "4 - Carriers" "#"
printf "%-12s${NC}%s${BORANGE}%25s\n" "#" "5 - Others" "#"
printf "%-12s${NC}%s${BORANGE}%27s\n" "#" "6 - AOSP" "#"
printf "%-12s${NC}%s${BORANGE}%18s\n" "#" "7 - External list" "#"
(( ROOT && !RESTORE )) && printf "#${NC}%7s 8 - Create a flashable zip${BORANGE}%7s #\n"
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%15s\n" "#" "0 - Pending list /!\\" "#"
printf "%s\n" "# #"
printf "%s\n${NC}\n" "================================================="
read -r -p "Your selection (e.g: 2 3 4 5): "
if [[ "$REPLY" =~ 7 ]]; then import_external_list && debloat_or_restore EXTERNAL_LIST; fi
if [[ "$REPLY" =~ 4 ]]; then lists_selection us_carriers french_carriers german_carriers; fi
if [[ "$REPLY" =~ 3 ]]; then lists_selection google facebook amazon microsoft; fi
if [[ "$REPLY" =~ 1 ]]; then debloat_or_restore; fi
if [[ "$REPLY" =~ 2 ]]; then generate_custom_list "$BRAND" && debloat_or_restore CUSTOM_LIST "$BRAND"; fi
if [[ "$REPLY" =~ 5 ]]; then lists_selection qualcomm misc; fi
if [[ "$REPLY" =~ 6 ]]; then generate_custom_list aosp && debloat_or_restore CUSTOM_LIST aosp; fi
if [[ "$REPLY" =~ 0 ]]; then generate_custom_list pending && debloat_or_restore CUSTOM_LIST pending; fi
if [[ "$REPLY" =~ 2 ]]; then debloat_or_restore "$BRAND"; fi
if [[ "$REPLY" =~ 5 ]]; then lists_selection qualcomm mediatek misc; fi
if [[ "$REPLY" =~ 6 ]]; then debloat_or_restore aosp; fi
if [[ "$REPLY" =~ 8 ]]; then create_flashable_zip; fi
if [[ "$REPLY" =~ 0 ]]; then debloat_or_restore pending; fi
elif [[ "$REPLY" =~ [Xx] ]]; then adb reboot && exit 0;
@ -140,87 +174,453 @@ main() {
############################################ END OF MAIN SCRIPT ######################################################
generate_custom_list(){
[[ -v "$1" ]] && local -n list=$1
import_external_list() {
local path=""
while true; do
printf "\n${BRED}%s${NC}" "Path to the list: "
read -r path
if readarray -t EXTERNAL_LIST < "$path"; then break; fi
done
for i in "${EXTERNAL_LIST[@]}"; do
if [[ $ROOT -eq 1 && $RESTORE -eq 0 && $i =~ ^/.*\.apk$ ]]; then
printf "\n${BRED}%s${NC}\n\n" "Please use a package list, not an APK list"
exit 1
elif [[ $ROOT -eq 0 && ! $i =~ ^[a-z][a-zA-Z0-9_]*(\.[a-zA-Z0-9_]+)+[0-9a-zA-Z_]$ ]]; then
printf "\n${BRED}%s${NC}%s${BRED}%s${NC}%s\n\n" "$i" " is not a package (format is" " com.android.bips" ")"
exit 1
elif [[ $ROOT -eq 1 && $RESTORE -eq 1 && ! $i =~ ^/.*\.apk$ ]]; then
printf "\n${BRED}%s${NC}\n\n" "Please use an APK list"
exit 1
fi
done
}
associate_path_with_package() {
local -n ASSOCIATE="$1"
declare -a PACKAGES=()
readarray -t PACKAGES < <(adb shell 'pm list packages -s -u -f' | sed -r 's/package://g' | sort -i)
for i in "${PACKAGES[@]}"; do
ASSOCIATE["${i##*=}"]="${i%=*}"
done
}
generate_custom_list() {
clear -x
local -n list="$1"
[[ $# -eq 2 ]] && local user_id="$2"
CUSTOM_LIST=()
if (( ROOT )); then
declare -A PACKAGE_AND_PATH=() # PACKAGE_AND_PATH[package]=path/to/apk
declare -a TEMP=()
associate_path_with_package PACKAGE_AND_PATH
readarray -t TEMP < <(comm -12 <(for p in "${list[@]}"; do echo "${p}"; done|sort -i) \
<(for p in "${!PACKAGE_AND_PATH[@]}"; do echo "$p"; done|sort -i))
[[ RESTORE -ne 1 ]] && printf "\n${BGREEN}%s${NC}\n\n" "Clearing app data..."
for p in "${TEMP[@]}"; do
[[ RESTORE -ne 1 ]] && printf "${BBLUE}%s${NC}" "$p --> " && adb shell "pm clear $p"
CUSTOM_LIST+=("${PACKAGE_AND_PATH[$p]}")
done
if [[ $RESTORE -eq 1 ]]; then
if [[ ${#CUSTOM_LIST[@]} -eq 0 ]]; then
readarray -t CUSTOM_LIST <(sort -i deleted_apks.txt)
else
readarray -t CUSTOM_LIST < <(comm -12 <(for p in "${CUSTOM_LIST[@]}"; do echo "${p}"; done|sort -i) \
<(sort -i deleted_apks.txt))
fi
fi
if (( RESTORE == 1 )); then
readarray -t CUSTOM_LIST < <(comm -12 <(for p in "${list[@]}"; do echo "${p}"; done|sort -i) \
<(adb shell 'pm list packages -s -u' | sed -r 's/package://g' | sort -i))
else
readarray -t CUSTOM_LIST < <(comm -12 <(for p in "${list[@]}"; do echo "${p}"; done|sort -i) \
<(sort -i remaining_packages.txt))
if (( RESTORE )); then
readarray -t CUSTOM_LIST < <(comm -12 <(for p in "${list[@]}"; do echo "${p}"; done|sort -i) \
<(adb shell "pm list packages -s -u $user_id" | sed 's/package://g' | sort -i))
else
readarray -t CUSTOM_LIST < <(comm -12 <(for p in "${list[@]}"; do echo "${p}"; done|sort -i) \
<(adb shell "pm list packages -s $user_id" | sed 's/package://g' | sort -i))
fi
fi
return 0
}
debloat_or_restore() {
local action="" # restore or debloat
local output=""
title=$( echo "$title" | tr '[:upper:]' '[:lower:]')
local title=$( echo "$title" | tr '[:upper:]' '[:lower:]')
(( RESTORE )) && action="cmd package install-existing \$package" || action="pm uninstall $OPTION_NEEDED \$package"
(( RESTORE )) && action='cmd package install-existing $package' || action='pm uninstall $user $package'
# Android 7.1 and older can't reinstall packages
if (( OLDER_THAN_ANDROID_7_1 )) && (( !FORCE_UNINSTALL )); then
(( RESTORE )) && action="pm enable \$package" || action="am force-stop \$package \&\& pm disable-user \$package \&\& pm clear \$package"
if (( OLDER_THAN_ANDROID_8 )); then
if (( RESTORE )); then
action='pm enable $package'
elif (( !FORCE_UNINSTALL )); then
action='am force-stop $package && pm disable-user $package && pm clear $package'
fi
fi
# parse user list on the phone
readarray -t USERS < <(adb shell pm list users | grep -o "{[0-9]*" | grep -o "[0-9]*")
clear
clear -x
if [[ $# -gt 0 ]]; then
local list="$1"
local -n list=$1 # list is a nameref. Array is passed by reference.
printf "\n${BORANGE}%s${NC}\n" "==== $list debloat list ===="
printf "\n${BORANGE}%s${NC}\n" "==== $2 debloat list ===="
(( ! ${#CUSTOM_LIST[@]} )) && echo "Nothing to $title :)" && sleep 1 && return 0
if (( ROOT )); then
touch -a deleted_apks.txt
generate_custom_list "$list"
if (( RESTORE )); then restore_apks "$list"; else root_debloat "$list"; fi
return
fi
for package in "${list[@]}"; do
printf "${BRED}%s${NC} " "$package -->"
output=$(eval adb shell "$action") && echo "$output"
if ! [[ "$output" =~ "Failure" ]] && [[ $RESTORE -eq 0 ]]; then echo "$package" >> "debloated_packages.txt"; fi
for u_num in "${USERS[@]}"; do
local user=$( ((OLDER_THAN_ANDROID_5)) && echo "" || echo "--user $u_num" )
generate_custom_list "$list" "$user"
if [[ ${#CUSTOM_LIST[@]} -eq 0 ]]; then
printf "${BBLUE}%s${NC}%s" "[user $u_num]" " Nothing to $title :)" && sleep 1 && continue
fi
for package in "${CUSTOM_LIST[@]}"; do
do_package_action_and_log
done
done
sleep 1
else
printf "\n${BRED}%s${NC}" "Package name to $title : "
read -r package
printf "${BRED}%s${NC}" "$package --> "
output="$(eval adb shell "$action")" || true
echo "$output"
if ! [[ "$output" =~ Failure|Error ]] && (( !RESTORE )); then echo "$package" >> "debloated_packages.txt"; fi
sleep 2
if (( ROOT )); then
touch -a deleted_apks.txt
if (( RESTORE )); then restore_apks; else root_debloat; fi
return
fi
printf "\n${BRED}%s${NC}" "Package name to $title: "
read -r package
for u_num in "${USERS[@]}"; do
local user=$( ((OLDER_THAN_ANDROID_5)) && echo "" || echo "--user $u_num" )
do_package_action_and_log
done
sleep 1
fi
}
lists_selection() {
clear
do_package_action_and_log() {
printf "${BBLUE}%s${BRED}%s${NC}%s" "[user $u_num] " "$package --> "
output="$(eval adb shell "\"$action\"")" && echo "$output"
for ((i=1; i<=$#; i++)); do
echo "$i - ${!i}"
if [[ ! "$output" =~ Failure|Error ]]; then
if [[ $RESTORE -eq 0 ]]; then
grep -qxF "$package" debloated_packages.txt || echo "$package" >> "debloated_packages.txt"
else
grep -qFv "$package" debloated_packages.txt > temp.tmp || touch temp.tmp; mv temp.tmp debloated_packages.txt
fi
fi
}
backup_apks() {
printf "\n%s${BRED}%s${NC}%s\n\n" "Your apks are beeing backed-up in" " apks_backup/" " (in case you mess up)"
local -n apks="$1"
mkdir -p apks_backup
for apk in "${apks[@]}"; do
if ! adb pull "$apk" apks_backup/; then
printf "\n${BRED}%s${NC}%s\n" "$apk" " cannot be found on the phone!"
printf "\n${BRED}%s${NC}\n\n" "APKs backup failed" && exit 1
fi
done
printf "\n${BGREEN}%s${NC}\n\n" "Backup done!"
}
create_flashable_zip() {
clear -x
declare -a selection=()
local UPDATE_BINARY="META-INF/com/google/android/update-binary"
echo
for i in "${!LISTS[@]}"; do
printf "%-2s%s\n" "$i" " - ${LISTS[$i]}"
done
printf "${BRED}%s${NC} " "Your choice (e.g 1 2 3) :"
printf "\n${BRED}%s${NC} " "Your choice (e.g 1 2 3) :"
read -r -a selection
for i in "${selection[@]}"; do
if [[ "${LISTS[$i]}" == EXTERNAL_LIST ]]; then
import_external_list
fi
done
mkdir -p META-INF/com/google/android/
echo "#!/sbin/sh" > "$UPDATE_BINARY"
echo "echo 'ui_print --- Universal Android Debloater ---' > /proc/self/fd/\$2" >> "$UPDATE_BINARY"
echo "mount $SYSTEM_MOUNT_POINT" >> "$UPDATE_BINARY"
declare -i is_empty=1
for list in "${selection[@]}"; do
if (( list > ${#LISTS[@]} )) || (( list < 1 )); then continue; fi
generate_custom_list "${LISTS[$list]}"
backup_apks CUSTOM_LIST
for package in "${CUSTOM_LIST[@]}"; do
echo "rm -rf $package" >> "$UPDATE_BINARY"
done
[[ $is_empty -eq 1 && ${#CUSTOM_LIST[@]} -gt 0 ]] && is_empty=0
done
if [[ $is_empty -eq 1 ]]; then
printf "\n${BRED}%s${NC}\n" "Nothing to debloat!"
rm -rf META-INF/
else
echo "umount $SYSTEM_MOUNT_POINT" >> "$UPDATE_BINARY"
echo "echo 'ui_print ----- ALL DONE -----' > /proc/self/fd/\$2" >> "$UPDATE_BINARY"
zip -rm flashable_zip_UAD_${VERSION%%[[:space:]]*}.zip META-INF/ 1>/dev/null
printf "\n${BGREEN}%s${NC}%s\n" "flashable_zip_UAD_$VERSION.zip" " has been generated."
fi
sleep 2
}
restore_apks() {
declare -a path=()
if [[ $# -eq 1 ]]; then
[[ ${#CUSTOM_LIST[@]} -eq 0 ]] && echo "Nothing to restore" && sleep 1 && return
printf "\n%s${BBLUE}%s${NC}%s${BBLUE}%s${NC}\n\n" "Deleted apks from " "$list" " will be restored from " "apks_backups/"
printf "\n${BRED}%s${NC}\n\n" "Check your phone: Magisk Manager is probably asking you to grand root permissions for ADB"
else
printf "\n%s${BRED}%s${NC}%s" "Android Path of the APK to restore (the APK will be restored from " "apks_backups/" "): "
read -r path
if [[ ! $path =~ ^/.*\.apk$ ]]; then
printf "\n${BRED}%s${NC}%s${BRED}%s${NC}%s\n" "$path" "doesn't look like a valid APK path"
sleep 2 && return 0
fi
CUSTOM_LIST=("$path")
fi
if [[ $NEWER_THAN_ANDROID_9 -eq 1 ]]; then
magisk_module
return
fi
adb shell "su -c \"mount -o rw,remount $SYSTEM_MOUNT_POINT\""
for p in "${CUSTOM_LIST[@]}"; do # $p = path/to/app.apk
local apk=$(echo "$p" | sed -r 's/.*\///g') # app.apk
local dir=$(dirname "$p") # path/to
if adb push "apks_backup/$apk" /sdcard && adb shell "su -c 'mkdir -p \"$dir\"; mv \"/sdcard/$apk\" \"$dir\"; chmod 644 \"$p\"'"; then
grep -Fqv "$p" deleted_apks.txt > temp.tmp || touch temp.tmp; mv temp.tmp deleted_apks.txt
fi
done
adb shell "su -c \"mount -f -o ro,remount $SYSTEM_MOUNT_POINT\""
printf "\n${BRED}%s${NC}%s\n" "Reboot your phone and Android will reinstall the app(s)"
printf "\n\e[5m%s\033[0m" "Press any key to continue"
read -n 1 -r -s
}
root_debloat() {
local method=""
if [[ $# -eq 1 ]]; then
[[ ${#CUSTOM_LIST[@]} -eq 0 ]] && echo "Nothing to debloat :)" && sleep 1 && return 0
else
printf "\n${BRED}%s${NC}" "Android Path of the APK to delete: "
read -r path
if [[ ! $path =~ ^/.*\.apk$ ]]; then
printf "\n${BRED}%s${NC}%s${BRED}%s${NC}%s\n" "$path" " doesn't look like a valid APK path"
sleep 2 && return 0
fi
CUSTOM_LIST=("$path")
fi
backup_apks CUSTOM_LIST
read -r -p "Type YES if you want to physically delete the apk(s): "
if [[ $REPLY = "YES" ]]; then
if [[ $NEWER_THAN_ANDROID_9 -eq 1 ]]; then
magisk_module 1
return
fi
local commandes="mount -o rw,remount $SYSTEM_MOUNT_POINT;"
for apk in "${CUSTOM_LIST[@]}"; do
grep -qxF "$apk" deleted_apks.txt || echo "$apk" >> "deleted_apks.txt"
commandes+="echo \"rm -rf $apk\"; rm -rf \"$apk\";"
done
commandes+="mount -f -o ro,remount $SYSTEM_MOUNT_POINT"
printf "\n${BRED}%s${NC}\n\n" "Check your phone: Magisk Manager is probably asking you to grand root permissions for ADB"
adb shell "su -c '$commandes'"
printf "\n${BRED}%s${NC}\n" "DONE"
printf "\n%s${BRED}%s${NC}\n" "A list of deleted apks has been backed-up in " "deleted_apks.txt"
printf "\n\e[5m%s\033[0m" "Press any key to continue"
read -n 1 -r -s
fi
}
magisk_module() {
clear -x
declare -a selection=()
declare -i is_empty=1
echo
if (( !RESTORE )); then
for i in "${!LISTS[@]}"; do
printf "%-2s%s\n" "$i" " - ${LISTS[$i]}"
done
printf "\n${BRED}%s${NC} " "Your choice (e.g 1 2 3) :"
read -r -a selection
for i in "${selection[@]}"; do
if [[ "${LISTS[$i]}" == EXTERNAL_LIST ]]; then
import_external_list
fi
done
else
printf "%-2s%s\n" "1" " - deleted_apks.txt"
printf "%-2s%s\n" "2" " - EXTERNAL_LIST"
printf "\n${BRED}%s${NC} " "Your choice :"
read -r
selection=(1)
case $REPLY in
1) readarray -t CUSTOM_LIST < deleted_apks.txt ;;
2) { import_external_list && CUSTOM_LIST=("${EXTERNAL_LIST[@]}"); } ;;
*) exit 1 ;;
esac
fi
touch -a deleted_apks.txt
rm -r MAGISK_MODULE || true
mkdir MAGISK_MODULE
cd "$_"
local -r MODULE_DIR=$(pwd)
cat << EOF > module.prop
id=universal-android-debloater
name=Universal Android Debloater Magisk Flashable zip
version=1.0
versionCode=1000
author=w1nst0n
description=custom root debloat script
EOF
mkdir -p META-INF/com/google/android/ && cd "$_"
wget -q https://raw.githubusercontent.com/topjohnwu/Magisk/master/scripts/module_installer.sh
mv module_installer.sh update-binary
echo "#MAGISK" > updater-script
cd "$MODULE_DIR"
[[ RESTORE -eq 0 ]] && echo "REPLACE=\"" > customize.sh
for list in "${selection[@]}"; do
if (( list > ${#LISTS[@]} )) || (( list < 1 )); then continue; fi
cd ..
if (( !RESTORE )); then
generate_custom_list "${LISTS[$list]}"
backup_apks CUSTOM_LIST
fi
cd "$MODULE_DIR"
for apk in "${CUSTOM_LIST[@]}"; do
if (( RESTORE )); then
local dir="$(dirname "${apk:1}")"
mkdir -p "$dir"
cp "../apks_backup/$(echo "$apk" | sed -r 's/.*\///g')" "${apk:1}"
grep -Fqv "$apk" ../deleted_apks.txt > temp.tmp || touch temp.tmp; mv temp.tmp ../deleted_apks.txt
else
grep -qxF "$(dirname "$apk")" customize.sh || dirname "$apk" >> customize.sh
grep -qxF "$apk" ../deleted_apks.txt || echo "$apk" >> ../deleted_apks.txt
fi
done
[[ $is_empty -eq 1 && ${#CUSTOM_LIST[@]} -gt 0 ]] && is_empty=0
done
if [[ RESTORE -eq 0 && $is_empty -eq 1 ]]; then
printf "\n${BRED}%s${NC}\n" "Nothing to debloat!"
cd .. && rm -rf MAGISK_MODULE
return 0
fi
[[ RESTORE -ne 1 ]] && echo "\"" >> customize.sh
zip -FSrm ../uad_magisk_"${VERSION%%[[:space:]]*}_$title".zip ./* 1>/dev/null || true
cd .. && rm -rf MAGISK_MODULE
printf "\n${BGREEN}%s${NC}%s\n" "uad_magisk_${VERSION%%[[:space:]]*}.zip" " has been generated."
printf "\n%s${BBLUE}%s${NC}%s${BBLUE}%s${NC}%s\n" "Flash this file from " "Magisk Manager " "or " "TWRP " "and reboot your phone."
printf "\n%s${BBLUE}%s${NC}%s\n" "Removing the module from " "Magisk Manager " "will restore the apks."
if [[ $BRAND == "samsung" ]]; then
printf "\n${BRED}%s${NC}\n\n" "/!\ TWRP doesn't support Samsung encryption. You won't be able to flash this Magisk module from TWRP /!\\"
fi
printf "\e[5m%s\033[0m" "Press any key to continue"
read -n 1 -r -s
}
lists_selection() {
clear -x
declare -a selection=()
for ((i=1; i<=$#; i++)); do
printf "%-2s%s\n" "$i" " - ${!i}"
done
printf "\n${BRED}%s${NC} " "Your choice (e.g 1 2 3) :"
read -r -a selection
for list in "${selection[@]}"; do
if (( list > $# )) || (( list < 1 )); then continue; fi
generate_custom_list "${!list}" && debloat_or_restore CUSTOM_LIST "${!list}"
debloat_or_restore "${!list}"
done
}
list_installed_packages() {
clear
clear -x
declare -a packages=()
printf "\n${BRED}%s${NC}" "Search for packages (regex accepted): "
read -r
echo
adb shell "pm list packages | grep -i $REPLY" | sed -r 's/package://g' | sort
readarray -t packages < <(adb shell "pm list packages -f" | grep -i "$REPLY" | sed 's/package://g' | sort || true)
for i in "${packages[@]}"; do
printf "%s${BBLUE}%s${NC}\n" "${i##*=}" " ${i%=*}"
done
printf "\n\e[5m%s\033[0m" "Press any key to continue"
read -n 1 -r -s
}
restore_backup() {
clear
clear -x
printf "${BRED}%s${NC}" "Enter the path of the backup to restore : "
read -r
@ -231,7 +631,7 @@ restore_backup() {
}
backup() {
clear
clear -x
local backup=$(date +%Y-%m-%d-%H:%M:%S)
adb backup -apk -all -system -f "${PHONE:-phone}-${backup}.adb" # -noshare option is default
@ -247,7 +647,7 @@ check_backup_integrity() {
! [[ -f $1 ]] && printf "${BRED}%s${NC}\n\n" "Backup not found" && return 1
# first 24 bytes are skipped (adb backup are modified compressed tar files with a 24B custom header)
if ! dd if="$1" bs=1M skip=24 iflag=skip_bytes &>/dev/null | zlib-flate -uncompress | tar tf - &>/dev/null; then
if ! dd if="$1" bs=128k skip=24 iflag=skip_bytes 2>/dev/null | zlib-flate -uncompress | tar tf - &>/dev/null; then
printf "${BRED}%s${NC}\n\n" "FAILED" && return 1
else printf "${BGREEN}%s${NC}\n\n" "OK"
@ -258,11 +658,97 @@ get_brand() {
local brand
brand=$(adb shell getprop ro.product.brand | tr -d '\r' | awk '{print tolower($0)}')
# Support for alternative name
# Support for sub-brands
case "$brand" in
"redmi") echo "xiaomi" ;;
"redmi"|"poco") echo "xiaomi" ;;
*) echo "$brand"
esac
}
uad_recovery_mode() {
ROOT=1
while true; do
clear -x
printf "\n${BBLUE}%s\n" "========== MAIN MENU (RECOVERY MODE) =========="
printf "%s\n" "# #"
printf "%-12s${NC}%s${BBLUE}%12s\n" "#" "1 - Restore APKs (Root)" "#"
printf "%-12s${NC}%s${BBLUE}%12s\n" "#" "2 - Debloat APKs (Root)" "#"
printf "%s\n" "# #"
printf "%-12s${NC}%s${BBLUE}%6s\n" "#" "X - Exit and reboot the phone" "#"
printf "%s\n" "# #"
printf "%s${NC}\n\n" "================================================="
read -r -p "Choose an action : "
case $REPLY in
1) { title="RESTORE"; RESTORE=1; };;
2) { title="DEBLOAT"; RESTORE=0; };;
[Xx]) { adb reboot && exit 0; };;
*) exit
esac
clear -x
printf "\n${BBLUE}%s\n" "================ $title (ROOT) ==============="
printf "%s\n" "# #"
printf "%-12s${NC}%s${BBLUE}%17s\n" "#" "1 - $title an APK" "#" | awk '{print tolower($0)}'
printf "%-12s${NC}%s${BBLUE}%18s\n" "#" "2 - External list" "#"
((RESTORE)) && printf "#${NC}%7s 3 - deleted_apks.txt ${BBLUE}%13s#\n"
printf "%s\n" "# #"
printf "%s\n${NC}" "================================================="
read -r -p "Choose an action : "
if [[ $REPLY = 1 ]]; then
while true; do
printf "\n${BRED}%s${NC}" "Android path of the APK to $title: "
read -r path
[[ $path =~ ^/.*\.apk$ ]] && break
printf "\n${BRED}%s${NC}%s${BRED}%s${NC}%s\n" "$path" " doesn't look like a valid APK path"
done
CUSTOM_LIST=("$path")
fi
if [[ $REPLY = 2 ]]; then import_external_list && CUSTOM_LIST=("${EXTERNAL_LIST[@]}"); fi
if [[ $REPLY = 3 && $RESTORE -eq 1 ]]; then readarray -t CUSTOM_LIST < "deleted_apks.txt"; fi
if [[ RESTORE -eq 0 ]]; then
backup_apks CUSTOM_LIST
printf "\n%s${BRED}%s${NC}%s\n\n" "Your apks has been backed-up in" " apks_backup/" " (in case you messed up)"
fi
[[ $NEWER_THAN_ANDROID_9 -eq 1 ]] && magisk_module && continue
printf "\n%s\n" "The script will physically $title the apks from your phone."
printf "%s${BBLUE}%s${NC}%s\n" "Do you prefer to use a " "Magisk " "module for a systemless $title instead? [y/n]"
read -r
if [[ $REPLY =~ [Yy] ]]; then
magisk_module
continue
fi
adb shell mount system || exit 1
for p in "${CUSTOM_LIST[@]}"; do # $p = path/to/app.apk
local apk=$(echo "$p" | sed -r 's/.*\///g') # app.apk
local dir=$(dirname "$p") # path/to
if [[ $RESTORE -eq 0 ]]; then
adb shell "rm -rf $p" && echo "rm -rf $p"
grep -qxF "$p" deleted_apks.txt || echo "$p" >> "deleted_apks.txt"
else
echo "adb push apks_backup/$apk /\"$p\""
if adb shell "mkdir -p $dir" && adb push "apks_backup/$apk" "/$p"; then
grep -qFv "$p" deleted_apks.txt > temp.tmp || touch temp.tmp; mv temp.tmp deleted_apks.txt
fi
fi
done
sleep 2
done
}
main "$@"; exit

View file

@ -1,63 +1,33 @@
#!/usr/bin/env bash
### These packages will be added in the default selection when I will find time to document them.
# It should be safe but you still need to be **VERY** careful.
# Uncommented packages should be safe to remove AT FIRST SIGHT but you still need to be **VERY** careful.
# Commented packages are NOT safe! DO NOT TRY TO REMOVE THESE FROM YOUR PHONE
# REMINDER : "Safe" only means "does not cause bootloop".
# These packages can definitely break useful features (but you can easily reinstall them with the script)
# These packages will most likely break useful features (but you can easily reinstall them with the script)
declare -a pending=(
# These packages seems to be disguished Xiaomi apps once again! If someone have these packages on their phones,
# can someone decompile the apk to confirm this (and try to understand its relevance)?
# These packages seems to be disguished Xiaomi apps and not part of AOSP. Can someone confirm/refute this?
#"com.android.systemui.gesture.line.overlay"
#"com.android.systemui.navigation.bar.overlay"
############## AOSP ###############
#"com.android.bluetooth.tempow"
#"com.android.documentsui.a_overlay"
#"com.android.dynsystem"
"com.android.gallery3d.refocus"
#"com.android.hotspot2"
#"com.android.internal.systemui.navbar.gestural"
#"com.android.internal.systemui.navbar.gestural_extra_wide_back"
#"com.android.internal.systemui.navbar.gestural_narrow_back"
#"com.android.internal.systemui.navbar.gestural_wide_back"
#"com.android.internal.systemui.navbar.threebutton"
#"com.android.internal.systemui.navbar.twobutton"
#"com.android.localtransport"
#"com.android.mmi"
#"com.android.ons"
#"com.android.otaprovisioningclient"
#"com.android.phone.a_overlay"
#"com.android.providers.tctdatahubprovider"
"com.android.runintest.ddrtest"
#"com.android.server.telecom.a_overlay"
#"com.android.wifi.resources"
############# GOOGLE ##############
#"com.google.android.captiveportallogin"
#"com.google.android.documentsui"
"com.google.android.modulemetadata"
#"com.google.android.networkstack"
#"com.google.android.networkstack.permissionconfig"
#"com.google.android.overlay.gmsconfig"
#"com.google.android.overlay.gmsgsaconfig"
#"com.google.android.overlay.modules.ext.services"
#"com.google.android.overlay.modules.permissioncontroller"
#"com.google.android.overlay.modules.permissioncontroller.forframework"
#"com.google.android.packageinstaller.a_overlay"
#"com.google.android.permissioncontroller"
"com.google.android.setupwizard.a_overlay"
"com.google.android.tag"
############ QUALCOMM #############
"com.qti.qualcomm.deviceinfo"
"com.qualcomm.qti.cne"
# "com.qualcomm.qti.ims"
#"com.qualcomm.qti.ims"
"com.qualcomm.qti.performancemode"
"com.qualcomm.qti.poweroffalarm"
"com.qualcomm.qti.qdma"
#"com.qualcomm.qti.gpudrivers.kona.api30"
#"com.qualcomm.qti.seccamservice"
#"com.qualcomm.qti.services.secureui"
#"com.qualcomm.qti.services.systemhelper"
#"com.qualcomm.qti.simcontacts"
#"com.qualcomm.qti.uceShimService"
@ -84,14 +54,28 @@ declare -a pending=(
"com.vendor.frameworkresoverlay"
############# SAMSUNG #############
"com.samsung.android.mdecservice"
"com.aura.oobe.samsung"
"com.samsung.logwriter"
"com.samsung.android.airtel.stubapp"
"com.samsung.android.spaymini"
"com.samsung.SMT"
"com.samsung.android.mfi"
"com.samsung.android.tapack.authfw"
#"com.samsung.android.cmfa.framework"
#"com.samsung.android.incall.contentprovider"
"com.samsung.android.service.tagservice"
"com.samsung.android.camerasdkservice"
"com.samsung.android.cameraxservice" # CBattery drain related on S10
"com.samsung.android.coldwalletservice"
"com.samsung.android.digitalkey"
"com.samsung.android.forest"
"com.samsung.android.kgclient" # Samsung Pay One Ui 3.0 ?
"com.samsung.android.providers.carrier"
#"com.samsung.android.wifi.resources"
"com.samsung.android.wifi.softap.resources"
"com.sec.android.Cdfs"
"com.sec.android.smartfpsadjuster"
"com.sec.location.nfwlocationprivacy"
"com.samsung.gamedriver.sm8250"
"com.samsung.gpuwatchapp" # Gpu viewer ?
"com.samsung.huxplatform"
"com.samsung.qosindicator"
"com.samsung.sait.sohservice"
"com.samsung.vklayer.sm8250"
############### SONY ##############
"com.sonymobile.devicesecurity.service"
@ -99,100 +83,19 @@ declare -a pending=(
"com.sonymobile.swiqisystemservice"
############# HUAWAI ##############
"com.huawei.android.pushagent"
"com.huawei.android.thememanager"
"com.huawei.bd"
"com.huawei.KoBackup"
"com.huawei.mirrorlink"
"com.huawei.securitymgr"
############## NOKIA ##############
# Nokia users ! Please give the apk. I can't find them on the web.
"com.evenwell.batteryprotect.overlay.d.base.s600e0"
"com.evenwell.factorywizard.overlay.base"
"com.evenwell.phone.overlay.base"
"com.evenwell.powersaving.g3.overlay.d.base.s600e0"
"com.evenwell.settings.data.overlay.base"
"com.evenwell.SetupWizard.overlay.base"
"com.evenwell.SetupWizard.overlay.d.base.s600ww"
# Nokia users: Please give the apk. I can't find them on the web.
"com.evenwell.whitebalance"
"com.evenwell.whitebalance.overlay.base"
"com.hmdglobal.datago"
"com.hmdglobal.datago.overlay.base"
"com.hmdglobal.enterprise.api"
########### XIAOMI ##############
########## XIAOMI ###############
#"com.mi.android.globalminusscreen"
"com.mi.AutoTest"
#"com.mi.globallayout"
"com.miui.audiomonitor"
"com.miui.backup"
#"com.miui.core"
"com.miui.face"
"com.miui.fmservice"
"com.miui.freeform"
#"com.miui.global.packageinstaller"
"com.miui.guardprovider"
#"com.miui.miservice"
#"com.miui.misound"
#"com.miui.notification"
"com.miui.phrase"
#"com.miui.powerkeeper"
#"com.miui.rom"
#"com.miui.securitycore"
"com.miui.smsextra"
"com.miui.sysopt"
#"com.miui.system"
#"com.miui.systemui.carriers.overlay"
#"com.miui.systemui.devices.overlay"
#"com.miui.systemui.overlay.devices.android"
#"com.miui.wmsvc"
#"com.wapi.wapicertmanager"
"com.wingtech.standard"
"com.wt.secret_code_manager"
#"com.xiaomi.bluetooth"
#"com.xiaomi.bluetooth.overlay"
#"com.xiaomi.location.fused"
"com.xiaomi.mi_connect_service"
#"com.xiaomi.misettings"
#"com.xiaomi.powerchecker"
#"com.xiaomi.simactivate.service"
"com.xiaomi.upnp"
"com.xiaomi.xmsf"
"com.xiaomi.xmsfkeeper"
#"org.simalliance.openmobileapi.uicc1terminal"
#"org.simalliance.openmobileapi.uicc2terminal"
"se.dirac.acs"
"com.fido.asm"
#"com.fido.xiaomi.uafclient"
#"com.lbe.security.miui"
#"com.mediatek"
"com.mediatek.atmwifimeta"
#"com.mediatek.callrecorder"
"com.mediatek.engineermode"
#"com.mediatek.gpslocationupdate"
#"com.mediatek.ims"
#"com.mediatek.location.lppe.main"
"com.mediatek.mdmconfig"
"com.mediatek.mtklogger"
#"com.mediatek.nlpservice"
#"com.mediatek.omacp"
"com.mediatek.providers.drm"
"com.mediatek.wfo.impl"
#"android.telephony.overlay.cmcc"
"android.ui.overlay.ct"
"com.android.backup"
"com.android.mms.overlay.cmcc"
"com.android.networksettings.overlay.ct"
#"com.android.settings.overlay.cmcc"
#"com.android.systemui.overlay.cmcc"
#"com.android.systemui.overlay.ct"
#"com.android.wallpaperpicker"
########### TCL ############
############# TCL ###############
"com.android.gallery3d.refocus"
"android.autoinstalls.config.TCL.PAI"
"com.android.providers.tctdatahubprovider"
#"com.tcl.android.launcher"
#"com.tcl.android.launcher.a_overlay"
#"com.tcl.android.launchertheme.res"
@ -267,4 +170,3 @@ declare -a pending=(
"com.tct.weather.a_overlay"
#"com.tct.wfcwebiew"
)

View file

@ -1,26 +1,21 @@
#!/usr/bin/env bash
# VOCABULARY :
# overlay : A screen overlay in Android, allows an app to display content over another app
# overlay : https://budhdisharma.medium.com/rro-runtime-resource-overlay-in-android-aosp-e094be17f4bc
# https://source.android.com/devices/architecture/rros
declare -a aosp=(
"com.android.apps.tag"
# NFC Tagging (5 permissions : Contacts/Phone On by default).
# https://en.wikipedia.org/wiki/TecTile
# It will NOT prevent you to use NFC devices (like speakers)
"com.android.bips"
# Default print Service.
# Safe to remove if you don't plan to print from your phone.
"com.android.bluetoothmidiservice"
# Provides classes for using the MIDI protocol over Bluetooth. Safe to remove if you don't plan to connect MIDI devices.
# (Seriously, use a PC if you want to do this !)
"com.android.bookmarkprovider"
# Only exist for compatibility reasons to prevent apps querying it from getting null cursors they do not expect and crash.
# Only exists for compatibility reasons to prevent apps querying it from getting null cursors they do not expect and crash.
"com.android.carrierdefaultapp"
# Allows carrier customization. Carrier action upon specific signal.
@ -71,16 +66,15 @@ declare -a aosp=(
# Lets Google partners (OEM in most of the case) to customize the default email settings.
# The manufacturer often change the default signature displayed the end of each of your mail (e.g "Sent from my Nokia phone")
"com.android.printservice.recommendation"
# Keep it, if you need to print directly via your phone.
"com.android.printspooler"
# Print spooler. Manage the printing process.
# Safe to remove if you don't plan to print from your phone
"com.android.providers.partnerbookmarks"
# Provides bookmarks about partners of Google in Chrome.
"com.android.runintest.ddrtest"
# DDR Test
# RAM Stress tester
# Can be run from the bootloader
# NOTE: I'm not sure it's really from AOSP (seen in TCL Plex phone)
"com.android.simappdialog"
# Sim App Dialog
# Used to install the carrier SIM app when the SIM is inserted.
@ -111,8 +105,9 @@ declare -a aosp=(
"com.android.wallpaper.livepicker"
"com.android.wallpaper.livepicker.overlay"
# Enable you to pick live wallpaper.
# Enables you to pick a live wallpaper.
# Will break some weather applications (especially ones with widgets) and wallpaper applications like Muzei.
"com.android.wallpapercropper"
# Wallpaper cropper.
@ -122,6 +117,23 @@ declare -a aosp=(
##################### UP TO YOU (can be useful features but safe to remove) #####################
"android.auto_generated_vendor_" # [MORE INFO NEEDED]
# Auto generated vendor's stuff for Android Auto (https://www.android.com/intl/en_en/auto/)
# Note: You don't need this if you don't use Android auto
"android.auto_generated_rro__"
# rro = Runtime Resources Overlay.
# Changes values of a package config, based in the overlay definitions (heavily used by OEM for custom themming android)
# Link: https://source.android.com/devices/architecture/rros and https://code.tutsplus.com/tutorials/quick-tip-theme-android-with-the-runtime-resource-overlay-framework--cms-29708
"com.android.apps.tag"
# Support for NFC tags interactions (5 permissions : Contacts/Phone On by default).
# NFC Tags are for instance used in bus to let you validate your transport card with your phone
# Other exemple : https://en.wikipedia.org/wiki/TecTile
# You will still be able to connect to a NFC device (e.g a speaker) if removed.
#"com.google.android.GoogleCamera"
# Google Camera (https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera)
#"com.android.backupconfirm"
# Restore google settings with Google Backup restore function.
# Also display confirmation popup when doing ADB backup. If you remove this package you couldn't do ADB Backup.
@ -152,18 +164,22 @@ declare -a aosp=(
# AOSP calculator app.
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own calculator app.
"com.android.calllogbackup"
#"com.android.calllogbackup"
# Call Logs Backup/Restore feature.
# https://android.googlesource.com/platform/packages/providers/CallLogProvider/+/refs/heads/master/src/com/android/calllogbackup
#"com.android.captiveportallogin"
# Takes care of redirecting to the web page that the user of a public access network is obliged to view and interect with, before access is granted.
# Support for captive portal : https://en.wikipedia.org/wiki/Captive_portal
# A captive portal login is a web page where the users have to input their login information or accept the displayed terms of use.
# Some networks (typically public wifi network) use the captive portal login to block access until the user inputs
# some necessary information
#"com.android.carrierconfig"
# Gives carriers and OEMs the ability to dynamically provide carrier configuration (APN settings) trough their app.
# NOTE : The probability that your carrier's APN change is very low. If you change your carrier and insert a new SIM card
# This package will be triggered to automatically choose the suitable APN.
# https://source.android.com/devices/tech/config/carrier
# https://android.googlesource.com/platform/packages/apps/CarrierConfig/+/refs/heads/master/src/com/android/carrierconfig/DefaultCarrierConfigService.java
#"com.android.cellbroadcastreceiver"
# Cell broadcast has been designed to deliver messages to multiple users in an area.
@ -205,6 +221,10 @@ declare -a aosp=(
# Gallery app.
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own Gallery app.
#"com.android.hotspot2"
# Provides wifi tethering (lets you share your mobile device's Internet connection with other devices)
# https://en.wikipedia.org/wiki/Tethering)
#"com.android.inputdevices"
# Only contains a receiver named "Android keyboard", possibly for an external keyboard.
# Locates available keyboard layouts.
@ -221,9 +241,19 @@ declare -a aosp=(
# https://developer.android.com/guide/topics/display-cutout
# https://source.android.com/devices/tech/display/display-cutouts
#"com.android.keychain"
# Enable apps to use system wide credential KeyChain (shared credentials between apps)
# https://security.stackexchange.com/questions/216716/android-keychain-what-is-a-system-wide-credential
#"com.android.internal.systemui.navbar.gestural"
# Gesture navigation
# Lets you use swipes and other actions to control your phone, rather than tapping on buttons.
# Option -> System -> Gestures -> System Navigation
# https://android-developers.googleblog.com/2019/08/gesture-navigation-backstory.html
#"com.android.internal.systemui.navbar.gestural_extra_wide_back"
#"com.android.internal.systemui.navbar.gestural_narrow_back"
#"com.android.internal.systemui.navbar.gestural_wide_back"
# Enables you to turn down the sensitivity to make it easier to perform gestures in apps (i.e. making back harder to trigger)
#"com.android.internal.systemui.navbar.threebutton" # 3-button navigation
#"com.android.internal.systemui.navbar.twobutton" # 2-button navigation
#"com.android.musicfx"
# Audio equalizer. Some 3-party music apps can use it to provide you equalizing features.
@ -235,6 +265,22 @@ declare -a aosp=(
#"com.android.nfc"
# NFC service
#"com.android.ons"
# Opportunistic Network Service
# Opportunistic networks are networks which are formed when devices come into contact opportunistically through
# physical proximity, and communicate wirelessly to share each others content, resources and services.
# This kind of networks leads to a set of challenging issues (congestion, transfer ordering, and resilience)
# Basically, this package implements ions (asynchronous networking) to resolve these issues.
# Run in background after booting the phone.
# https://en.wikipedia.org/wiki/Opportunistic_mobile_social_network
#"com.android.otaprovisioningclient"
# OTA Access Point Configuration
# OTA (Over the air : https://fr.wikipedia.org/wiki/Over-the-air_programming) is the method used by OEM to push updates on
# your phone.
# An OTA access point is used to run system software updates over a special gateway. This package is most likely customized
# by your OEM.
#"com.android.pacprocessor"
# A PAC (Proxy Auto-Config) is a file which defines how an app can automatically define the correct proxy server for fetching an URL.
# Should be safe to remove if you don't use Auto-proxy (with PAC file config)
@ -244,6 +290,15 @@ declare -a aosp=(
# AOSP Call recorder function. Most of the time OEM use their own code for this.
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own closed-source recorder app.
#"com.android.printservice.recommendation"
# Used to discover and interact one or more printers via one or more protocols.
# You can remove it if you don't need to print directly from your phone.
#"com.android.printspooler"
# Print spooler. Manage the printing process.
# Safe to remove if you don't plan to print from your phone
# Note: Break connection preferences from the settings app on some phones (Pixel 4a / Android 11)
#"com.android.providers.blockednumber"
# Handles blocked numbers storage
# On some devices this packages seems to be tied to recent apps menu (see https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/6)
@ -275,9 +330,10 @@ declare -a aosp=(
#
# FYI : The Open Mobile Alliance (OPA) is a standards organization which develops open standards for the mobile phone industry.
#"com.android.settings.intelligence" # [MORE INFO NEEDED]
# Settings tips in Settings menu ?
# I don't have this in my phone. It for Android Pie. Can someone check ?
#"com.android.settings.intelligence"
# Setting search feature
# Note: Settings app may crash when searching for a setting if you removed this package (it depends on the phone)
# See https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/51
#"com.android.sharedstoragebackup"
# Used during backup. Fetch shared storage (files accessible by every apps with STORAGE permission)
@ -330,6 +386,9 @@ declare -a aosp=(
# OEM often use their own code (embeded in their voice-controlled digital assistant)
# NOTE: On some phones Huawei & Xiaomi also use this package name for their own voice dialer app.
#"com.android.wallpaperpicker"
# Enables you to pick a wallpaper.
#"com.android.wallpaperbackup"
# Backup your wallapaper and load this backup instead of the original file in case you delete it.
# Safe to remove if you really want to.
@ -341,20 +400,10 @@ declare -a aosp=(
# This package is no longer used in recent phones as it was replaced by com.google.android.webview
#
# On open-source privacy oriented Webview is Bromite (https://www.bromite.org/system_web_view)
#"org.simalliance.openmobileapi.service"
# Smart Card Service by Simalliance
# https://simalliance.org/about-us/mission-objectives/
#
# The SmartCard API is a reference implementation of the SIMalliance Open Mobile API specification that enables Android applications
# to communicate with Secure Elements, (SIM card, embedded Secure Elements, Mobile Security Card or others)
# https://github.com/seek-for-android/pool/wiki/SmartcardAPI
# Safe to remove if you don't think you need this
)
##################### DO NOT REMOVE THIS (will prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.android.certinstaller"
# Certificate installer. Identifies your device and confirms that it should be able to access something.
@ -362,7 +411,7 @@ declare -a aosp=(
#"com.android.companiondevicemanager"
# Companion Device Manager that comes by default in every Oreo+ device.
# This handles connections to other devices, like Bluetooth Headphones, desktop Operative Systems, ecc.
# This handles connections to other devices, like Bluetooth Headphones, desktop Operative Systems, ecc.
#"com.android.defcontainer"
# Package Access Helper
@ -371,9 +420,32 @@ declare -a aosp=(
#"com.android.documentsui" # Files picker
# Interface for apps wishing to access access files outside of their own storage area.
#"com.android.documentsui.a_overlay"
# DocumentsUI Overlay
# The DocumentsUI controls access to specific files for components that handle document permissions
# (such as attaching a file to an email)
# https://source.android.com/devices/architecture/modular-system/documentsui?hl=en
#"com.android.dynsystem"
# Dynamic System Updates
# Treble gived the ability to boot an AOSP Generic System Image (GSI) on any supported device.
# Dynamic System Updates allows to boot into a Generic System Image (GSI) without interfering with the current installation.
# That means the bootloader doesnt need to be unlocked and the user data doesnt need to be wiped.
# https://developer.android.com/topic/dsu
#"com.android.externalstorage"
# Needed by apps to access external storage (SD card)
#"com.android.keychain"
# Enable apps to use system wide credential KeyChain (shared credentials between apps)
# https://security.stackexchange.com/questions/216716/android-keychain-what-is-a-system-wide-credential
#"com.android.localtransport"
# Backup transport for stashing stuff into a known location on disk, and later restoring from there.
# Seems needed for storeing backup data locally on the device.
# This package also provides the backup confirmation UI.
# https://developer.android.com/guide/topics/data/testingbackup
#"com.android.location.fused"
# Manages the underlying location technologies, such as GPS and Wi-Fi.
@ -392,6 +464,7 @@ declare -a aosp=(
# This service is for exemple needed when the user's phone moves from one cell-tower to another.
#"com.android.phone"
#"com.android.phone.a_overlay"
# AOSP code for dialer app features
# SIM card will also not be detected if deleted.
@ -418,6 +491,7 @@ declare -a aosp=(
# Telephony provider. Controls and stores phone-related data such as text messages, APN list, operation, etc.
#"com.android.server.telecom"
#"com.android.server.telecom.a_overlay"
# Management your calls via your network provider or SIM and controls the phone modem.
#"com.android.settings"

View file

@ -6,10 +6,20 @@ declare -a asus=(
# Asus calculator app
# NOTE : Simple calculator is a good alternative : https://f-droid.org/en/packages/com.simplemobiletools.calculator/
"com.asus.easylauncher"
# Asus Easy Mode (https://play.google.com/store/apps/details?id=com.asus.easylauncher)
# Alternative launcher with bigger icons and simpler interface
"com.asus.ia.asusapp"
# My Asus (https://play.google.com/store/apps/details?id=com.asus.ia.asusapp)
# Asus service center (support + store)
"com.asus.soundrecorder"
# Asus Sound recorder (https://play.google.com/store/apps/details?id=com.asus.soundrecorder)
# Asus Sound recorder (https://play.google.com/store/apps/details?id=com.asus.soundrecorder)
"com.asus.userfeedback"
# ZenUI Help (https://play.google.com/store/apps/details?id=com.asus.userfeedback)
# Customer service app that provides FAQs, Mobile care service, user feedback, and public forums.
# Lots of telemetry (insecure on top of that):
# https://beta.pithus.org/report/e80a1fa70adc097fc9817720b5c8c81cfd156a76e6d062759b2bc3d6937a97e7
)

View file

@ -16,6 +16,9 @@ declare -a us_carriers=(
#
# 3) Not a scandal but freaking scary :
# https://www.theverge.com/2019/5/22/18635674/att-location-ad-tracking-data-collection-privacy-nightmare
#
# 4) AT&T is selling your phone calls and text messages to marketers
# https://news.ycombinator.com/item?id=24756042
#
# Wikipedia pages are worth reading :
# https://en.wikipedia.org/wiki/AT%26T#Criticism_and_controversies
@ -26,9 +29,15 @@ declare -a us_carriers=(
# everything they can (big lobbying) to lock the internet and make more money.
# HELP ME : I got mad seeking for the meaning of VPL. A lot of people use it on Reddit (https://www.reddit.com/r/Bestbuy/search/?q=vpl&restrict_sr=1)
# and I'm sure it's the good abbreviation but I don't know what V.P.L means !! It seems to refer to a special job for vendors.
## Vocabulary ##
# VPL
# Stands for 'Vendor Provided Labor' (now 'Certified Advisor').
# They are basically ambassadors for a brand. Theorically the brand gives money to a store to hire an employee dedicated to better selling
# its brand. Some stores just use them as normal sales employees.
# See https://old.reddit.com/r/Bestbuy/comments/keclql/what_is_a_vpl/
# Theses ambassadors most likely have a phone with custom apps for demonstration purposes
# https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/40
# Example of package: "com.asurion.android.mobilerecovery.sprint.vpl
######################## T-Mobile ########################
@ -119,9 +128,10 @@ declare -a us_carriers=(
"com.verizon.messaging.vzmsgs"
# Verizon Messages (https://play.google.com/store/apps/details?id=com.verizon.messaging.vzmsgs)
"com.verizon.mips.services"
# "com.verizon.mips.services"
# My Verizon Services
# Related to My Verizon app.
# Tested to be required for hotspot.
"com.verizon.obdm" # [MORE INFO NEEDED]
"com.verizon.obdm_permissions"
@ -135,7 +145,7 @@ declare -a us_carriers=(
# Custom permissions for some verizon stuff ?
"com.verizon.vzwavs" # [MORE INFO NEEDED]
# ???
# Has a scary list of permissions in any case.
"com.verizontelematics.verizonhum"
# Hum Family Locator (https://play.google.com/store/apps/details?id=com.verizontelematics.verizonhum)
@ -393,6 +403,10 @@ declare -a us_carriers=(
# Spam call blocking app provided by Hiya
# NOTE : You should never trust spam blocking apps (https://itmunch.com/robocall-caught-sending-customers-confidential-data-without-consent/)
"com.att.csoiam.mobilekey"
# AT&T Sign in Helper (https://play.google.com/store/apps/details?id=com.att.csoiam.mobilekey)
# Allows AT&T applications to securely authenticate on Android devices
"com.att.dh"
# Device Help (https://play.google.com/store/apps/details?id=com.att.dh)
# Troubleshooting app.
@ -411,10 +425,6 @@ declare -a us_carriers=(
"com.att.mobiletransfer"
# AT&T Mobile Transfer
# Lets you transfert user data from an older AT&T phone to a new one.
"com.synchronoss.dcs.att.r2g"
# Setup & Transfer
# App for transferring "contacts, photos, videos, music, call logs, and documents" from another device
"com.att.myWireless"
# My AT&T (https://play.google.com/store/apps/details?id=com.att.myWireless)
@ -428,6 +438,12 @@ declare -a us_carriers=(
# AT&T Visual Voicemail (https://play.google.com/store/apps/details?id=com.att.mobile.android.vvm)
# Lets you manage your voicemail directly from the app without the need to dial into your mailbox.
"com.att.personalcloud"
# AT&T Personal Cloud (https://play.google.com/store/apps/details?id=com.att.personalcloud)
# Note: it's a paid extra feature and data are obviously not E2EE (i.e AT&T can access them)
# Don't keep this app. It's a privacy nightmare and was poorly coded:
# https://beta.pithus.org/report/bc54b5e2446ace90d9f992278d0ec320befe4983a76cb4fdcf47e565366e67b6
"com.att.tv"
# AT&T TV (https://play.google.com/store/apps/details?id=com.att.tv)
# Lets you Stream TV live and on demand from your phone.
@ -475,6 +491,14 @@ declare -a us_carriers=(
"com.samsung.attvvm"
# Visual Voicemail
# Simple GUI for voicemail
"com.sec.android.app.ewidgetatt"
# Entertainment Widget
# AT&T Widget for OneUI
"com.synchronoss.dcs.att.r2g"
# Setup & Transfer
# App for transferring "contacts, photos, videos, music, call logs, and documents" from another device
)
declare -a french_carriers=(

View file

@ -258,11 +258,11 @@ declare -a google=(
# Android auto (https://play.google.com/store/apps/details?id=com.google.android.projection.gearhead)
"com.google.android.setupwizard"
"com.google.android.setupwizard.a_overlay"
"com.google.android.pixel.setupwizard"
# It's the basic configuration setup guides you through the basics of setting up your device.
# It's the basic configuration setup guides you through the basics of setting up Google features on your device.
# The second package is only present on Pixel phones.
"com.google.android.soundpicker"
# Google Sounds. Removable if you already have another media select service.
@ -359,16 +359,23 @@ declare -a google=(
# Device Health Services (discontinued ?)
# Calculates your remaining battery percentage based on your usage
# Reviews for this app were... funny (https://www.reddit.com/r/google/comments/ajnbmh/the_reviews_for_device_health_services_are_quite/)
# Note: this app needs com.google.android.gms
"com.google.android.apps.work.oobconfig" # [MORE INFO NEEDED]
# Needs internet to fetchs enterprise and carrier lock config via internet.
# Run in background and is triggered when a SIM card is added/removed/replaced.
# It also has Gcm receiver (Google Cloud Messaging receiver)
# Has a lot of permissions (16).
# Talks to websites which provide SSL certificates.
# Talks to websites providing SSL certificates.
# Needs Google Play Services to work.
# https://www.hybrid-analysis.com/sample/71bcaf2e71d78665fc5bc53db39df5309f24dd4ecab6402cf6ca20027dc6ecad?environmentId=200
#"com.google.android.carrierconfig" # [MORE INFO NEEDED]
# Provides network overrides for carrier configuration.
# The configuration available through CarrierConfigManager is a combination of default values, default network overrides,
# and carrier overrides. The default network overrides are provided by this service.
# What's the difference between com.android.carrierconfig and this package?
#"com.google.android.contacts"
# Google Contacts (https://play.google.com/store/apps/details?id=com.google.android.contacts)
@ -377,22 +384,23 @@ declare -a google=(
# It's not default but seriously, don't use the Google dialer there are Google Analytics embedded inside
# https://www.virustotal.com/gui/file/a978d90f27d5947dca33ed59b73bd8efbac67253f9ef7a343beb9197c8913d1a/details
#"com.google.android.documentsui"
# Google File manager
"com.google.android.email"
# AOSP Mail client
# Does no longer exist. AOSP Mail is now com.android.email and Gmail is com.google.android.gm
"com.google.android.ext.services"
# Android Services Library only contains, for now, an "Android Notification Ranking Service."
# It sorts notifications by "importance" based on things like freshness, app type (IM apps come first), and by contact.
# For now it is safe to remove if you really want.
# The library android.ext.services is open-source but this apk is not. Google probably uses it to update its API without having to rely to the OEM
# https://arstechnica.com/gadgets/2016/11/android-extensions-could-be-googles-plan-to-make-android-updates-suck-less/
"com.google.android.ext.shared"
## Google shared library (used to share common code between apps)
#"com.google.android.ext.shared"
# Google shared library (used to share common code between apps)
# For now the library (android.ext.shared is empty). So this apk is useless.
# This apk has the same role than the one above.
"com.google.android.tag"
# Support for NFC tags interactions (5 permissions : Contacts/Phone On by default).
# NFC Tags are for instance used in bus to let you validate your transport card with your phone
# Other exemple : https://en.wikipedia.org/wiki/TecTile
# You will still be able to connect to a NFC device (e.g a speaker) if removed.
#"com.google.android.GoogleCamera"
# Google Camera (https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera)
@ -409,6 +417,11 @@ declare -a google=(
# IMPORTANT : You need to uncheck Find My Device from the "Device admin apps" settings panel to be able to uninstall this package
# Search "admin" in the settings search bar.
#"com.google.android.overlay.gmsconfig" # [MORE INFO NEEDED]
#"com.google.android.overlay.gmsgsaconfig"
# Probably RROs (https://source.android.com/devices/architecture/rros?hl=en) tied to "com.google.android.gms" (Google Play Services)
# If you remove com.google.android.gms you can remove those 2 packages as well.
"com.google.android.gms.location.history"
# Google Location history
# https://support.google.com/accounts/answer/3118687?hl=en
@ -455,6 +468,12 @@ declare -a google=(
# Carrier Services (for Google phones) (https://play.google.com/store/apps/details?id=com.google.android.ims)
# IMS is an open industry standard for voice and multimedia communications over packet-based IP networks (Volte/VoIP/Wifi calling).
"com.google.audio.hearing.visualization.accessibility.scribe"
# Live Transcribe & Sound Notifications (https://play.google.com/store/apps/details?id=com.google.audio.hearing.visualization.accessibility.scribe)
# Provides push notifications for critical sounds around you. This feature can be helpful for people with hearing loss.
# https://blog.google/products/android/new-sound-notifications-on-android/
# Works offline
#"com.android.vending"
# Google Play Store app.
@ -479,8 +498,54 @@ declare -a google=(
)
##################### DO NOT REMOVE THIS (prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.google.android.captiveportallogin"
# Support for captive portal : https://en.wikipedia.org/wiki/Captive_portal
# A captive portal login is a web page where the users have to input their login information or accept the displayed terms of use.
# Some networks (typically public wifi network) use the captive portal login to block access until the user inputs
# some necessary information
# NOTE : This package is a now a mandatory mainline module (https://www.xda-developers.com/android-project-mainline-modules-explanation/)
#"com.google.android.modulemetadata"
# Module that contains ... metadata about the list of modules on the device. And thats about it.
# I wouldn't advise you to mess with it as it could break the proper working of other important modules (see #37)
# Good explanation of what android modules are : https://www.xda-developers.com/android-project-mainline-modules-explanation/
#"com.google.android.ext.services"
#"com.google.android.overlay.modules.ext.services"
# Android Services Library that contains an "Android Notification Ranking Service."
# It sorts notifications by "importance" based on things like freshness, app type (IM apps come first), and by contact.
# The library android.ext.services is open-source. Google probably uses it to update its API without having to rely to the OEM
# It is a mainline module and is needed to boot since Android 11! NO NOT REMOVE IT!
# https://source.android.com/devices/architecture/modular-system/extservices
# https://arstechnica.com/gadgets/2016/11/android-extensions-could-be-googles-plan-to-make-android-updates-suck-less/
#"com.google.android.networkstack"
# Network Stack Components
# https://source.android.com/devices/architecture/modular-system/networking
# Provides common IP services, network connectivity monitoring, and captive login portal detection.
#"com.google.android.networkstack.permissionconfig"
# Network Stack Permission Configuration
# Defines a permission that enables modules to perform network-related tasks.
# https://source.android.com/devices/architecture/modular-system/networking
#"com.google.android.packageinstaller"
#"com.google.android.packageinstaller.a_overlay"
# Gives ability to install, update or remove applications on the device.
# If you delete this package, your phone will probably bootloop.
# If you delete this package, your phone will probably bootloop.
#"com.google.android.permissioncontroller"
#"com.google.android.overlay.modules.permissioncontroller"
#"com.google.android.overlay.modules.permissioncontroller.forframework"
# The PermissionController module enables updatable privacy policies and UI elements.
# For example, the policies and UI around granting and managing permissions.
# https://source.android.com/devices/architecture/modular-system/permissioncontroller
#"com.google.mainline.telemetry"
# It's a set of metrics-related modules. Google Play uses the version of the Telemetry module to determine
# if updates are available for metrics-related modules and which security patch version to display to the end user.
# This module doesnt contain active code and has no functionality on its own.
# Removing modules-related packages may not be safe since Android 11
# https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/27#note_410012436

View file

@ -1,12 +1,13 @@
#!/usr/bin/env bash
declare -a huawei=(
# I NEVER HAD AN HUAWEI DEVICE ON HAND. THIS LIST WAS MADE POSSIBLE BY @REDSKULL23
# I NEVER HAD AN HUAWEI DEVICE ON HAND. THIS LIST WAS MADE POSSIBLE BY @REDSKULL23
# https://forum.xda-developers.com/honor-6x/how-to/guide-list-bloat-software-emui-safe-to-t3700814
# Yet, his documentation is not enough precise to me.
# I already made more intensive search on the web to complete it but I need Huawei users to really improve it.
# Additional informaton were taken from https://forum.xda-developers.com/huawei-p40-pro/how-to/adb-debloating-t4088633
# Yet, those documentations are not precise enough. If you have additional information, please contribute to this list
# I use [MORE INFO NEEDED] tag as a marker.
# If you have EMUI 10 or older, check the AOSP file, as Huawei uses AOSP package name for their own app.
"com.android.keyguard"
# HUAWEI magazine unlock (The package name is really confusing)
# It's a proprietary app based on the AOSP package called com.android.keyguard. That's not clever at all.
@ -21,6 +22,9 @@ declare -a huawei=(
# Woh! 51 permissions!
# Huawei chinese stock input keyboard.
#"com.bjbyhd.screenreader_huawei"
# An accessibility feature for visually impaired people
"com.hicloud.android.clone"
# Huawei Phone Clone (https://play.google.com/store/apps/details?id=com.hicloud.android.clone)
# 171 Permissions (https://reports.exodus-privacy.eu.org/fr/reports/144565/)
@ -46,6 +50,9 @@ declare -a huawei=(
# Mobile payment and e-wallet service for Huawei devices that offers the same services as Apple Pay, Samsung Pay etc...
# https://consumer.huawei.com/en/mobileservices/huawei-wallet/
"com.huawei.android.instantonline" # [MORE INFO NEEDED]
# no noticable consequences
"com.huawei.android.instantshare"
# Huawei Share features.
# File transfer tool between Huawei mobiles, using Bluetooth connection and WiFi Direct technology.
@ -57,6 +64,11 @@ declare -a huawei=(
# MirrorShare feature (Miracast rebranded by Huawei)
# Used to mirror screen of you smartphone on a TV.
"com.huawei.android.pushagent" # [MORE INFO NEEDED]
# push notification agent
# Seems to only be used for Huawei apps
# The recompiled java code makes it look like it's once again mainly used for analytics.
"com.huawei.android.remotecontroller"
# Huawei Smart Controller app.
# Lets you you add, customize, and set up remote controls, allowing control of your electronic appliances through your phone.
@ -82,6 +94,12 @@ declare -a huawei=(
"com.huawei.arengine.service"
# Augmented reality service.
"com.huawei.bd"
# HwUE (Huawei UserExperience)
# When a company call a something 'UserExperience' you know you don't need this.
# Analytics service, run at boot. Collect information about packages/apps usages.
# Has a nice custom permission called com.huawei.permission.BIG_DATA
"com.huawei.bluetooth"
# Lets you import your contacts via Bluetooth
# Bluetooth will still work if you remove this package.
@ -89,6 +107,9 @@ declare -a huawei=(
"com.huawei.browser"
# Huawei Browser app.
"com.huawei.browserhomepage"
# Huawei Browser component.
"com.huawei.compass"
# Huawei Compass app.
@ -103,6 +124,9 @@ declare -a huawei=(
# From XDA thread : "Service that is been used when you wanna use your phone as an operative system on a PC."
# I don't understand what does it mean.
"com.huawei.email"
# Huawei Email app.
"com.huawei.fido.uafclient"
# UAF client for FIDO.
# Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords.
@ -112,7 +136,10 @@ declare -a huawei=(
# The UAF protocol is designed to enable online services to offer passwordless and multi-factor security by allowing users to register their device
# to the online service and using a local authentication mechanism such as iris or fingerprint recognition. .
# https://developers.google.com/identity/fido/android/native-apps
# Safe to remove if you don't use password-less authentification to access online servics
# Safe to remove if you don't use password-less authentification to access online servics.
"com.huawei.game.kitserver" # [MORE INFO NEEDED]
# Probably safe to remove if you don't play games
"com.huawei.gameassistant"
# Huawei Game Suite (HiGame).
@ -125,17 +152,39 @@ declare -a huawei=(
# A geofence is a virtual perimeter set on a real geographic area. Combining a user position with a geofence perimeter,
# it is possible to know if the user is inside or outside the geofence or even if he is exiting or entering the area.
"com.huawei.hwsearch"
# Petal Search widget. Used for finding apps/apks on serveral online sources (introduced after Google Mobile Services Ban).
"com.huawei.hwid"
# Huawei Mobile Services (https://play.google.com/store/apps/details?id=com.huawei.hwid)
# Needed to access advanced Huawei features.
# A Huawei ID is required to access services, like Themes, Mobile Cloud, HiCare, Huawei Wear, Huawei Health
"com.huawei.hiaction" # [MORE INFO NEEDED]
# no noticable consequences
"com.huawei.hiai" # [MORE INFO NEEDED]
# no noticable consequences
"com.huawei.hiassistantoversea"
# HiVoice. Huawei's voice assistant to replace "Hey Google"
"com.huawei.hicard" # [MORE INFO NEEDED]
# Huawei Cards, no noticable consequences
"com.huawei.hicloud"
# Huawei cloud features
"com.huawei.hifolder"
# Huawei Online Cloud folder service
# https://consumer.huawei.com/en/mobileservices/mobilecloud/
"com.huawei.himovie.overseas"
# Huawei video (https://play.google.com/store/apps/details?id=com.huawei.himovie.overseas)
#"com.huawei.hiview"
#"com.huawei.hiviewtunnel"
# This displays details/attributes of pictures in the gallery (ISO, exposure time, etc.).
"com.huawei.himovie.overseas"
# Huawei stock video application (https://play.google.com/store/apps/details?id=com.huawei.himovie.overseas). Replace with VLC, which integrates well with the stock gallery.
"com.huawei.hitouch"
# Huawei HiTouch
@ -144,11 +193,14 @@ declare -a huawei=(
"com.huawei.hwasm"
# FIDO UAF Autenthicator-Specific Module.
# See com.huawei.fido.uafclient for FIDO explaination.
# See 'com.huawei.fido.uafclient' for FIDO explaination.
# The UAF Authenticator-Specific Module (ASM) is a software interface on top of UAF authenticators which gives a standardized way for FIDO UAF clients
# to detect and access the functionality of UAF authenticators and hides internal communication complexity from FIDO UAF Client.
# Source : https://fidoalliance.org/specs/fido-uaf-v1.0-ps-20141208/fido-uaf-asm-api-v1.0-ps-20141208.html
"com.huawei.hwblockchain" # [MORE INFO NEEDED]
# probably blockchain related, no noticable consequences
"com.huawei.hwdetectrepair"
# Huawei Smart diagnosis (https://play.google.com/store/apps/details?id=com.huawei.hwdetectrepair)
# Useless features and run in background.
@ -156,6 +208,12 @@ declare -a huawei=(
#"com.huawei.HwMultiScreenShot"
# Scrolling screenshot feature
"com.huawei.hwstartupguide"
# A one-time setup app that is no longer needed
"com.huawei.hwvoipservice"
# MeeTime (https://consumer.huawei.com/en/support/content/en-us00956296/)
"com.huawei.iaware"
# App Prioritizer. Prioritizes apps to avoid slowdown
# Up to you but there is apparently no noticeable difference when deleted.
@ -163,6 +221,9 @@ declare -a huawei=(
"com.huawei.ihealth"
# MotionService package, it's required for actions like shaking the phone to shut off the alarm, ecc.
"com.huawei.intelligent"
# Huawei Assistant. Shopping recommendations
"com.huawei.health"
# Huawei Health (https://play.google.com/store/apps/details?id=com.huawei.health)
# Connect Huawei wearables to your phone and all sorts of stats like all fitness tracking apps.
@ -175,9 +236,19 @@ declare -a huawei=(
"com.huawei.livewallpaper.naturalgarden"
"com.huawei.livewallpaper.ripplestone"
"com.huawei.magazine"
# Magazine unlock. Downloads wallpapers for your lock screen.
"com.huawei.mirror" # [MORE INFO NEEDED]
# Huawei Mirror app.
# Mirror like "Glass" or "screen mirror" ?
# Mirror like "Glass"
"com.huawei.mirrorlink"
# Huawei mirrorlink implementation
# Used to connect your phone to a car (with https://mirrorlink.com/ support) in order to provide audio streaming, GPS navigation...
"com.huawei.music"
# Huawei Music app.
"com.huawei.parentcontrol"
# Parental controls functions.
@ -190,6 +261,9 @@ declare -a huawei=(
"com.huawei.phoneservice"
# HiCare (https://play.google.com/store/apps/details?id=com.huawei.phoneservice)
# Provides you common online services including customer services, issue feedback, user guides, service centers and self-service.
"com.huawei.scanner"
# AI Lens. Shop for objects that you take a picture of. This de-clutters the camera interface by removing the AI Lens button on the top left corner and does not break the AR Measure app.
"com.huawei.stylus.floatmenu"
# Floating menu with M-Pen feature.
@ -199,6 +273,10 @@ declare -a huawei=(
# Seems to be related to B2B (Business To Business) cloud stuff.
# https://www.huawei.com/en/press-events/news/2016/10/Cloud-Network-Synergy-Whitepaper
"com.huawei.tips"
# HUAWEI Feature Advisor
# Periodically gives you notifications on how to use certain features on your phone.
"com.huawei.trustagent" # [MORE INFO NEEDED]
# Smart unlock feature.
# Enables you to unlock your phone with a Bluetooth device, like a smart band.
@ -241,9 +319,24 @@ declare -a huawei=(
############################## ADVANCED DEBLOAT ##############################
#"com.hisi.mapcon"
# Provides wifi calling feature (call or text on Wi-Fi networks using your SIM card)
# NOTE: Instant messaging video/voice call does not use this "wifi calling" feature.
# Btw, you should use a E2EE messaging app like Signal/Session/Element(https://element.io/) instead of the non-secure wifi-calling feature
# provided by your carrier.
#"com.huawei.KoBackup"
# As of writing this, Huawei phones cannot be rooted.
# This Backup application is probably able to backup more than any other 3rd party backup app.
#"com.huawei.android.thememanager" # [MORE INFO NEEDED]
# Huawei Themes (https://play.google.com/store/apps/details?id=com.huawei.android.thememanager)
# Lets you use Huawei themes
# You should still be able to set wallapers without it. Can someone check?
#"com.huawei.aod" [MORE INFO NEEDED]
# Always On Display feature.
# Drain battery for nothing really useful.
# Drain battery (though not much on OLED screens) for nothing really useful.
# RedSkull23 says it's unsafe to remove it. Does it bootloop ?
#"com.huawei.android.internal.app" # [MORE INFO NEEDED]
@ -256,17 +349,27 @@ declare -a huawei=(
# DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER !
# You will maybe need this package for the recent apps feature to work (even if you have another launcher)
#"com.huawei.calculator"
# Huawei Calculator app.
#"com.huawei.calendar"
# Huawei Calendar app.
#"com.huawei.contacts"
# Huawei Contacts app
#"com.huawei.deskclock"
# Huawei Clock App.
#"com.huawei.photos"
# Huawei Gallery app.
# Note: The official camera app refuses to open photos in another gallery (you can't review your picture from the camera app)
#"com.android.mediacenter"
# Huawei music app. (Yeah they messed up with the package name)
#"com.huawei.screenrecorder"
# Huawei Screen recorder feature (with internal mic record toggle)
#"com.hisi.mapcon"
# Provides wifi calling feature (call or text on Wi-Fi networks using your SIM card)
# NOTE: Instant messaging video/voice call does not use this "wifi calling" feature.
# Btw, you should use a E2EE messaging app like Signal/Session/Element(https://element.io/) instead of the non-secure wifi-calling feature
# provided by your carrier.
#"com.huawei.hidisk"
# Huawei File Manager app.
@ -275,11 +378,18 @@ declare -a huawei=(
# HiSearch
# Allows you to search through settings, files, contacts and notes while keeping a record of your search history.
# Hi Search is really annonying because it's triggered as soon as you wipe down from the middle part of the home.
#"com.huawei.securitymgr" # [MORE INFO NEEDED]
# PrivateSpace
# Lets you store private information in a hidden space within your device that can only be accessed
# with your fingerprint or password.
# TODO: Data at rest encryption? If not, this is useless
# https://consumer.huawei.com/en/support/content/en-us00754246/
)
##################### DO NOT REMOVE THIS (will prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
# "com.huawei.systemmanager"
# Huawei System Manager app
# Manage apps behavior and authorize them to run (or not) in background.
# Manage apps behavior and authorize them to run (or not) in background.

View file

@ -32,7 +32,7 @@ declare -a lge=(
"com.lge.drmservice"
# DRM Service
# Use to support DRM content playback. It manages the DRM Client, which holds a particular type of information required to get a license key.
# Needed to read DRM content playback. It manages the DRM Client, which holds a particular type of information required to get a license key.
# REMINDER : DRM = all the things that restrict the use of proprietary hardware and copyrighted works.
# ==> https://en.wikipedia.org/wiki/Digital_rights_management
# ==> https://creativecommons.org/2017/07/09/terrible-horrible-no-good-bad-drm/
@ -475,8 +475,3 @@ declare -a lge=(
# Does not remove screen pinning feature.
# I don't know if this removes the floating windows feature that you have to enable with ADB (to make it look more like a desktop)
)
# TODO :
# Find the main Q-voice package.
# Add more packages.

View file

@ -6,7 +6,6 @@
# and I'm sure it's the good abbreviation but I don't know what V.P.L means !! It seems to refer to a special job for vendors.
declare -a amazon=(
"com.amazon.appmanager"
# Mobile Device Information Provider
# Seems related to Kindle
@ -418,7 +417,7 @@ declare -a misc=(
# Kind of GPS that helps you find Point of interest (POI) like hotels, restaurants, and car repair facilities from the AAA databases.
# NOTE : Youll have to sign up for an AAA membership to enjoy all of the features and functionality of the Android app.
# AAA = American Automobile Association
"com.aspiro.tidal.vpl" # for VPL mobiles/employees ?
"com.aspiro.tidal"
# Tidal Music (https://play.google.com/store/apps/details?id=com.aspiro.tidal)
@ -776,15 +775,12 @@ declare -a misc=(
# India News (https://play.google.com/store/apps/details?id=com.til.timesnews)
#"com.touchtype.swiftkey"
#"com.touchtype.swiftkey.res.overlay"
# Swiftkey Keyboard (https://play.google.com/store/apps/details?id=com.touchtype.swiftkey)
# Keyboard app developed by TouchType, a Microsoft subsidiary (https://en.wikipedia.org/wiki/SwiftKey)
# Sends "anonymous" to Microsoft.
# 4 Trackers + 11 Permissions : https://reports.exodus-privacy.eu.org/en/reports/com.touchtype.swiftkey/latest/
# NOTE : default keyboard on some Nokia phones
#"com.touchtype.swiftkey.res.overlay"
# Overlay for Swiftkey keyboard.
# REMINDER : A screen overlay in Android, also referred to as “Draw On Top”, allows an app to display content over another app
# NOTE : default keyboard on some Nokia and Huawei phones
"com.tracker.t"
# WTF is this ?? Given its name I think you can take the risk to delete it.
@ -817,7 +813,6 @@ declare -a misc=(
# UME Web Browser (https://play.google.com/store/apps/details?id=com.ume.browser.northamerica)
# Trackers and a LOT of permissions (https://reports.exodus-privacy.eu.org/en/reports/com.ume.browser.cust/latest/)
"com.vlingo.midas"
# Speech recognition app forthe personal assistant by Vlingo
# Vlingo : https://en.wikipedia.org/wiki/Vlingo
@ -887,6 +882,14 @@ declare -a misc=(
# Updater for the zdnex25's theme
# https://www.deviantart.com/zdunex25/gallery/26889741/themes
#"se.dirac.acs"
# Earphone audio quality improvement from the Swedish company Dirac.
# The technology relies on impulse and magnitude frequency response correction to deliver a more dynamic soundstage,
# even when connected to budget headphones.
# The goal is to improve overall sound clarity and bass fidelity while correcting the frequency response so as to deliver a flat curve.
# Can be disabled in Settings/Additional settings/Headphone and audio effects (to try to hear the difference)
# https://www.androidcentral.com/heres-how-dirac-enabling-xiaomi-create-better-audio-products
"tv.fubo.mobile.vpl"
# fuboTV (https://play.google.com/store/apps/details?id=tv.fubo.mobile)
# Lets you Watch live Sports, TV Shows, Movies & News
@ -971,4 +974,118 @@ declare -a misc=(
#
# NOTE : Trustonic TEE (called Kinibi) is used in Samsung, Vivo, Oppo, Xiaomi, Meizu and LG devices.
##### SIMALLIANCE (now Trusted Connectivity Alliance) #####
# Non-profit trade association that aims at creating secure, open and interoperable mobile services.
# https://trustedconnectivityalliance.org/introduction/
#"org.simalliance.openmobileapi.uicc1terminal"
#"org.simalliance.openmobileapi.uicc2terminal"
# Open Mobile API ("interface") to access UICC secure elements
# UICC stands for Universal Integrated Circuit Card.
# It is a the physical and logical platform for the USIM and may contain additional USIMs and other applications.
# (U)SIM is an application on the UICC.
# https://bluesecblog.wordpress.com/2016/11/18/uicc-sim-usim/
# Good read: https://arxiv.org/ftp/arxiv/papers/1601/1601.03027.pdf
# Note2: The term SIM is widely used in the industry and especially with consumers to mean both SIMs and UICCs.
# https://www.justaskgemalto.com/us/what-uicc-and-how-it-different-sim-card/
#"org.simalliance.openmobileapi.service"
# Smart Card Service
#
# The SmartCard API is a reference implementation of the SIMalliance Open Mobile API specification that enables Android applications
# to communicate with Secure Elements, (SIM card, embedded Secure Elements, Mobile Security Card or others)
# https://github.com/seek-for-android/pool/wiki/SmartcardAPI
# Safe to remove if you think you don't need this
)
declare -a mediatek=(
#"com.mediatek" # [MORE INFO NEEDED]
# Mediatek is a Taiwanese chipset manufacturer.
# Can someone share the apk? This package name is really weird.
# It is most likely a set of general APIs for accessing general mediatek functionalities.
# Can someone share the apk?
"com.mediatek.atmwifimeta"
# wifi data logger you don't want.
#"com.mediatek.callrecorder" # [MORE INFO NEEDED]
# This is not the kind of feature expected from a Soc company.
# If you remove this I guess you will not be able to record your calls from the stock dialer
# Can someone share the apk and verify this?
"com.mediatek.engineermode"
# Enigneer mode you can access by dialing a secret code (*#*#3646633#*#* on some Xiaomi phones for instance)
# It enables you to access to debug/logged data and some hidden firmware settings.
#"com.mediatek.gpslocationupdate" # [MORE INFO NEEDED]
# I wonder if it is really only a logging app.
# Can someone try to remove it and use a GPS app to see it still works?
# Can someone share the apk? (from a Xiaomi/Huawei phone)
#"com.mediatek.location.lppe.main"
# LPPE = LTE Positioning Protocol enhancements/extensions (LTE = "4G")
# Positioning and assistance protocol between E-SMLC (mobile location center) and UE (User Equipement = phone)
# https://www.gpsworld.com/wirelessexpert-advice-positioning-protocol-next-gen-cell-phones-11125/
# I don't know the app has the permission to read SMS
#"com.mediatek.ims" # [MORE INFO NEEDED]
# Mediatek's implementation of IMS
# https://www.programmersought.com/article/50164530665/
# Note: IMS is an open industry standard for voice and multimedia communications over packet-based IP networks (Volte/VoIP/Wifi calling).
# Unless you use VolTE (wifi calling) or RCS from Google or your carrier you don't need IMS.
# I'm also not sure to understand the purpose of this package because there already is "com.google.android.ims" on the phone.
# Can someone remove this package and test if IMS still works?
"com.mediatek.mdmconfig" # [MORE INFO NEEDED]
# Mobile Device Management (MDM) allows companys IT department to reach inside your phone in the background, allowing them to ensure
# your device is secure, know where it is, and remotely erase your data if the phone is stolen.
# It's a way to ensure employees stay productive and do not breach corporate policies
# You should NEVER have a MDM tool on your personal phone. Never.
# https://blog.cdemi.io/never-accept-an-mdm-policy-on-your-personal-phone/
# This package probably isn't a MDM tool on its own but you definitively don't need it on your phone.
# Can someone share the apk?
"com.mediatek.mtklogger"
# Logs debug data. Has a lot of permissions and run in background all the time.
# Don't keep useless apps: reduce the attack surface
# Vulnerability found in this app in 2016: https://nvd.nist.gov/vuln/detail/CVE-2016-10135
#"com.mediatek.nlpservice" # [MORE INFO NEEDED]
# Mediatek Network Location Provider
# Provides periodic reports on the geographical location of the device. Each provider has a set of criteria under which it may be used.
# For example, some providers require GPS hardware and visibility to a number of satellites others require the use of
# the cellular radio, or access to a specific carrier's network, or to the internet.
# They may also have different battery consumption characteristics or monetary costs to the user.
#
# I don't really understand why you would need this as there is already one in 'com.google.android.gms'
# I wonder if NLP can be replaced by https://github.com/microg/UnifiedNlp
# I suggest to test if you get a better signal/battery performance with Mediatek NLP, if not you can get rid of it.
#"com.mediatek.omacp"
# omacp = OMA Client Provisioning. It is a protocol specified by the Open Mobile Alliance (OMA).
# Configuration messages parser. Used for provisioning APN settings to devices via SMS
# In my case, it was automatic and I never needed configuration messages.
# Maybe it's useful if carriers change their APN. But you still can change the config manually, it's not difficult.
# Dunno why Mediatek handles this kind of things. Safe to remove. At worst, you'll need to manually config your APN.
# Note: OMACP can be abused. Be careful:
# https://research.checkpoint.com/2019/advanced-sms-phishing-attacks-against-modern-android-based-smartphones/
# https://www.zdnet.com/article/samsung-huawei-lg-and-sony-phones-vulnerable-to-rogue-provisioning-messages/
"com.mediatek.providers.drm"
# DRM provider (actually Beep Science is the MediaTeks default DRM vendor)
# You probably need this if you want to watch Netflix & others stuff in high-res
# REMINDER : DRM = all the things that restrict the use of proprietary hardware and copyrighted works.
# ==> https://en.wikipedia.org/wiki/Digital_rights_management
# ==> https://creativecommons.org/2017/07/09/terrible-horrible-no-good-bad-drm/
# ==> https://fckdrm.com/
# ==> http://www.info-mech.com/drm_flaws.html
"com.mediatek.wfo.impl"
# According to olorin (https://www.olorin.me/2019/09/08/debloating-the-umidigi-f1-play/)
# it's the MediaTeks default fingerprint app (and he removed it)
# Can someone confirm what does this package exactly do?
# Remember that any preinstalled apps you don't actually need just increase the surface attack.
# Vulnerability found in 2019: https://nvd.nist.gov/vuln/detail/CVE-2019-15368
# Any app co-located on the device could modify a system property through an exported interface without proper authorization.
)

View file

@ -317,7 +317,10 @@ declare -a motorola=(
#"com.motorola.VirtualUiccPayment"
# Virtual UICC Payment
# UICC stands for Universal Integrated Circuit Card. It is a new generation SIM (Subscriber Identification Module) which can have multiple applications on it.
# UICC stands for Universal Integrated Circuit Card.
# It is a the physical and logical platform for the USIM and may contain additional USIMs and other applications.
# (U)SIM is an application on the UICC.
# https://bluesecblog.wordpress.com/2016/11/18/uicc-sim-usim/
# I guess this package provides support for NFC payement.
# Note: The term SIM is widely used in the industry and especially with consumers to mean both SIMs and UICCs.
# https://www.justaskgemalto.com/us/what-uicc-and-how-it-different-sim-card/
@ -334,7 +337,7 @@ declare -a motorola=(
)
##################### DO NOT REMOVE THIS (will prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.motorola.android.providers.settings"
# Removal causes bootloop. Which is fairly common with settings providers.

View file

@ -11,13 +11,13 @@ declare -a nokia=(
# ww = Worldwide users / cn = china / tw = Taiwan / id = Indonesia
# I don't understand why there are so much overlay stuff.
# REMINDER : A screen overlay in Android, also referred to as “Draw On Top”, allows an app to display content over another app
# overlay : https://budhdisharma.medium.com/rro-runtime-resource-overlay-in-android-aosp-e094be17f4bc
# https://source.android.com/devices/architecture/rros
# blt = Bell Telephone Laboratories owned by Nokia (https://en.wikipedia.org/wiki/Bell_Labs)
"com.android.partnerbrowsercustomizations.btl.s600ww.overlay"
# Add Nokia pinned bookmarks in your chromium based browser
# btl = Bell Telephone Laboratories
"com.android.providers.calendar.overlay.base.s600ww" # [MORE INFO NEEDED]
# "com.android.providers.calendar" is necessary to sync stock Calendar app and lets it work correctly.
@ -48,23 +48,22 @@ declare -a nokia=(
# Another overlay for APN widget this time. Seems useless to me
# REMINDER : APN means Access Point Name and must be configured with carrier values in order your device could acess carrier network.
##### WHAT IS EVENWELL #####
# Evenwell/FiH is chinese company. Specifically, they are a subsidary of the massive Foxconn group that manufactures consumer electronics for sale
# around the world.
##### WHAT IS EVENWELL? #####
# Evenwell/FiH is chinese company. Specifically, they are a subsidary of the massive Foxconn group that manufactures
# consumer electronics for sale around the world.
# You should read the Foxxconn wikipedia page and especially the Controversies section (https://en.wikipedia.org/wiki/Foxconn#Controversies)
# Evenwell apps was caught to send personnal data to chinese servers
# https://arstechnica.com/gadgets/2019/03/hmd-admits-the-nokia-7-plus-was-sending-personal-data-to-china/
#
#
# Majority of evenwell app are useless background apps.
"com.evenwell.AprUploadService"
"com.evenwell.AprUploadService" # [MORE INFO NEEDED]
"com.evenwell.AprUploadService.data.overlay.base"
"com.evenwell.AprUploadService.data.overlay.base.s600ww"
"com.evenwell.AprUploadService.data.overlay.base.s600id"
# Apr Upload Service ????
"com.evenwell.autoregistration"
"com.evenwell.autoregistration" # [MORE INFO NEEDED]
"com.evenwell.autoregistration.overlay.base"
"com.evenwell.autoregistration.overlay.base.s600id"
"com.evenwell.autoregistration.overlay.base.s600ww"
@ -79,12 +78,12 @@ declare -a nokia=(
"com.evenwell.batteryprotect.overlay.base"
"com.evenwell.batteryprotect.overlay.base.s600id"
"com.evenwell.batteryprotect.overlay.base.s600ww"
"com.evenwell.batteryprotect.overlay.d.base.s600e0"
# Battery protect is advertised to improve battery performance but in practice it drains your battery and kills apps to aggressively.
# https://dontkillmyapp.com/nokia
# Nokia decided to stop using this app-killer in the future
# https://www.androidpolice.com/2019/08/27/nokia-hmd-phones-disable-evenwell-background-process-app-killer/
"com.evenwell.bboxsbox" # [MORE INFO NEEDED]
"com.evenwell.bboxsbox.app"
# ????
@ -101,7 +100,6 @@ declare -a nokia=(
# Surely used to push new carrier internet/MMS settings automatically
# Maybe it's useful if carriers change their APN... but you still can change it manually, it's not difficult.
"com.evenwell.custmanager" # [MORE INFO NEEDED]
"com.evenwell.custmanager.data.overlay.base"
"com.evenwell.custmanager.data.overlay.base.s600id"
@ -123,7 +121,7 @@ declare -a nokia=(
"com.evenwell.DbgCfgTool.overlay.base.s600ww"
# Debug config tool ?
"com.evenwell.defaultappconfigure.overlay.base.s600ww"
"com.evenwell.defaultappconfigure.overlay.base.s600ww" # [MORE INFO NEEDED]
# ????
"com.evenwell.DeviceMonitorControl" # [MORE INFO NEEDED]
@ -136,11 +134,11 @@ declare -a nokia=(
# Overlay for email app
"com.evenwell.factorywizard"
"com.evenwell.factorywizard.overlay.base"
"com.evenwell.factorywizard.overlay.base.s600ww"
# Most likely a configuration setup after a factory reset (and/or after first boot)
# Guides you through the basics of setting up your device.
"com.evenwell.foxlauncher.partner" # [MORE INFO NEEDED]
# Partner Launcher Customization
# Related to the Nokia launcher
@ -185,6 +183,7 @@ declare -a nokia=(
# ????
"com.evenwell.phone.overlay.base.s600ww"
"com.evenwell.phone.overlay.base"
# Overlay for the dialer app
"com.evenwell.PowerMonitor"
@ -196,7 +195,8 @@ declare -a nokia=(
#"com.evenwell.powersaving.g3"
#"com.evenwell.powersaving.g3.overlay.base.s600id"
#"com.evenwell.powersaving.g3.overlay.base.s600ww"
# Does nokia powersaving is effective ?
#"com.evenwell.powersaving.g3.overlay.d.base.s600e0"
# Is nokia powersaving really effective?
"com.evenwell.providers.downloads.overlay.base.s600ww"
"com.evenwell.providers.downloads.ui.overlay.base.s600ww"
@ -212,12 +212,11 @@ declare -a nokia=(
# and provide a way to share data with other apps. They encapsulate the data, and provide mechanisms for defining data security
# Source : https://developer.android.com/guide/topics/providers/content-providers.html
"com.evenwell.pushagent"
"com.evenwell.pushagent.overlay.base"
"com.evenwell.pushagent.overlay.base.s600id"
"com.evenwell.pushagent.overlay.base.s600ww"
# Surely related to push notification for Nokia apps (only ?)
# Surely related to push notifications for Nokia apps (only ?)
"com.evenwell.retaildemoapp"
"com.evenwell.retaildemoapp.overlay.base"
@ -226,11 +225,11 @@ declare -a nokia=(
# Nokia retail demonstration mode
# https://en.wikipedia.org/wiki/Demo_mode
"com.evenwell.screenlock.overlay.base.s600ww" # [MORE INFO NEEDED]
# Overlay for the screenlock
"com.evenwell.settings.data.overlay.base.s600ww" # [MORE INFO NEEDED]
"com.evenwell.settings.data.overlay.base" # [MORE INFO NEEDED]
"com.evenwell.settings.data.overlay.base.s600ww"
# Overlay related to settings
"com.evenwell.SettingsUtils"
@ -240,7 +239,9 @@ declare -a nokia=(
# See https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/9#note_369056538
"com.evenwell.SetupWizard"
"com.evenwell.SetupWizard.overlay.base"
"com.evenwell.setupwizard.btl.s600ww.overlay"
"com.evenwell.SetupWizard.overlay.d.base.s600ww"
"com.evenwell.SetupWizard.overlay.base.s600ww"
# It's the basic configuration wizard that drives you through first boot and guides you through the basics of setting up your device.
@ -277,9 +278,10 @@ declare -a nokia=(
# IFAA = Chinas Internet Finance Authentication Alliance
# Chinese organisation that aim to achieve a more simple way to verify the identity of human (like passwordless authentication)
"com.hmdglobal.datago"
"com.hmdglobal.datago.overlay.base"
"com.hmdglobal.datago.overlay.base.s600ww" # [MORE INFO NEEDED]
# Most likely sends diagnostic data to HMD (Company behin Nokia)
# Just an overlay ? Weird.
# Sends diagnostic data to HMD (Company behin Nokia) ?
"com.hmdglobal.support"
# My Phone (https://play.google.com/store/apps/details?id=com.hmdglobal.support)

View file

@ -118,7 +118,11 @@ declare -a oneplus=(
"net.oneplus.forums"
# OnePlus Community (https://play.google.com/store/apps/details?id=net.oneplus.forums)
# Lets you access to OnePlus forum... wah that great !
# Lets you access to OnePlus forum... wah that great !
"com.oneplus.opsports"
# Cricket Scores (https://play.google.com/store/apps/details?id=com.oneplus.opsports)
# Lets you access and follow cricket teams and tournaments
"net.oneplus.odm"
"net.oneplus.odm.provider"

View file

@ -5,6 +5,16 @@ declare -a samsung=(
"android.autoinstalls.config.samsung"
# Samsung's implementation of the "necessary apps" that need to be downloaded upon first setting up the device.
"com.aura.oobe.samsung"
# AppCloud
# It offers the "Aura out-of-the-box experience" (OOBE)
# It's an app who promotes some other apps (and encourages you to install them)
# Developped by IronSource (an Israeli advertising company)
# https://en.wikipedia.org/wiki/IronSource
# https://aura.ironsrc.com/tools/drive-app-downloads/
# https://arxiv.org/pdf/2010.10088.pdf
# Has way too much permissions.
"com.cnn.mobile.android.phone.edgepanel" # (Samsung-exclusive)
# CNN Edge panel. Twitter trends, and news from CNN.
@ -37,13 +47,8 @@ declare -a samsung=(
# cards and membership cards to 1D red laser and Image based scanners prevalent at nearly every retail store and checkout stand around the world.
# Mobeam is a 3-party (https://mobeam.com/)
"com.osp.app.signin"
# Samsung Account app
# Lots of trackers in this app
# Has a huge list of permissions. It is a essential app for a lof of samsung apps (removed by default in this list)
"com.samsung.app.jansky"
# Multi-lines settings.
# Multi-lines settings
# Lets you have multiple virtual phone numbers.
# This feature is only available on some US carrier-locked devices
# https://www.reddit.com/r/GalaxyS8/comments/6esiub/tmobile_s8s8_multiline_setting_is_awesome/did2pur/
@ -68,6 +73,12 @@ declare -a samsung=(
# AirCommandManager manager
# Gives you access to signature S Pen features. You can access Air command anytime you are using your phone by simply taking out the S Pen.
# https://www.samsung.com/global/galaxy/what-is/air-command/
"com.samsung.android.airtel.stubapp"
# My Airtel Stub app
# My Airtel is a customer service app designed for Airtel subscribers in Sri Lanka
# This pasckage isn't the app itself but only a stub.
# It's basically a non-functional empty shell which often only redirect you to the PlayStore to download the full app
"com.samsung.android.allshare.service.mediashare"
# Samsung Allshare service (now called SmartView).
@ -124,6 +135,11 @@ declare -a samsung=(
# Samsung's adaptive super AMOLED screen optimizes the color range, saturation, and sharpness of the picture depending on what you're watching or doing.
# This package lets you to manually customize the color settings to match your preferences.
"com.samsung.android.app.dressroom"
# Samsung Wallpapers
# Wallaper manager from the launcher. You can remove it and still set a wallpaper from the Gallery.
# Has INTERNET permission and... ACCESS_MEDIA_LOCATION
"com.samsung.android.app.episodes"
# Samsung story album (https://www.samsung.com/in/support/mobile-devices/what-is-story-album-application-in-samsung-galaxy-s4/)
@ -161,7 +177,7 @@ declare -a samsung=(
# You can debloat this and still create hotspot.
"com.samsung.android.app.mirrorlink"
# Used to connect your phone to a car in order to provide audio streaming, GPS navigation...
# Used to connect your phone to a car (with https://mirrorlink.com/ support) in order to provide audio streaming, GPS navigation...
# https://www.samsung.com/us/support/answer/ANS00048972/
"com.samsung.android.app.news"
@ -274,6 +290,13 @@ declare -a samsung=(
# Biometric authentication service that can be used to sign in to websites and apps in your mobile.
# https://www.samsung.com/global/galaxy/apps/samsung-pass/
"com.samsung.android.aware.service"
# Samsung Quick Share
# Use Wifi direct to share files between 2 Samsung Galaxy phones (it's only for Samsung Galaxy users)
# Quick Share also lets you temporarily upload files to Samsung Cloud
# There are better alternatives (compatible with all Android devices and free and open-source):
# For instance: https://f-droid.org/packages/com.genonbeta.TrebleShot/
"com.samsung.android.bbc.bbcagent" # [MORE INFO NEEDED]
# BBCAgent (B. B. Container Agent?)
# Collects device information and manages installation/uninstallation of trusted apps in KNOX containers
@ -292,7 +315,10 @@ declare -a samsung=(
# Bixby (Samsung intelligence assistant)
# Enable or Disable access to S-Voice or Bixby voice controls.
# This does not prevent access to other voice-controlled apps, only the Samsung-provided ones.
"com.samsung.android.bixby.agent" # Bixby voice
# Removing this will disable the bixby hardware key without breaking Bixby itself.
"com.samsung.android.bixby.agent.dummy" # Bixby Voice Stub
"com.samsung.android.bixby.es.globalaction"
"com.samsung.android.bixby.plmsync"
@ -318,7 +344,7 @@ declare -a samsung=(
"com.samsung.android.dlp.service"
# SamsungDLPService (KNOX). Old feature. Was replaced by SDP (Sensitive Data Protection)
# Data Loss Prevention (DLP) feature
# Good security feature but only works with Samsung apps.
# SDP is good because it allows to have encrypted data at rest (= decryption keys not in RAM) even when your phone is on.
# https://docs.samsungknox.com/admin/whitepaper/kpe/sensitive-data-protection.htm
# https://docs.samsungknox.com/knox-platform-for-enterprise/admin-guide/sensitive-data-protection.htm
@ -338,6 +364,11 @@ declare -a samsung=(
# Stub for car mode
# REMINDER : Stub = https://stackoverflow.com/questions/10648280/what-is-stub-and-aidl-for-in-java
"com.samsung.android.dynamiclock"
# Samsung Dynamic Lock
# Automatically changes your Lock screens wallpaper
# https://www.samsung.com/us/support/answer/ANS00084210/
"com.samsung.android.gearoplugin"
# Gear S Plugin (https://play.google.com/store/apps/details?id=com.samsung.android.gearoplugin)
# Plugin for com.samsung.android.app.watchmanager
@ -358,6 +389,13 @@ declare -a samsung=(
# This package has no permission so I wonder how it can update anything.
# See com.samsung.android.aremoji
"com.samsung.android.fast"
# Samsung Secure Wi-Fi
# Samsung VPN service powered by McAfee
# https://www.pcmag.com/news/mcafee-samsung-partner-on-built-in-security-vpn-for-galaxy-s9
# https://www.ctrl.blog/entry/what-is-samsung-secure-wi-fi.html
# Note: If you need to use a VPN use something more trustworthy*
"com.samsung.android.fmm"
# Find My Mobile
# Tracks down your device when it gets lost.
@ -383,6 +421,10 @@ declare -a samsung=(
# Game Tuner is advanced setting app. It enables you to change the resolution and frames per second settings
# in mobile games that require tuning for different Android devices, and thereby control heat generation and battery drain.
"com.samsung.android.homemode"
# Daily Board (https://play.google.com/store/apps/details?id=com.samsung.android.homemode)
# Show a slideshow of your favourite pictures while your device is charging.
"com.samsung.android.hmt.vrshell"
# Gear VR Shell
# Gear VR : https://360samsungvr.com/portal/content/about_samsung_vr
@ -391,6 +433,11 @@ declare -a samsung=(
# Gear VR Service
# See above.
"com.samsung.android.icecone"
# Keyboard Content Center
# Lets you choose media content (e.g. stickers and music) from the Galaxy Keyboard.
# This app always runs in background.
"com.samsung.android.intelligenceservice2"
# It seems that this package is a kind of spyware. Very difficult to find information about this.
# Some people say it's linked to Carrier IQ (which is a carrier rootkit for the NSA).
@ -399,6 +446,18 @@ declare -a samsung=(
# This package also have very stranges permissions : READ_PLACE / WRITE_PLACE. I couldn't find any explaination on the web.
# So either it's a useless samsung package either it's a spyware. I delete it and I didn't notice anything bad.
"com.samsung.android.ipsgeofence"
# IPSGeofence
# IPS = Indoor Positioning System.
# The concept of Indoor Positioning System designates a network of connected devices within a building making it possible
# to trace the position of another device and therefore potentially of a person in environments where GPS systems are
# not efficient .
# Geofencing is a technique which consists in activating preconfigured actions when a device enters a
# certain geographical area. For example, a user can use it to automatically turn on Wi-Fi and home lights when their smartphone
# is detected nearby.
# In short, if enabled, this app will track your location everywhere and all the time!
# https://www.comparitech.com/blog/vpn-privacy/what-is-geofencing-privacy/
"com.samsung.android.keyguardwallpaperupdator"
# Lets you customize your Samsung device with different images (provided by Samsung) on the lock screen.
@ -408,6 +467,11 @@ declare -a samsung=(
# NOTE : You shouldn't give your phone to a child. That bad !
# https://ifstudies.org/blog/a-smartphone-will-change-your-child-in-ways-you-might-not-expect-or-want
"com.samsung.android.knox.attestation"
# KNOX Attestation
# Lets you check the integrity of a Samsung Android device by connecting to a Samsung Attestation server.
# https://docs.samsungknox.com/admin/whitepaper/kpe/attestation.htm
"com.samsung.android.knox.containeragent" # Older version of "com.sec.knox.containeragent2" ?
"com.samsung.android.knox.containercore"
# KNOX Work profile/space
@ -437,6 +501,12 @@ declare -a samsung=(
# and easily by simply connecting an accessory, without having to install additional applications.
# https://developer.samsung.com/codelab/SDC18-experiences/Galaxy-Friends
"com.samsung.android.mdecservice" # [MORE INFO NEEDED]
# Samsung Call & Text
# Not 100% sure but by looking at the recompiled java code it seems the apps provides a way to receive call and SMS on
# Samsung accessories. In any case it is only usful for Samsung IoT stuff.
# Embeded Google Firebase analytics
"com.samsung.android.mdm"
# MDMApp (Mobile Device Management app)
# Used to monitor and manage remotely mobile devices.
@ -446,8 +516,22 @@ declare -a samsung=(
# https://developer.samsung.com/tech-insights/knox/mobile-device-management
"com.samsung.android.mdx"
# Link to Windows Service
# Works in conjunction with the Microsoft Your Phone app and activates a connection to your PC on Windows
"com.samsung.android.mdx.kit"
# MDE Service Framework
# MDE = Multi Devices Experience (https://www.samsung.com/levant/multi-device-experience/)
# Framework for IoT stuff.
# Asks for a LOT of dangerous permissions
# Interacts with "com.samsung.android.mobileservice" and "com.osp.app.signin"
"com.samsung.android.mdx.quickboard"
# Media & Devices feature
# Kind of a hub for managing medias played on smart devices (e.g play music to 2 Bluetooth devices simultaneously with Dual audio)
# https://www.samsung.com/latin_en/support/mobile-devices/media-and-device-feature/
# Has a lot of permissions and asks for ACESS_COARSE_LOCATION
# Removing this package do not prevent you to connect your phones to smart devices.
"com.samsung.android.mobileservice"
# Samsung Experience Service (https://play.google.com/store/apps/details?id=com.samsung.android.mobileservice)
@ -523,6 +607,10 @@ declare -a samsung=(
# ShortcutBNR
# Related to smartSwitch Samsung Cloud features
"com.samsung.android.sdm.config"
# Configuration Update for Samsung Deskphone Manager (SDM)
# SDM allows a user to synchronize your smartphone with a IP deskphone
"com.samsung.android.slinkcloud"
# Samsung Cloud Gateway
# NEEDED FOR Scloud app
@ -581,6 +669,11 @@ declare -a samsung=(
# Live Message enables you to draw your own animated GIFs or emojis.
# https://www.samsung.com/global/galaxy/what-is/live-message/
"com.samsung.android.mfi"
# Galaxy Widget (https://play.google.com/store/apps/details?id=com.samsung.android.mfi)
# Provide you with quick access to information without requiring you to open the app that manages this information
# https://www.samsung.com/ie/support/mobile-devices/what-are-widgets-and-how-do-i-add-them-to-my-android-smartphone-or-tablet/
"com.samsung.android.service.peoplestripe"
# People Edge
# Gives you immediate access to your favorite contacts from the edge of your phone.
@ -603,6 +696,10 @@ declare -a samsung=(
# Enable you to mirror screen your phone to a TV
# https://www.samsung.com/us/apps/smart-view-2/
"com.samsung.android.spayfw"
# Samsung Pay Framework needed for Samsung Pay
# See below
"com.samsung.android.spay"
# Samsung Pay (https://play.google.com/store/apps/details?id=com.samsung.android.spay)
# Samsung Pay is a mobile payment and digital wallet service by Samsung Electronics that lets users make payments using compatible phones
@ -611,9 +708,10 @@ declare -a samsung=(
# NOTE : Samsung Pay is KNOX dependant and will never work again if you root your phone.
# FYI : Your data are sold (https://www.sammobile.com/news/samsung-pay-new-privacy-policy-your-data-sold/)
"com.samsung.android.spayfw"
# Samsung Pay Framework needed for Samsung Pay
# See above
"com.samsung.android.spaymini"
# Samsung Pay Mini
# Same service as Samsung Pay but for online payments only and is available on all compatible android devices (not only Samsung devices)
# https://www.samsung.com/in/samsung-pay/mini/
"com.samsung.android.spdfnote"
# Write on PDF (https://play.google.com/store/apps/details?id=com.samsung.android.spdfnote)
@ -689,9 +787,13 @@ declare -a samsung=(
"com.samsung.android.weather"
# Samsung Weather
# Lets you see updates on the weather at all times, specific to your current location.
# You can also check the weather in other areas even
# Dependency: "com.sec.android.daemonapp"
"com.samsung.android.wellbeing"
# Digital Welbeing (https://play.google.com/store/apps/details?id=com.google.android.apps.wellbeing)
"com.samsung.android.forest"
# Digital Wellbeing (https://play.google.com/store/apps/details?id=com.google.android.apps.wellbeing)
# is a feature which shows apps dashboard through which one can see how much time any application opened and
# also swiping to different screens allows you to see breakdowns by day, by hour and by app.
@ -773,22 +875,39 @@ declare -a samsung=(
# Knox Analytics Uploader
# Sends analytcs to Samsung
"com.samsung.knox.keychain"
# KNOX TIMA Keychain
# Used to store secrets in a TrustZone (hardware-based secure world)
# It's a great thing but third-party developers have no or very limited direct access to it. So you don't really need this
# package if you use the default selection of this script and/or don't use any Samsung app relying on KNOX.
# Very interesting write-up: https://medium.com/@nimronagy/arm-trustzone-on-android-975bfe7497d2
# FYI: Don't worry, your device password/fingerprint hash is securly stored in Android TEE
"com.samsung.knox.knoxtrustagent"
# Knox Quick Access allows users to access the Knox Workspace container using wearables such as the Galaxy Gear S2.
"com.samsung.knox.kss" # [MORE INFO NEEDED]
# Knox Keyguard. Not much more information
# Knox Keyguard. Not much more information
"com.samsung.android.knox.pushmanager" # [MORE INFO NEEDED]
# KnoxPushManager
"com.samsung.knox.securefolder"
# Knox Secure Folder (https://play.google.com/store/apps/details?id=com.samsung.knox.securefolder)
# Create a secure space on your device to encrypt and store your private data and apps.
# https://www.samsungknox.com/en/solutions/personal-apps/secure-folder
# NOTE : The key used to encrypt the files is not derived from the password you use to unlock the secure folder
# NOTE: The key used to encrypt the files is not derived from the password you use to unlock the secure folder
# but rather from a key stored in the hardware that is set in the factory.
"com.samsung.knox.securefolder.setuppage"
# Provides the setup process when opening secure folder (com.samsung.knox.securefolder) for the first time
"com.samsung.logwriter"
# LogWriter
# Writes data in a logs SQL database.
# Runs at boot and is triggered when an download from an Iron Source (Iron Source is an Israeli advertising company)
# app is completed (probably "com.aura.oobe.samsung")
"com.samsung.mdl.radio"
# Samsung Milk Music (discontinued in 2016)
# It was a freemium online music streaming service, with music streams and a recommendation engine powered by Slacker Radio.
@ -828,6 +947,12 @@ declare -a samsung=(
"com.samsung.safetyinformation"
# Some safety information telling you not to put your phone in your eyes (it's not a joke)
"com.samsung.SMT"
# Samsung Text To Speech
# Generate synthesized audio output from a text
# Works with applications such as S Voice and translation apps that require Text-To-Speech (TTS) functionality
# https://galaxystore.samsung.com/detail/com.samsung.SMT
"com.samsung.storyservice"
# Samsung StoryService
# Create stories in the Gallery from your pictures and videos.
@ -951,9 +1076,6 @@ declare -a samsung=(
"com.sec.android.app.magnifier"
# Lets you use your device as a magnifying glass making it easier to read any small font or expand the details of any object, for example.
#"com.sec.android.app.myfiles"
# Samsung file manager app (https://play.google.com/store/apps/details?id=com.sec.android.app.myfiles)
"com.sec.android.app.mt"
# The Mobile tracker is a security feautre in your device that if someone inserts a new SIM card in your device the device will automatically
# sends the SIM contact number to specified recipients to help you locate and recover you device.
@ -990,10 +1112,6 @@ declare -a samsung=(
"com.sec.android.app.scloud" # [APK_NEEDED]
# I guess it's the core of Samsung scloud.
#"com.sec.android.app.simsettingmgr"
# SIM card manager.
# Contains configuration and settings for handling dual SIM (give a SIM an icon, a name, and so on)
"com.sec.android.app.SecSetupWizard"
# Samsung Setup Wizard
# The first time you turn your device on, a Welcome screen is displayed. It guides you through the basics of setting up your device.
@ -1085,7 +1203,9 @@ declare -a samsung=(
# Needed to use Smart Switch. See above.
"com.sec.android.easyonehand"
# Samsung Easy One Hand mode (replaced by One Hand Operation + : com.samsung.android.sidegesturepad)
# Samsung Easy One Hand mode
# Allows you to temporarily scale down the display size of your screen for easier control of your phone with just one hand.
# https://www.samsung.com/au/support/mobile-devices/using-one-handed-mode/
"com.sec.android.fido.uaf.asm"
# Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords.
@ -1213,8 +1333,8 @@ declare -a samsung=(
"com.sec.enterprise.knox.attestation"
# KNOX Attestation
# Lets you check the health of a Samsung Android device,
# https://docs.samsungknox.com/dev/knox-attestation/index.htm
# Lets you check the integrity of a Samsung Android device by connecting to a Samsung Attestation server.
# https://docs.samsungknox.com/admin/whitepaper/kpe/attestation.htm
"com.sec.enterprise.knox.cloudmdm.smdms"
# Knox Enrollment Service
@ -1233,9 +1353,8 @@ declare -a samsung=(
# I couldn't find information about this package. No permissions asked. It's quite strange.
#
# Mobile device management (MDM) is a type of security software used by an IT department to monitor employees' mobile devices.
#
# IMO this package is related to KNOX. The term "entreprise" in the package name strengthens me in my view.
# Maybe it is related : https://developer.samsung.com/tech-insights/knox/mobile-device-management
# KNOX-dependent.
# https://developer.samsung.com/tech-insights/knox/mobile-device-management
"com.sec.enterprise.mdm.vpn"
# Entreprise VPN service
@ -1368,14 +1487,14 @@ declare -a samsung=(
"com.skms.android.agent"
# Samsung KMS agent service a client application for Android devices to support eSE-based (embedded secure element) mobile-NFC Services.
# https://developer.samsung.com/eSE
# https://developer.samsung.com/ese/overview.html
# KMS = Key Management System
# KNOX feature (https://en.wikipedia.org/wiki/Samsung_Knox)
"com.sec.usbsettings"
# USBSettings
# Hidden settings. Lets you choose from ADB, MTP, RNDIS, ACM, DM (dial *#0808# to open)
# Run at startup
# Runs at startup
"com.monotype.android.font.samsungone"
# Samsung One font
@ -1386,11 +1505,11 @@ declare -a samsung=(
"com.wsomacp"
# omacp = OMA Client Provisioning. It is a protocol specified by the Open Mobile Alliance (OMA).
# Configuration messages parser. Used for provisioning APN settings to Samsung devices via SMS
# In my case, it was automatic and I never needed configuration messages. I'm pretty sure that in France this package is useless.
# Maybe it's useful if carriers change their APN. But you still can change it manually, it's not difficult.
# In my case, it was automatic and I never needed configuration messages.
# Maybe it's useful if carriers change their APN. But you still can change the config manually, it's not difficult.
# Keep in mind these special types of SMS can be abused :
# https://www.csoonline.com/article/3435729/sms-based-provisioning-messages-enable-advanced-phishing-on-android-phones.html
# https://www.zdnet.fr/actualites/les-smartphones-samsung-huawei-lg-et-sony-vulnerables-a-des-attaques-par-provisioning-39890045.htm
# https://research.checkpoint.com/2019/advanced-sms-phishing-attacks-against-modern-android-based-smartphones/
# https://www.zdnet.com/article/samsung-huawei-lg-and-sony-phones-vulnerable-to-rogue-provisioning-messages/
"com.wssnps"
# Samsung Backup and restore Manager (on Samsung Galaxy S7)
@ -1405,10 +1524,18 @@ declare -a samsung=(
######################### ADVANCED DEBLOAT #########################
#"com.osp.app.signin"
# Samsung Account app
# Lots of trackers in this app.
# Has a huge list of permissions. It is an essential app for a lot of samsung apps (which will be removed with the default selection in this list)
# Settings apps will crash if removed on Android 11/OneUI 3.0 (https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/39)
# This issue happens only if you are running Android 11. If not, you can can (and should) remove this package!
#"com.policydm"
# Samsung security policy update (https://play.google.com/store/apps/details?id=com.policydm)
# Updatable policy files designed to increase android security and detect malicious behaviour.
# Has nothing to do with OTA updates or Android Security patches.
# Can be removed without issue (https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/15)
# See "com.samsung.android.spdclient" for more information.
#"com.samsung.advp.imssettings"
@ -1486,11 +1613,18 @@ declare -a samsung=(
# Handle Face recognition unlock
# https://kp-cdn.samsungknox.com/b60a7f0f59df8f466e8054f783fbbfe2.pdf
#"com.samsung.android.biometrics"
# Provide biometric support
#"com.samsung.android.biometrics.app.setting"
# Biometric settings
#"com.samsung.android.bluelightfilter"
# Blue ligth filter
# You should use it, it's great
#"com.samsung.android.contacts"
#"com.samsung.android.app.contacts"
# Samsung contacts app
# Safe to debloat if you use another contacts app
# NOTE : If you do, you will no longer be able to access Contacts from the Samsung dialer app.
@ -1543,6 +1677,19 @@ declare -a samsung=(
# Needs confirmation but removing this package could change SELinux mode (enforcing by default)
# https://source.android.com/security/selinux
#"com.samsung.android.tadownloader"
# Seems to check if a trusted application needs an update and download it.
# This package probably do more than that. There is a LOT of lines of code (obfuscated obviously)
# It was used to push an update to fix a security issue with the fingerprint sensor in 2019.
# https://libredd.it/r/galaxys10/comments/bcy93f/adb_how_to_get_the_fingerprint_update_pushed_to/
# Seems to be only used for biometrics stuff
# There is Samsung analytics inside. You may want to remove it if you don't use biometrics authentification.
#"com.samsung.android.tapack.authfw" # [MORE INFO NEEDED]
# AuthFw TaPack
# Authentification Framework for Trusted Application? (don't know what 'Pack' could mean)
# Hard to know what this app really do. Seems to be an assets provider used by com.samsung.android.tadownloader
#"com.samsung.android.video"
# Samsung Video Player
# https://galaxystore.samsung.com/prepost/000003980724?appId=com.samsung.android.video
@ -1590,7 +1737,7 @@ declare -a samsung=(
#"com.samsung.sdm.sdmviewer" # [MORE INFO NEEDED]
# Lets you view installed updates?
#"com.sansumg.SMT"
#"com.samsung.SMT"
# Samsung TTS (Text-to-speech)
# Works with applications such as S Voice; translation apps, GPS that require Text-To-Speech (TTS) functionality and reads back text
# https://galaxystore.samsung.com/detail/com.samsung.SMT
@ -1602,6 +1749,16 @@ declare -a samsung=(
# https://www.t-mobile.com/support/coverage/wi-fi-calling-from-t-mobile
# VoLTE/IMS is needed for this to work (see com.sec.imsservice)
#"com.samsung.android.app.dofviewer"
# Live focus
# Allows you to adjust the level of background blur in the camera app.
# From the Samsung Gallery, you can also select from a range of background blur shapes to add characters and shapes to a photo.
# https://www.samsung.com/global/galaxy/what-is/live-focus/
#"com.sec.android.app.fm"
#Samsung Radio
#Listen to FM radio stations
#"com.sec.android.app.launcher"
# Samsung One UI Home launcher (homescreen) (https://play.google.com/store/apps/details?id=com.sec.android.app.launcher)
# It is samsung Touchwiz default launcher
@ -1610,6 +1767,9 @@ declare -a samsung=(
#"com.sec.android.app.clockpackage"
# Samsung clock
#"com.sec.android.app.myfiles"
# Samsung file manager app (https://play.google.com/store/apps/details?id=com.sec.android.app.myfiles)
#"com.sec.android.app.personalization" # [MORE INFO NEEDED]
# Without a doubt this package is involved in personalization of something but tt's hard to find what.
# 2 permissions : READ_PHONE_STATE and CHANGE_PHONE_STATE
@ -1654,6 +1814,17 @@ declare -a samsung=(
#"com.sec.android.gallery3d.panorama360view"
# Let you see panoramic photos in the samsung Gallery.
#"com.sec.android.inputmethod"
#"com.samsung.android.honeyboard" # New default keyboard on newer Samsung phones
# Samsung keyboard
# WARNING: do NOT remove the samsung keyboard if you don't have another keyboard with direct boot mode support or
# you'll be stuck at boot (no keyboard to unlock the phone)
# https://developer.android.com/training/articles/direct-boot
# FYI: Simple Keyboard and OpenBoard are 2 FOSS keyboard with direct boot support
# https://f-droid.org/packages/org.dslul.openboard.inputmethod.latin/
# https://f-droid.org/packages/rkr.simplekeyboard.inputmethod/
# WARNING: Do NOT remove this package with root if it wasn't first uninstalled with the non-root method.
#"com.sec.android.mimage.photoretouching"
# Samsung Photo Editor
# Disabling this will disable the inbuilt photo editor accessed via the stock gallery.
@ -1687,7 +1858,7 @@ declare -a samsung=(
# Software update, works along "com.wssyncmldm"
#"com.sec.android.wallpapercropper2"
# Samsung Wallpaper. Needed for choosing a wallpaper.
# Samsung Wallpaper. Needed to set a wallpaper on the launcher.
# Note : it is technically possible to change the wallpaper and then delete this package.
# Used wallpaper are stored in /data/data/com.sec.android.wallpapercropper2/
@ -1751,19 +1922,25 @@ declare -a samsung=(
)
##################### DO NOT REMOVE THIS (will prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.samsung.android.applock"
# Samsung App Lock
# Lets you lock your app (Settins > Advanced fuctions > App lock)
# You should lock your apps storing private data (provides data at rest encryption when your phone is locked)
#"com.samsung.android.SettingsReceiver"
# Samsung overlay of AOSP Settings. It has 39 permissions. Handles interactions with features controled by the settings.
#"com.samsung.android.timezone.data_P" # [MORE INFO NEEDED]
#"com.samsung.android.timezone.data_Q" # [MORE INFO NEEDED]
# Stores timezone data?
#"com.samsung.android.timezone.updater"
#"com.samsung.android.timezone.autoupdate_O"
# Samsung Time Zone Updater
# Used to automatically detect appropriate timezone
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE
#"com.samsung.android.app.soundpicker"
# Lets you select a sound for alarm/ringtone
@ -1787,6 +1964,15 @@ declare -a samsung=(
# Provides access to filters (when you swipe right from the camera app)
# WARNING : Samsung camera will crash if this package is deleted.
#"com.samsung.knox.keychain" # [MORE INFO NEEDED]
# Knox Key Chain
# Allows apps to sign data using system-wide private key/certificate pairs.
# So, even though the Android Keystore provides per-app access to credentials, the Android KeyChain runs as a system user,
# and hence, credentials stored through the Android KeyChain are associated with the system ID instead of a user ID.
# https://docs.samsungknox.com/dev/knox-sdk/about-keystores.htm
# This is only useful for apps using the TIMA Keystore. The big question I'm trying to anwser is:
# Which are using this except Samsung apps? Can an android dev help on this?
#"com.samsung.networkui"
# User interface of the Mobile Network settings
@ -1795,12 +1981,9 @@ declare -a samsung=(
# It kills rarely used apps running in background.
# Surely linked to Smart Manager. I think it can have a very bad impact on battery performance if deleted. I'm testing.
#"com.sec.android.inputmethod"
# Samsung keyboard
# Note : used for unlocking the phone after a reboot. Third-parties keyboards cannot be used here.
# DO NOT REMOVE THIS. NEVER !
#"com.sec.android.app.simsettingmgr"
# SIM card manager.
# Contains configuration and settings for handling dual SIM (give a SIM an icon, a name, and so on)

View file

@ -21,9 +21,13 @@ declare -a xiaomi=(
# FYI: WPS is a chinese closed-source software. It's as bad as Microsoft office (privacy-wise)
# https://www.wps.com/privacy-policy
"com.android.backup"
# Xiaomi Backup and Restore feature (mislead package name).
# This package was replaced by 'com.miui.backup' on newer models.
"com.android.midrive"
# Mi Drive
# Bad package name choice. It is indeed a closed-source Xiaomi application.
# Misleading package name. It is indeed a closed-source Xiaomi application.
# Allow for cloud storage (on Mi Cloud) and syncing across multiple Android devices.
"com.autonavi.minimap"
@ -93,7 +97,8 @@ declare -a xiaomi=(
"com.milink.service"
# UniPlay Service
# I couldn't find info about it but I have the feeling it is related to some wireless/remote control.
# MIUI screen casting service.
# If removed, you'll have to use Android's native casting services which can be accessed through a 3rd party app.
"com.mipay.wallet"
"com.mipay.wallet.id"
@ -140,10 +145,19 @@ declare -a xiaomi=(
# It the app that scan an app before installing it
# NOTE : A vulnerability was found in 2019 : https://research.checkpoint.com/2019/vulnerability-in-xiaomi-pre-installed-security-app/
"com.miui.hybrid"
# Quick Apps
# It's basically an app which shows you ads and tracks you...
# Funny thing, Xiaomi's Quick Apps was reportedly being blocked by Google Play Protect.
# https://www.androidpolice.com/2019/11/19/xiaomi-quick-apps-flagged-blocked-google-play-protect/
#
# Reverse engineering of the app :
# https://medium.com/@gags.gk/reverse-engineering-quick-apps-from-xiaomi-a1c9131ae0b7
# Spoiler : you really should delete this package.
"com.miui.hybrid.accessory"
# Xiaomi Hybrid Accessory
# I don't know what the purpose of this package.
# Safe to remove according to a lot of people.
# Smartphone accessories support for Quick Apps (com.miui.hybrid)
"com.miui.micloudsync"
# Mi Cloud Sync
@ -152,13 +166,18 @@ declare -a xiaomi=(
"com.miui.miwallpaper"
# Mi Wallpaper
"com.miui.nextpay"
"com.miui.nextpay" # [MORE INFO NEEDED]
# Next Pay
# ????
# ???
"com.miui.qr"
# MUI Qr code scanner
"com.miui.smsextra"
# Dependency for MIUI Messaging (MIUI SMS app misleadingly called com.android.mms)
# You can remove it if you don't use the default SMS app (and you should)
# Run in background once the phone is booted, has access to internet and interact with Cloud Manager
"com.miui.touchassistant"
# Quick Ball/Touch Assistant
# Touch assistant with a combination of five unique shortcuts which aimed to give easy and quick access to functions and apps you use frequently.
@ -182,9 +201,18 @@ declare -a xiaomi=(
# Mi Wallpaper Carousel (https://play.google.com/store/apps/details?id=com.miui.android.fashiongallery)
# Display new photos on your lock screen every time you turn ON your screen.
"com.miui.antispam"
"com.miui.antispam" # [MORE INFO NEEDED]
# MIUI Antispam
# I didn't find any info about this package.
# spam phone numbers filter (blacklist).
# Suspicious analytics inside and has access to internet. Cloud backup possible.
# At quick glance it is not a private antispam app.
# Can someone check what data are collected/transfered?
#"com.miui.backup"
# MIUI Backup
# Local Backup/Restore feature (Settings > Additional Settings > Local backups)
# It seems this app can communicate with Mi Drop
# This app has 73 permissions and can obviously do everything it want.
"com.miui.bugreport"
# Mi Feedback
@ -221,24 +249,24 @@ declare -a xiaomi=(
"com.miui.fm"
# MIUI FM Radio app
"com.miui.fmservice"
# FM Radio Service
# Needed by com.miui.fm to work correctly
"com.miui.gallery"
# MIUI Gallery app.
# Simple Gallery is way better, ligther and open-source (https://f-droid.org/en/packages/com.simplemobiletools.gallery.pro/)
"com.miui.hybrid"
# Quick Apps
# It's basically an app which show you ads and tracks you...
# Funny thing, Xiaomi's Quick Apps was reportedly being blocked by Google Play Protect.
# https://www.androidpolice.com/2019/11/19/xiaomi-quick-apps-flagged-blocked-google-play-protect/
#
# Reverse engineering of the app :
# https://medium.com/@gags.gk/reverse-engineering-quick-apps-from-xiaomi-a1c9131ae0b7
# Spoiler : you really should delete this package.
"com.miui.klo.bugreport"
# KLO Bugreport
# This app registers system failures and Android applications errors and sends bugs to Xiaomi servers.
"com.miui.miservice"
# Services & feedback
# Used to send feedbacks (and data) to Xiaomi. Integration in Wechat
# Seems to be able to launch 'Baidu location service'
# Has too much permisions, run in background all the time and can be removed without issue
"com.miui.msa.global"
# Main System Ads
# Analyzation of user behaviors to show you ads. Yeah Xiaomi phones has ads...
@ -251,6 +279,12 @@ declare -a xiaomi=(
# Seems to be App Vault on some phones (https://play.google.com/store/apps/details?id=com.mi.android.globalpersonalassistant)
# https://c.mi.com/thread-1017547-1-0.html
"com.miui.phrase" # [MORE INFO NEEDED]
# Frequent Phrases
# Not sure to understand how exactly it can be used but it is supposed to predict phrases you'll want to write.
# I don't know why it isn't handled in the keyboard app. This seems to be something else.
# In any case it has access to internet, is linked to MiCloud and contains a weird CloudTelephonyManager java class in his code.
"com.miui.player"
# Mi Music (https://play.google.com/store/apps/details?id=com.miui.player)
@ -258,7 +292,7 @@ declare -a xiaomi=(
# Xiaomi provider for MI Weather app (com.miui.weather)
# REMINDER : Content providers helps an application manage access to data stored by itself, stored by other apps,
# and provide a way to share data with other apps. They encapsulate the data, and provide mechanisms for defining data security
# Source : https://developer.android.com/guide/topics/providers/content-providers.html
# Source: https://developer.android.com/guide/topics/providers/content-providers.html
"com.miui.screenrecorder"
# Mi Screen Recorder
@ -270,9 +304,14 @@ declare -a xiaomi=(
# It leaks system version, device model, exact firmware build + some few mysterious IDs
"com.miui.systemAdSolution"
# Analyzation of user behaviors to show you ads. Yeah Xiaomi phones has ads...
# Spyware who analyse user behavior for targeted ads. Yeah Xiaomi phones has ads...
# https://www.theverge.com/2018/9/19/17877970/xiaomi-ads-settings-menu-android-phones
"com.miui.sysopt"
# SysoptApplication
# Strange app with no permission. By looking at the code it seems to be a kind of debug app.
# The app doesn't seem to do intersting stuff.
"com.miui.translation.kingsoft"
# Translation stuff by Kingsoft (https://en.wikipedia.org/wiki/Kingsoft)
@ -307,6 +346,14 @@ declare -a xiaomi=(
# Lets you upload and sync your files on the (Mi) Cloud.
# Always run in background
"com.wapi.wapicertmanager"
# WAPI Certificates Manager
# WAPI = WLAN Authentication Privacy Infrastructure (https://en.wikipedia.org/wiki/WLAN_Authentication_and_Privacy_Infrastructure
# It was designed to replace WEP and become the new Standard but it was't rejected by the ISO (International Organization for Standardization)
# It is currently only used in China
# This app most likely manage certificates (they are used to make sure you're not connecting to a rogue Access Point)
# Note: If you live in China, you most likely want to keep it.
"com.miui.weather2"
# Mi Weather app
@ -320,6 +367,20 @@ declare -a xiaomi=(
"com.mi.android.globalpersonalassistant"
# MI Vault aka the "assistant" you open swiping left from MI Home
"com.mi.android.globalminusscreen"
# App Vault (https://play.google.com/store/apps/details?id=com.mi.android.globalminusscreen)
# Google Feed replica from Xiaomi
# Completely useless app which displays all the trending stories from the web + a bunch of other stupid things.
"com.mi.AutoTest"
# Assemble test
# Hidden app used by the manufacturer to test various hardware components
"com.xiaomi.mi_connect_service"
# MiConnectService
# Handles connection to IoT stuff
# Seems to be linked to Mi Home (com.xiaomi.smarthome)
"com.mi.global.bbs"
# Mi Community (https://play.google.com/store/apps/details?id=com.mi.global.bbs)
# Xiaomi Forum app
@ -362,6 +423,10 @@ declare -a xiaomi=(
"com.sohu.inputmethod.sogou.xiaomi"
# Sogou keyboard for chinese only.
"com.wt.secret_code_manager"
# Hidden app which associates an action (display logging info) to a secret code.
# This secret codes have to be dialed from the Xiaomi dialer.
"com.xiaomi.ab"
# MAB
# Has a LOT of permissions. If you try to desinstall it, Xiaomi will reinstall after reboot.
@ -374,7 +439,7 @@ declare -a xiaomi=(
"com.xiaomi.channel"
# Mi Talk
# Mi instant messaging app that lets you do practically the same thing as Whatsapp.
# NOTE : You should use Signal or Wire instead Whatsapp/Mi Talk for more privacy.
# NOTE: You should use Signal or Wire instead Whatsapp/Mi Talk for more privacy.
"com.xiaomi.gamecenter.sdk.service"
# Game Service
@ -438,6 +503,7 @@ declare -a xiaomi=(
"com.xiaomi.micloud.sdk"
# Mi Cloud sdk
# sdk = Software development kit
# Seems to be a dependency for "com.miui.gallery" (the MIUI may not work if you remove this package)
"com.xiaomi.mirecycle"
# Mi Recycle
@ -455,8 +521,77 @@ declare -a xiaomi=(
# I believe it is a provider for the settings but I can't confirm (I don't have a Xiaomi device)
# A lot of people debloat this but I'd like to know more about this one.
"com.xiaomi.upnp"
# UpnpService
# UPnP = Universal Plug and Play
# Its a protocol that lets UPnP-enabled devices on your network automatically discover and communicate with each other
# For exemple it works with the Xiaomi Network Speaker (and probably a lot more Xiaomi IoT stuff)
# UPnP have a lot of security issue and you proably should disable it on your router.
# https://nakedsecurity.sophos.com/2020/06/10/billions-of-devices-affected-by-upnp-vulnerability/
# This package is the Xiaomi implementation on Android (no AOSP support)
"com.xiaomi.simactivate.service"
# Xiaomi SIM Activation Service
# Only used to activate the Find My Device feature
# For the activation to work you need to send a international SMS to China.
# Your carrier may block this by default and/or you'll probably need to pay extra for this.
"com.xiaomi.smarthome"
# Mi Home (https://play.google.com/store/apps/details?id=com.xiaomi.smarthome)
# IoT. Lets you control with Xiaomi Smart Home Suite devices.
"com.xiaomi.xmsfkeeper"
# Xiaomi Service Framework Keeper
# Logger service for 'com.xiaomi.xmsf'
################################## ADVANCED DEBLOAT ##################################
#"android.ui.overlay.ct" # [MORE INFO NEEDED]
#"android.telephony.overlay.cmcc"
#"com.android.mms.overlay.cmcc"
#"com.android.settings.overlay.cmcc"
#"com.android.systemui.overlay.cmcc"
#"com.android.networksettings.overlay.ct"
#"com.android.systemui.overlay.ct"
# Very likely to be a bunch of overlay theme from the China Mobile Communications Corporation (CMCC) / China Telecom (CT)
# Can someone remove them and see what exactly happens?
#"com.miui.wmsvc" # [MORE INFO NEEDED]
# WMService
# Run at boot, has access to internet + GPS
# I quickly looked at the decompiled code and I saw some unsanitized SQL inputs which is BAD! (vulnerable to SQL injection)
# Try to get your android unique Google advertising ID from Google Play Services.
# Feed and launch the spying/analytics app "com.miui.hybrid"
# This app doesn't seems to do essential things except for tracking.
# WARNING: Some people said removing this app causes bootloop, others said it's not.
# I'd like someone to check this. I think it should be okay if you remove all other linked Xiaomi crapwares (like the script does)
#"com.xiaomi.xmsf" # [MORE INFO NEEDED]
# Xiaomi Service Framework
# Set of API's that Xiaomi apps can used (to put it simply a lot of Xiaomi apps used the same functions which are centralized here)
# I first thought removing this will absolutely break everything but it seems not.
# I don't know the situation now but in 2016 this app constantly tried to do tcp connections in background
# Removing this big boy will definitively break Mi Cloud and Mi account (and all features needing these 2 things) but you should
# be okay if you don't use most of Xiaomi apps (what's probably the case if you use this script)
#
# Can someone try to remove this and give feedback?
# Check if alarms (from Xiaomi Clock & 3-party apps) still work if the phone is in sleep-mode.
"com.wingtech.standard" # [MORE INFO NEEDED]
# WTStandardTest
# Wingtech is a chinese Original Design Manufacturer (ODM) involved in the manufacturing of Xiaomi devices.
# There is very high chances this app is only a hardware conformance test app used during production process
# you don't need as an end-user.
# Can someone share the apk just to be 100% sure?
#"com.xiaomi.location.fused" # [MORE INFO NEEDED]
# FusedLocationProvider
# It uses a combination of a devices GPS, Wi-Fi and internal sensors to improve geolocation performance.
# The thing is there is also a Fused Location Provider embeded in 'com.google.android.gms'
# This Xiaomi location provider obviously has as much tracking as the Google one but if you can remove one tracking source
# it's still better than nothing.
# Can someone try to remove this package and give feedback please?
#"com.android.browser"
# Mi Browser
# You really should use something else.
@ -501,26 +636,78 @@ declare -a xiaomi=(
# I don't have the .apk but it is obviously related to "com.android.thememanager"
# Can someone test with this package too?
#"com.fido.asm"
# FIDO UAF Autenthicator-Specific Module.
# See 'com.huawei.fido.uafclient' for FIDO explaination.
# The UAF Authenticator-Specific Module (ASM) is a software interface on top of UAF authenticators which gives a standardized way for FIDO UAF clients
# to detect and access the functionality of UAF authenticators and hides internal communication complexity from FIDO UAF Client.
# Source: https://fidoalliance.org/specs/fido-uaf-v1.0-ps-20141208/fido-uaf-asm-api-v1.0-ps-20141208.html
#"com.fido.xiaomi.uafclient"
# UAF client for FIDO.
# Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords.
# https://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-glossary.html
# https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-overview-v2.0-rd-20170927.html
#
# The UAF protocol is designed to enable online services to offer passwordless and multi-factor security by allowing users to register their device
# to the online service and using a local authentication mechanism such as iris or fingerprint recognition. .
# https://developers.google.com/identity/fido/android/native-apps
# Safe to remove if you don't use password-less authentification to access online servics.
#"com.miui.audiomonitor" # [MORE INFO NEEDED]
# My guess is this is a feature allowing to control the sound of multiples apps.
# It's just a guess based on existing Xiaomi devices features. Can someone check this?
#"com.miui.calculator"
# MIUI Calculator (https://play.google.com/store/apps/details?id=com.miui.calculator)
#"com.miui.face"
# MIUI Biometric
# Face Unlock feature
#"com.miui.freeform"
# Floating window
# I think the name app is pretty straightforward
# You can make apps appear above other applications
# https://forum.xda-developers.com/android/miui/floating-windows-miui-12-t4125661
#"com.miui.home"
# MIUI System Launcher
# It's basically the home screen, the way icons apps are organized and displayed.
# DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER !
#"com.xiaomi.miplay_client" # [MORE INFO NEEDED]
# MiPlay Client
# Provides support for Miracast?
# https://en.wikipedia.org/wiki/Miracast
# My guess is it provides the Wireless Display feature (Settings - Connection & sharing - Cast)
# Can someone confirm?
#"com.mi.globallayout" # [MORE INFO NEEDED]
# Home Layout
# It most likely handles the main screen layout (grid size, apps placement...)
#
# Some people removed this without issue. Can someone try and give feedback?
#"com.miui.mishare.connectivity"
# Mi Share
# Unified file sharing service between Xiaomi, Oppo, Realme and Vivo devices using Wifi-direct
# Settings -> Connection & sharing -> Mi Share
# FYI : Wifi direct allows 2 devices to establish a direct Wi-Fi connection without requiring a wireless router.
# FYI : Wifi direct allows 2 devices to establish a direct Wi-Fi connection without requiring a wireless router.
#"com.miui.misound"
# Earphones (it's the name of the app)
# Provides the sound's section in Settings and is needed for the equalizing
# Some people removed this package but I personaly don't think it's worth it. This package isn't really an issue
# (no dangerous permissions and does not run in background all the time)
# You can still remove it. You'll be just fine if you really don't need it.
#"com.miui.notification" # [MORE INFO NEEDED]
# Handles notifications in MIUI (badly according to reviews). Does it only handles notifications for Xiaomi apps?
# Embeds a tracking statistics service
# (usage tracking : `id`,`pkgName`,`latestSentTime`,`sentCount`,`avgSentDaily`,`avgSentWeekly)
# Can someone remove this package just to see if it breaks all notifications for all apps? It doesn't seem so.
# If you try don't forget to check if the settings app still works fine.
#"com.miui.powerkeeper" # [MORE INFO NEEDED]
# Battery and Performance
# (aggressive) MIUI power management (https://dontkillmyapp.com/xiaomi)
# That's a weird app that also contains a DRM Manager and a service related to Cloud Backup
# Has obviously a lot of dangerous permissions.
# I guess removing this package will decrease the battery performance. Is it that noticeable? Can someone try?
#"com.miui.zman" # [MORE INFO NEEDED]
# Mi Secure sharing
@ -538,6 +725,11 @@ declare -a xiaomi=(
#"com.mi.android.globalFileexplorer"
# Xiaomi Files Manager (https://play.google.com/store/apps/details?id=com.mi.android.globalFileexplorer)
#"com.xiaomi.bluetooth"
#"com.xiaomi.bluetooth.overlay"
# MIUI Bluetooth Bluetooth Control.
# You need to keep this if you want the bluetooth to work
#"com.xiaomi.bsp.gps.nps"
# GPS location
# I think bsp = board system package (https://en.wikipedia.org/wiki/Board_support_package)
@ -548,38 +740,105 @@ declare -a xiaomi=(
# FIX, LOSE, RECOVER, START, STOP
# It's safe to remove if you really want to.
#"com.miui.core" # [MORE INFO NEEDED]
# MIUI SDK
# It is obiously needed for MIUI to work correctly. FYI, it manages the MIUI Analytics service.
# Will cause bootloop if removed.
# I read you can freeze it without issue. I'm... a bit dubious about this.
# If someone want to try et report the result:
# adb shell am force-stop com.miui.core && adb shell pm disable-user com.miui.core && adb shell pm clear com.miui.core
#"com.miui.guardprovider"
# Guard Provider security app
# The app includes 3 different antivirus brands built in that the user can choose (Avast, AVL and Tencent).
# This app notably perform a virus scan of any apps you want to install.
# A serious vulnerability was found in 2019
# Worth reading : https://research.checkpoint.com/2019/vulnerability-in-xiaomi-pre-installed-security-app/
# You may want to remove this app from a privacy stance.
#"com.miui.systemui.carriers.overlay"
# MIUI User interface for MCC/MNC configuration
#"com.miui.systemui.devices.overlay"
#"com.miui.systemui.overlay.devices.android"
# MIUI User interface for 'device' settings?
#"com.xiaomi.discover"
# System Apps Updater
# WARNING : Disable System app updates (but not firmware updates)
#"com.xiaomi.powerchecker"
# Power Detector
# Security> Battery> Activity Control.
# Detects abnormal power usage by apps (not all. Some Xiaomi apps are whitelisted)
# Needed for 'com.miui.powerkeeper' to work.
#"com.xiaomi.miplay_client" # [MORE INFO NEEDED]
# MiPlay Client
# Provides support for Miracast?
# https://en.wikipedia.org/wiki/Miracast
# My guess is it provides the Wireless Display feature (Settings - Connection & sharing - Cast)
# Can someone confirm?
)
####################### DO NOT REMOVE THIS (will prevent core stuff to work) #######################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.android.updater"
# Mi Updater
# Provide system updates
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE !
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE!
#"com.lbe.security.miui"
# Permission manager
# Lets you monitor apps permission requests.
#"com.xiaomi.finddevice"
# Find My Device feature (in the Settings)
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE !
# Enables you to locate your lost phone and erase your data remotely.
# Your phone needs to be connected to internet (Wifi/mobile data) for this feature to work.
# REMOVING THIS PACKAGE WILL BOOTLOOP YOUR DEVICE!
#
# NOTE : I don't have a Xiaomi phone on hand anymore but maybe only disabling it will work : adb shell 'pm disable-user com.xiaomi.finddevice'
# Can someone try ?
# NOTE : You cannot disable it via adb
# According some sources, disabling MIUI optimizations in the Developer
# settings and removing the apk file in a custom recovery does not cause a
# bootloop, but I didn't test this.
#"com.miui.global.packageinstaller"
# The security check / virus scan which runs after a package installation
# Uninstalling it does not cause a bootloop
# Package installation still works fine
#"com.miui.securitycenter"
# MIUI Security app
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE !
# Provides "protection and optimization tools"
# App lock, Data usage, Security scan, Cleaner, Battery saver, Blocklist and other features.
# This package is mostly the front-end (UI).
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE!
#
# NOTE : I don't have a Xiaomi phone on hand anymore but maybe only disabling it will work : adb shell 'pm disable-user com.miui.securitycenter'
# Can someone try ?
# Can someone try?
#"com.miui.securitycore"
# Core features of the "com.miui.securitycenter"
# Removing com.miui.securitycenter will cause your device to bootlop so I guess you should not remove this package neither.
# (Can someone try just in case?)
#"com.miui.system"
# Called 'MIUI System Launcher' but it's not the launcher itself (com.miui.home is)
# This package is another core MIUI app you can't remove. It centralize a lot of default configuration values
#"com.miui.rom"
# Core package of MIUI
# DO NOT REMOVE THIS
#"com.miui.securityadd"
# Related to the MIUI Security app
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE !
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE!
#
# NOTE : I don't have a Xiaomi phone on hand anymore but maybe only disabling it will work : adb shell 'pm disable-user com.miui.securityadd'
# Can someone try ?
# Can someone try ?
#"com.xiaomi.misettings"
# Xiaomi Settings app