Since it is now complicated and expensive to get Bootloader code for Huawei devices with EMUI 9 or newer (even EMUI 8 firmwares from July 2018 and onwards), let's discuss tips for useful modding without root:
Ads and analitycs can be blocked by dns66 app:
https://forum.xda-developers.com/android/apps-games/app-dns66-source-host-ad-blocker-root-t3487497
Dns66 can auto-update from the same hosts sources used also for updating AdAway (while AdAway requires root):
Adaway hosts
https://adaway.org/hosts.txt
StevenBlack's hosts file
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
WinHelp 2000
https://raw.githubusercontent.com/E...assets/active/filter/winhelp2002.mvps.org.txt
Dan Pollock's hosts file
https://someonewhocares.org/hosts/hosts
hpHosts’s Ad and tracking servers
https://hosts-file.net/ad_servers.txt
Long-lived malware domains
https://mirror.cedia.org.ec/malwaredomains/immortal_domains.txt
Malware domains
https://mirror.cedia.org.ec/malwaredomains/justdomains
Malware domain list
https://www.malwaredomainlist.com/hostslist/hosts.txt
Peter Lowe’s server list
https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext
Hosts File
https://www.hostsfile.org/Downloads/hosts.txt
User can also define his own blacklist and whitelist - for how-to details see (in German, Chrome can automatically translate to the language of your choice):
https://www.android-hilfe.de/forum/...moeglich-ist.900205-page-3.html#post-11742906
Additionally, particular apps can be completely whitelisted from being affected by dns66 (there is no such feature in e.g. AdAway)
To block ads in Chrome (and its derivatives) with dns66 or even AdAway, following steps are additionally needed:
https://wccftech.com/how-to-fix-dns-based-ad-blockers-on-chrome/
https://www.malwarefox.com/block-ads-android-chrome/
Steps and screenshots are collected here (Chrome will automatically translate from German):
https://www.android-hilfe.de/forum/...moeglich-ist.900205-page-3.html#post-11734599
Unwanted (system) apps can be disabled or uninstalled (for default/current user) by ADB commands (again, root not required) - for complete guides, see here:
https://www.xda-developers.com/uninstall-carrier-oem-bloatware-without-root-access/
https://forum.xda-developers.com/ap...v1-universal-systemless-t3432382/post80288347
Batch script with examples of some Huawei system apps that can be disabled is given here:
Code:
ECHO OFF
CLS
adb wait-for-device devices
PAUSE
ECHO List packages
adb shell pm list packages
PAUSE
ECHO List disabled packages
adb shell pm list packages -d
PAUSE
ECHO Disable System Update
adb shell pm disable-user com.huawei.android.hwouc
PAUSE
ECHO Disable Files
REM adb shell pm disable-user com.huawei.hidisk
PAUSE
ECHO Disable HiCare
adb shell pm disable-user com.huawei.phoneservice
PAUSE
ECHO Disable HiSearch
adb shell pm disable-user com.huawei.search
PAUSE
ECHO Disable Market Feedback Agent
adb shell pm disable-user com.google.android.feedback
PAUSE
ECHO Disable Tips
adb shell pm disable-user com.huawei.tips
PAUSE
ECHO Disable Duo
adb shell pm disable-user com.google.android.apps.tachyon
PAUSE
ECHO Disable GMail
adb shell pm disable-user com.google.android.gm
PAUSE
ECHO Disable Google
adb shell pm disable-user com.google.android.googlequicksearchbox
PAUSE
ECHO Disable Google Play Music
adb shell pm disable-user com.google.android.music
PAUSE
ECHO Disable Google Play Videos
adb shell pm disable-user com.google.android.videos
PAUSE
ECHO Disable Google Photos
adb shell pm disable-user com.google.android.apps.photos
PAUSE
ECHO Disable SwiftKey
adb shell pm disable-user com.touchtype.swiftkey
adb shell pm disable-user com.swiftkey.swiftkeyconfigurator
PAUSE
ECHO Disable Facebook
adb shell pm disable-user com.facebook.appmanager
adb shell pm disable-user com.facebook.system
adb shell pm disable-user com.facebook.services
PAUSE
ECHO Disable AutoNavi
adb shell pm disable-user com.amap.android.ams
PAUSE
ECHO Disable Browser
adb shell pm disable-user com.android.browser
PAUSE
ECHO Disable E-mail
adb shell pm disable-user com.android.email
PAUSE
ECHO Disable Find my Phone
adb shell pm disable-user com.huawei.android.findmyphone
PAUSE
ECHO Disable Wallet
adb shell pm disable-user com.huawei.wallet
PAUSE
ECHO Disable Health
adb shell pm disable-user com.huawei.health
PAUSE
ECHO Disable HiBoard
adb shell pm disable-user com.huawei.intelligent
PAUSE
ECHO Disable HiPayment
adb shell pm disable-user com.huawei.android.hwpay
PAUSE
ECHO Disable HiVoice
adb shell pm disable-user com.huawei.vassistant
PAUSE
ECHO Disable Huawei IME
adb shell pm disable-user com.baidu.input_huawei
PAUSE
ECHO Disable Yellowpage
adb shell pm disable-user com.huawei.yellowpage
PAUSE
ECHO Disable SIM Toolkit
adb shell pm disable-user com.android.stk
PAUSE
ECHO Disable Smart Repair
adb shell pm disable-user com.huawei.hwdetectrepair
PAUSE
ECHO Disable SkyTone
adb shell pm disable-user com.huawei.skytone
PAUSE
ECHO Disable Android Tips
adb shell pm disable-user com.huawei.android.tips
PAUSE
ECHO Disable Weather
adb shell pm disable-user com.huawei.android.totemweatherapp
adb shell pm disable-user com.huawei.android.totemweatherwidget
adb shell pm disable-user com.huawei.android.totemweatherapp
PAUSE
ECHO Disable DayDreams
adb shell pm disable-user com.android.dreams.basic
adb shell pm disable-user com.android.dreams.phototable
PAUSE
ECHO Disable Navigation Dock
adb shell pm disable-user com.huawei.android.FloatTasks
PAUSE
ECHO Disable Digital Balance
adb shell pm disable-user com.huawei.parentcontrol
PAUSE
ECHO Disable Partner Bookmarks
adb shell pm disable-user com.android.providers.partnerbookmarks
adb shell pm disable-user com.android.partnerbrowsercustomizations.tmobile
PAUSE
ECHO List disabled packages
adb shell pm list packages -d
Pause
ECHO Re-enable HiSearch
REM adb shell pm enable com.huawei.search
PAUSE
ECHO Uninstall HiSearch
REM adb shell pm uninstall -k --user 0 com.huawei.search
PAUSE
ECHO Re-install HiSearch
REM adb shell cmd package install-existing com.huawei.search
PAUSE
Prepend corresponding lines by REM (or remove) if you want to keep FaceBook, SwiftKey, Health, etc
Of course, Developer menu and ADB debugging must be enabled (few clicks)
To find out package names for particular apps, install and use an app like AppInspector or PackageManager (from Playstore)
Some configurational properties can be also modified without root:
https://forum.xda-developers.com/showpost.php?p=79249421&postcount=3
Again, you need adb and then SetEdit app (install from Playstore).
Give write permissions to SetEdit by adb:
Code:
adb shell pm grant by4a.setedit22 android.permission.WRITE_SECURE_SETTINGS
Open SetEdit, and therefrom Secure Table,
change Hide_Pocket_Mode value from 1 to 0
I've similarly enabled setting for Virtual HD sound in calls, see screenshots
Similarly, additional statistic can be enabled in GSam Battery Monitor, with adb command instead of by granting it root permission:
Code:
adb shell pm grant com.gsamlabs.bbm.rootcompanion android.permission.BATTERY_STATS
Regarding to playing YouTube in background and blocking it ads, I've tried YouTube Vanced app, two versions v12.32.59 and the latest v14.21.54:
https://vanced.app/
YT Vanced can play in background and block ars (most important for me) and it comes with practically the same interface as standard YT applicatioon
It works almost the same as Magisk module YT Vanced, but the app does not require root and (unlike the Magisk module) it requires an additional MicroG app if you want to sign to your YT accoount.
Unfortunately, I was unable to makle it sign with MicroG 0.2.6.17455:
- If I try to Sign in from YT Vanced v14.21.54, it calls MicroG but MicroG was unable to sign to my existing YT account(s), popping out: Please Check your Network Connection, Tap to retry
(I've tested also with DNS66 switched off, to make sure it does not interfere)
- With MicroG installed, YT Vanced v12.32.59 crashes for me right away on starting (with MicroG not installed, it works fine)
There are few other replacements for the YT app like OGYouTube, TubeMate, iTube, or NewPipe, allowing download and/or playing in the background.
E.g., with iTube I was able to play in the background but also to login to the YT account (but interface is somewhat strange, user must get accustommed to)
However, ATM, I will stick with this latest YT Vanced v12.32.59, since I'm used to the very similar Vanced module on rooted phones
Logcat can be also enabled without root, install Logcat 4U from Google Play:
https://play.google.com/store/apps/details?id=com.sam.logcat
and enable it Read Logs permission:
Code:
adb shell pm grant com.sam.logcat android.permission.READ_LOGS
PIN can be also unlocked with ADB, if it e.g. happens that you by mistake remove/disable virtual keyboards (replace XXXX with your PIN):
Code:
adb shell input text XXXX
Not related to root but to (adb and) fastboot - following commands are useful when phone is bricked to read IMEI(s) and Ser num, info about Bootloader, model, cust and possibly build number from the last used stock firmware
Boot to fastboot:
- switch off
- connect to PC (e.g., Mininal ADB and Fastboot must be installed)
- press and keep pressing Vol-
- boot by Pow
And execute as bat script
Code:
fastboot devices
PAUSE
fastboot oem get-bootinfo
PAUSE
fastboot oem get-psid
PAUSE
fastboot oem get_hwnff_ver
PAUSE
fastboot oem hwdog certify begin
PAUSE
fastboot oem get-product-model
PAUSE
fastboot oem get-build-number
PAUSE
fastboot oem oeminforead-SYSTEM_VERSION
PAUSE
fastboot getvar vendorcountry
PAUSE
REM fastboot getvar rescue_enter_recovery
PAUSE
fastboot reboot
Free of charge method for updating to Approved firmwares (not received yet by OTA) by HiSuite and Firmware Finder - no root, TWRP or unlocked boot loader required.
Original XDA post:
https://forum.xda-developers.com/showpost.php?p=78850439&postcount=1334
More details (Chrome can automatically translate from German):
https://www.android-hilfe.de/forum/...s-mit-hisuite-und-firmware-finder.930081.html
Note:
This method is similar in concept to HSTool (originating from FunkyHuawei) + HiSuite method:
https://forum.xda-developers.com/mate-20-pro/how-to/manual-upgrading-mate-20-pro-bl-locked-t3905924
https://forum.xda-developers.com/honor-view-20/how-to/hstool-upgrading-firmware-bl-locked-t3948040
https://forum.xda-developers.com/huawei-p30-pro/how-to/guide-how-to-ota-update-p30-pro-wipe-t3953138
Both methods don't require unlocked Bootloader, both use patched, particular versions of HiSuite and trick the HiSuite to download/install a stock firmware but not from the Huawei server.
Differences:
- In the method here, phone must be running Firmware Finder, and FF triggers the Team MT server to provide download of selected firmware for HiSuite.
- In the HSTool method, HSTool provides the firmware to HiSuite.
Interesting:
MiXPlorer is able to read e.g. /system, /vendor and /proc partitions.
You can browse through, read textual files, copy to Internal memory.
Of course, cannot write to (delete, change, create new files, etc)
Also, it cannot read /data partition
Tested also with Terminal Emulator, it can do similar - see screenshots
Btw, even if the phone was rooted (again, it isn't, BL is locked), /system and /vendor partitions would still be read only (EMUI 9.1, EROFS) - but nevertheless, Magisk would supposedly be able to provide systemless hosts access to AdAway
Is there any way to enhance sound (like with Viper4Android or JamesDSP), without root?
Eg, Equilizer - Bass Booster is free.and does not require root:
https://play.google.com/store/apps/details?id=music.basss.booster.effect.equalizer
As equilizer it works great but If you highly boost the bass or volume, sound will deteriorate
There is even an easier way to substitute AdAway on a non-rooted device. Just define dns.adguard.com for your private DNS server - see a screenshot below
However, compared to AdAway or DNS66, here you cannot add your own blacklist and whitelist, and you have no freedom to choose between (or use several of them) hosts sources.
Be aware, I have encountered a WiFi hotspot where DNS requests outside were blocked, and as result, I was unable to resolve any domain name to IP address, and therefore unable to eg open any site in the browser - I had to disable private DNS as long as staying on that WiFi hotspot
The following way you can unlock the screen by ADB, but:
- ADB must be already enabled on the phone
- PC you are using must be already granted ADB usage
(Otherwise it would pop-up on the still locked screen where you cannot confirm)
First, verify ADB and enter the shell
Code:
adb wait-for-device devices
adb shell
At this point press Power button (if screen is ok, it would light up).
By the first command you swipe the screen (if screen is ok, you would see popup to enter the unlock pin/pass)
By the second command you enter your unlock pin/password:
Code:
input touchscreen swipe 930 880 930 380
input text <your-screen-unlock-pin-password>
At the end, exit the shell:
Code:
exit
So, I have two SIM cards (both locked by pin) and lock screen (all the same pins).
Keyevent 66 means Ok.
The following worked for me to unlock the phone on reboot - but you MUST wait to start until the MTP pops up on the PC:
Code:
adb devices
adb shell
input text 1234
input keyevent 66
input text 1234
input keyevent 66
input touchscreen swipe 930 880 930 380
input text 1234
exit
As said, on Huawei it works without root.
---
Note:
On Xiaomi, phone must be rooted and ADB must be already given root access, hence instead of
Code:
adb shell
start with
Code:
adb shell
su
Also, on Xiaomi I didn't need to wait for MTP to pop-up on the PC upon rebooting the phone - I can start right away with ADB
I am on emui 9.1 and of course Pie.
Is there any way to change your font without having to have root? Really disliking this Huawei font that doesn't have a true bold.
Hey there, if I import Sprint version from Ebay will I be able to use it in Europe without any problems? Because I heard that some problems may occur:
1. It cannot be updated either by OTA, or manually?
2. This is the most concerning problem - I heard there is a problem with the mobile internet(data) that it's not always working, is that true and is it possible to be fixed?
3. If i get the Sprint version is it possible to rebrand it to Global or Korean version?
4. Is there a secure way to remove the Activation notice after each reboot?
Thanks in advance for your asnwers!
No one knows?
straightup said:
Hey there, if I import Sprint version from Ebay will I be able to use it in Europe without any problems? Because I heard that some problems may occur:
1. It cannot be updated either by OTA, or manually?
2. This is the most concerning problem - I heard there is a problem with the mobile internet(data) that it's not always working, is that true and is it possible to be fixed?
3. If i get the Sprint version is it possible to rebrand it to Global or Korean version?
4. Is there a secure way to remove the Activation notice after each reboot?
Thanks in advance for your asnwers!
Click to expand...
Click to collapse
1) I bought a sprint unlocked LG V50 5G from Amazon. It was a brand new device with a factory sealed box. I was able to use the device with my local service provider here in Canada. It came with Android 10 out of the box and I was able to update through OTA for Aug 2020 security patch.
2) I am able to make calls, receive calls, send and receive texts and connect to data. I am not able to send and receive MMS. Also the internet speed is not great, could be related to band compatibility. I am not crazy for internet speeds. I am okay as long as it connects to internet. So, I am good here.
3) As far as I know, it is not possible to re-brand it. Might be possible in the future.
4) I have seen threads in XDA which seems to work in removing activation notice. I didn't bother to do it. It doesn't bother me. It occurs only when the device is restarted.
Generally, I find the phone really good and value for money given the low prices.
straightup said:
Hey there, if I import Sprint version from Ebay will I be able to use it in Europe without any problems? Because I heard that some problems may occur:
1. It cannot be updated either by OTA, or manually?
2. This is the most concerning problem - I heard there is a problem with the mobile internet(data) that it's not always working, is that true and is it possible to be fixed?
3. If i get the Sprint version is it possible to rebrand it to Global or Korean version?
4. Is there a secure way to remove the Activation notice after each reboot?
Thanks in advance for your asnwers!
Click to expand...
Click to collapse
I bought.mine from eBay and I am using it in Sweden. After a few minutes of setting it up the first time, I got a notification to update. I successfully updated by OTA to the August security patch without hiccups.
I was able to remove the sprint activation nonsense at the beginning by uninstalling all sprint apps through adb. One of them uninstalled the LG messaging app. I don't care though since I don't use it.
adb shell pm uninstall -k --user 0 com.lookout
adb shell pm uninstall -k --user 0 com.coremobility.app.vnotes
adb shell pm uninstall -k --user 0 com.sprint.w.installer
adb shell pm uninstall -k --user 0 com.sprint.ms.cdm
adb shell pm uninstall -k --user 0 com.sprint.zone
adb shell pm uninstall -k --user 0 com.sprint.ecid
adb shell pm uninstall -k --user 0 com.sprint.extension
adb shell pm uninstall -k --user 0 com.sprint.care
adb shell pm uninstall -k --user 0 com.sprint.ce.updater
adb shell pm uninstall -k --user 0 com.lge.sprintnativewfc.smf
adb shell pm uninstall -k --user 0 com.sprint.ms.smf.services
adb shell pm uninstall -k --user 0 com.lge.sprintserver
adb shell pm uninstall -k --user 0 com.lge.lgdmsclientspr
I am using LG v50 Sprint phone in Vietnam. Everything is working properly, there are some junk apps on your phone and you can temporarily remove them with adb.
Nice guys! Thank you very much for your help. And do you have any issues with mobile data (LTE mostly) in your countries, because that's one of my biggest concerns.
LTE mobile network used normally in Vietnam.
lallolu said:
I bought.mine from eBay and I am using it in Sweden. After a few minutes of setting it up the first time, I got a notification to update. I successfully updated by OTA to the August security patch without hiccups.
I was able to remove the sprint activation nonsense at the beginning by uninstalling all sprint apps through adb. One of them uninstalled the LG messaging app. I don't care though since I don't use it.
adb shell pm uninstall -k --user 0 com.lookout
adb shell pm uninstall -k --user 0 com.coremobility.app.vnotes
adb shell pm uninstall -k --user 0 com.sprint.w.installer
adb shell pm uninstall -k --user 0 com.sprint.ms.cdm
adb shell pm uninstall -k --user 0 com.sprint.zone
adb shell pm uninstall -k --user 0 com.sprint.ecid
adb shell pm uninstall -k --user 0 com.sprint.extension
adb shell pm uninstall -k --user 0 com.sprint.care
adb shell pm uninstall -k --user 0 com.sprint.ce.updater
adb shell pm uninstall -k --user 0 com.lge.sprintnativewfc.smf
adb shell pm uninstall -k --user 0 com.sprint.ms.smf.services
adb shell pm uninstall -k --user 0 com.lge.sprintserver
adb shell pm uninstall -k --user 0 com.lge.lgdmsclientspr
Click to expand...
Click to collapse
Hello! Where can I learn how to use adb? I must do this with the LG v50 too
Hello,
is there an easy way to remove Indian software and notifications from an Indian 8T?
I have this "Login with OnePlus account" in Settings that I don't want to use for instance.
Thanks for your advice,
Nicolas.
Nice, I've managed to remove Cloud, Red Cable Club and the "Login with OnePlus account" in Settings without rooting by executing:
Code:
adb shell pm uninstall --user 0 com.oneplus.membership
adb shell pm uninstall --user 0 com.heytap.cloud
adb shell pm uninstall --user 0 com.heytap.openid
adb shell pm uninstall --user 0 com.heytap.mcs
Then rebooting.
I accidentally copied the wrong command and used adb shell pm disable-user --user 0 $app instead of adb shell pm uninstall --user 0 $app
I can uninstall / install-existing it just fine but for some reason using enable doesn't work.
When I do adb shell pm enable $app I get an error message, when I use su it works, and when I first unfreeze it with sdmaid and then use the enable command it works too, however it is back to being disabled again after reboot.
I also tried adb shell pm default-state --user 0 $app with the same result.
It works just fine with other apps, but they are typically either disabled or uninstalled.
Now "com.android.sdm.plugins.connmo", "com.android.sdm.plugins.dcmo" and "com.android.sdm.plugins.diagmon" are both disabled and uninstalled.
I somehow was able to reinstall them and have that persist after reboot but they were still disabled after that.
Always get correct user id of user who should get prevented to run an app
Code:
adb shell "pm list users"
before running shell command like this
Code:
adb shell "pm disable --user <USER-ID> <PKG-NAME>"
and this using the same user id
Code:
adb shell "pm enable --user <USER-ID> <PKG-NAME>"
instead of stupidly using user id 0
What's the matter with just: pm disable com.annoying.app ?
The --user <USER-ID> parameter is usually needed on newer Android versions to specify which user ID the pm utility needs to apply the changes to.
jwoegerbauer said:
Always get correct user id of user who should get prevented to run an app
Code:
adb shell "pm list users"
before running shell command like this
Code:
adb shell "pm disable --user <USER-ID> <PKG-NAME>"
and this using the same user id
Code:
adb shell "pm enable --user <USER-ID> <PKG-NAME>"
instead of stupidly using user id 0
Click to expand...
Click to collapse
UserInfo{0:Owner:c13} running
My user ID is 0
would be great if it would work like that except it doesn't for whatever reason.
Is there a difference using "disable-user --user <USER-ID> <PKG-NAME>" vs "disable --user <USER-ID> <PKG-NAME>"?
I mean thats not rly my problem as I wanna *enable* it again, but yea..
running either enable or disable command in non elevated shell results in
java.lang.SecurityException: Shell cannot change component state for null to 1
which is weird as it does work for literally any other app.
using elevated shell it works, however it resets back to disabled state on reboot, which is even weirder given that the default state of this package would be enabled=1
and I should note that it mustve worked before as well, as it was originally enabled and I slipped in the wrong line and accidentally copied the command to disable apps instead of what I wanted to do.
And for some reasom that worked..
specifically the command I used was adb shell pm disable-user --user 0 com.android.sdm.plugins.connmo and it works for any other app to disable it and i can enable them right back.