1+ #! /system/bin/sh
2+ # Huawei Bloatware Remover for Shizuku
3+ # Remove unwanted pre-installed apps from Huawei devices
4+ # Compatible with Shizuku terminal environment
5+ # Version: 1.0
6+
7+ # Colors for better visibility (if terminal supports them)
8+ RED=' \033[0;31m'
9+ GREEN=' \033[0;32m'
10+ YELLOW=' \033[1;33m'
11+ BLUE=' \033[0;34m'
12+ NC=' \033[0m' # No Color
13+
14+ # Function to print colored text
15+ print_colored () {
16+ local color=$1
17+ local text=$2
18+ printf " ${color}${text}${NC} \n"
19+ }
20+
21+ # Function to print header
22+ print_header () {
23+ echo " =================================================="
24+ print_colored $BLUE " Huawei Bloatware Remover for Shizuku"
25+ print_colored $BLUE " Version 1.0"
26+ echo " =================================================="
27+ echo " "
28+ print_colored $YELLOW " WARNING: This script will remove applications from your device."
29+ print_colored $YELLOW " Always create a backup before proceeding."
30+ echo " "
31+ }
32+
33+ # Function to check if we're running in Shizuku environment
34+ check_environment () {
35+ if [ -z " $SHIZUKU_SERVER_VERSION " ] && [ " $( id -u) " != " 2000" ]; then
36+ print_colored $RED " Warning: This script is designed for Shizuku environment."
37+ print_colored $YELLOW " Make sure you're running this through Shizuku terminal."
38+ echo " "
39+ read -p " Continue anyway? (y/n): " choice
40+ case " $choice " in
41+ y|Y) ;;
42+ * ) exit 1 ;;
43+ esac
44+ fi
45+ }
46+
47+ # Function to create backup
48+ create_backup () {
49+ print_colored $BLUE " Creating backup of installed packages..."
50+ BACKUP_FILE=" /sdcard/huawei_backup_$( date +%Y%m%d_%H%M%S) .txt"
51+ pm list packages > " $BACKUP_FILE "
52+ if [ $? -eq 0 ]; then
53+ print_colored $GREEN " Backup created: $BACKUP_FILE "
54+ else
55+ print_colored $RED " Failed to create backup!"
56+ exit 1
57+ fi
58+ }
59+
60+ # Huawei bloatware packages categorized by risk level
61+ SAFE_PACKAGES="
62+ com.huawei.appmarket:Huawei AppGallery
63+ com.huawei.browser:Huawei Browser
64+ com.huawei.calculator:Huawei Calculator
65+ com.huawei.camera:Huawei Camera
66+ com.huawei.compass:Compass app
67+ com.huawei.desktop.explorer:File Manager
68+ com.huawei.gameassistant:Game Assistant
69+ com.huawei.gamebox:Game Center
70+ com.huawei.health:Huawei Health
71+ com.huawei.himovie:Huawei Video
72+ com.huawei.hmusic:Huawei Music
73+ com.huawei.magazine:Magazine Unlock
74+ com.huawei.mirror:Mirror app
75+ com.huawei.notepad:Notepad
76+ com.huawei.parentcontrol:Parental Control
77+ com.huawei.scanner:AI Scanner
78+ com.huawei.screenrecorder:Screen Recorder
79+ com.huawei.search:Huawei Search
80+ com.huawei.tips:Tips app
81+ com.huawei.translator:Translator
82+ com.huawei.vassistant:Voice Assistant
83+ com.huawei.wallet:Huawei Wallet
84+ com.huawei.weather:Weather app
85+ com.huawei.works:Docs app
86+ com.huawei.android.chr:User Experience Program
87+ com.huawei.android.karaoke:Karaoke feature
88+ com.huawei.android.thememanager:Theme Manager
89+ com.huawei.bd:Big Data service
90+ com.huawei.hiaction:HiAction automation
91+ com.huawei.hicard:HiCard service
92+ com.huawei.hifolder:HiFolder
93+ com.huawei.hitouch:HiTouch
94+ com.huawei.livewallpaper.paradise:Live wallpapers
95+ com.huawei.motionservice:Motion service
96+ com.huawei.nearby:Huawei Share
97+ com.huawei.stylus:Stylus support
98+ com.google.android.apps.docs:Google Drive
99+ com.google.android.apps.photos:Google Photos
100+ com.google.android.music:Google Play Music
101+ com.google.android.videos:Google Play Movies
102+ com.google.android.youtube:YouTube
103+ com.facebook.katana:Facebook
104+ com.facebook.orca:Facebook Messenger
105+ com.instagram.android:Instagram
106+ com.netflix.mediaclient:Netflix
107+ com.spotify.music:Spotify
108+ com.twitter.android:Twitter
109+ com.whatsapp:WhatsApp
110+ "
111+
112+ CAUTION_PACKAGES="
113+ com.huawei.android.launcher:Huawei Launcher
114+ com.huawei.contacts:Contacts app
115+ com.huawei.deskclock:Clock app
116+ com.huawei.gallery:Gallery app
117+ com.huawei.mms:Messages app
118+ com.huawei.phoneservice:Phone app
119+ com.huawei.android.internal.app:Internal apps
120+ com.huawei.fastapp:Quick App Center
121+ com.huawei.intelligent:HiAssistant
122+ com.huawei.powergenie:Power Genie
123+ com.google.android.gm:Gmail
124+ com.google.android.googlequicksearchbox:Google Search
125+ "
126+
127+ DANGEROUS_PACKAGES="
128+ com.huawei.android.hwaps:Huawei Mobile Services
129+ com.huawei.hwid.core:Huawei ID Core
130+ com.huawei.systemserver:System Server
131+ com.huawei.android.pushagent:Push service
132+ com.huawei.hwid:Huawei ID
133+ com.huawei.systemmanager:System Manager
134+ com.google.android.gms:Google Play Services
135+ "
136+
137+ # Function to remove packages
138+ remove_packages () {
139+ local packages=" $1 "
140+ local category=" $2 "
141+ local count=0
142+ local failed=0
143+
144+ print_colored $BLUE " Removing $category packages..."
145+
146+ echo " $packages " | while IFS=' :' read -r package desc; do
147+ if [ -n " $package " ] && [ " $package " != " " ]; then
148+ echo " Removing: $desc ($package )"
149+
150+ # Try uninstalling first
151+ pm uninstall --user 0 " $package " 2> /dev/null
152+ if [ $? -eq 0 ]; then
153+ print_colored $GREEN " ✓ Uninstalled: $package "
154+ count=$(( count + 1 ))
155+ else
156+ # If uninstall fails, try disabling
157+ pm disable-user --user 0 " $package " 2> /dev/null
158+ if [ $? -eq 0 ]; then
159+ print_colored $YELLOW " ⚠ Disabled: $package "
160+ count=$(( count + 1 ))
161+ else
162+ print_colored $RED " ✗ Failed: $package "
163+ failed=$(( failed + 1 ))
164+ fi
165+ fi
166+ fi
167+ done
168+
169+ echo " "
170+ print_colored $GREEN " Processed packages in $category category"
171+ echo " "
172+ }
173+
174+ # Function for interactive removal
175+ interactive_removal () {
176+ print_colored $BLUE " === INTERACTIVE PACKAGE REMOVAL ==="
177+ echo " "
178+
179+ print_colored $GREEN " SAFE packages (recommended to remove):"
180+ echo " $SAFE_PACKAGES " | grep -v ' ^$' | while IFS=' :' read -r package desc; do
181+ if [ -n " $package " ]; then
182+ echo " • $desc "
183+ fi
184+ done
185+ echo " "
186+
187+ read -p " Remove SAFE packages? (y/n): " choice
188+ if [ " $choice " = " y" ] || [ " $choice " = " Y" ]; then
189+ remove_packages " $SAFE_PACKAGES " " SAFE"
190+ fi
191+
192+ print_colored $YELLOW " CAUTION packages (may affect functionality):"
193+ echo " $CAUTION_PACKAGES " | grep -v ' ^$' | while IFS=' :' read -r package desc; do
194+ if [ -n " $package " ]; then
195+ echo " • $desc "
196+ fi
197+ done
198+ echo " "
199+
200+ read -p " Remove CAUTION packages? (y/n): " choice
201+ if [ " $choice " = " y" ] || [ " $choice " = " Y" ]; then
202+ remove_packages " $CAUTION_PACKAGES " " CAUTION"
203+ fi
204+
205+ print_colored $RED " DANGEROUS packages (NOT recommended):"
206+ echo " $DANGEROUS_PACKAGES " | grep -v ' ^$' | while IFS=' :' read -r package desc; do
207+ if [ -n " $package " ]; then
208+ echo " • $desc "
209+ fi
210+ done
211+ echo " "
212+
213+ read -p " Remove DANGEROUS packages? (y/n): " choice
214+ if [ " $choice " = " y" ] || [ " $choice " = " Y" ]; then
215+ print_colored $RED " WARNING: Removing these packages may break device functionality!"
216+ read -p " Are you absolutely sure? (yes/no): " confirm
217+ if [ " $confirm " = " yes" ]; then
218+ remove_packages " $DANGEROUS_PACKAGES " " DANGEROUS"
219+ fi
220+ fi
221+ }
222+
223+ # Function for batch removal (safe packages only)
224+ batch_removal () {
225+ print_colored $BLUE " === BATCH REMOVAL (SAFE PACKAGES ONLY) ==="
226+ echo " "
227+ print_colored $YELLOW " This will remove all SAFE Huawei bloatware packages."
228+ print_colored $YELLOW " These are apps that can be safely removed without affecting core functionality."
229+ echo " "
230+
231+ read -p " Continue with batch removal? (y/n): " choice
232+ if [ " $choice " = " y" ] || [ " $choice " = " Y" ]; then
233+ remove_packages " $SAFE_PACKAGES " " SAFE"
234+ print_colored $GREEN " Batch removal completed!"
235+ else
236+ print_colored $YELLOW " Batch removal cancelled."
237+ fi
238+ }
239+
240+ # Function to list all installed packages
241+ list_all_packages () {
242+ print_colored $BLUE " === ALL INSTALLED PACKAGES ==="
243+ echo " "
244+ print_colored $YELLOW " Listing all installed packages (this may take a moment)..."
245+ pm list packages -f | sort
246+ echo " "
247+ print_colored $GREEN " Package listing completed."
248+ }
249+
250+ # Main menu
251+ show_menu () {
252+ echo " "
253+ print_colored $BLUE " === HUAWEI BLOATWARE REMOVER MENU ==="
254+ echo " 1. Interactive removal (recommended)"
255+ echo " 2. Batch removal (remove all safe packages)"
256+ echo " 3. List all installed packages"
257+ echo " 4. Create backup only"
258+ echo " 5. Exit"
259+ echo " "
260+ read -p " Choose an option (1-5): " choice
261+
262+ case $choice in
263+ 1)
264+ create_backup
265+ interactive_removal
266+ ;;
267+ 2)
268+ create_backup
269+ batch_removal
270+ ;;
271+ 3)
272+ list_all_packages
273+ ;;
274+ 4)
275+ create_backup
276+ print_colored $GREEN " Backup created successfully!"
277+ ;;
278+ 5)
279+ print_colored $GREEN " Exiting Huawei Bloatware Remover."
280+ exit 0
281+ ;;
282+ * )
283+ print_colored $RED " Invalid option. Please choose 1-5."
284+ show_menu
285+ ;;
286+ esac
287+ }
288+
289+ # Main execution
290+ main () {
291+ print_header
292+ check_environment
293+
294+ # Check if pm command is available
295+ if ! command -v pm > /dev/null 2>&1 ; then
296+ print_colored $RED " Error: 'pm' command not found!"
297+ print_colored $YELLOW " Make sure you're running this in a Shizuku terminal with proper permissions."
298+ exit 1
299+ fi
300+
301+ show_menu
302+ }
303+
304+ # Run the script
305+ main
0 commit comments