Getting Your New Mate 20 Pro in Shape

xster
xster
Jan 5, 2019 · 8 min read

The Huawei Mate 20 Pro is solid enough of a phone that it made me switch from the iPhone XS after years on iOS. The last time I tried to switch to Android with a Galaxy S8, I gave up after 2 days.

With a ~60% larger sensor, the camera is amazing with better optical bokeh, way better computational bokeh than the still-ridiculous iPhone portrait mode and way better low light performance. Despite Android phones being traditionally plagued with unreliable camera launch and shutter response times, taking unplanned quick snaps is surprisingly pleasant and usable without edits.

Crazy off-the-cuff low-light snaps

Other general pros: the battery is undepletable even if I try to during full day trips and it doesn’t suddenly become unusable with the slightest temperature fluctuation like iPhone X/XS. And as Android generalities, the screen is better and despite jankier animations and lower single core performance, it’s faster in practice since there’s less event blocking animation fillers.

But like most non-stock Androids, the software has a lot of annoyances. Luckily many, many are low hanging fruits. And after a few weeks, I got it to a point where it’s fairly peasant and the jagged corners are worn off without doing anything too hacky.

Tweaked EMUI in an acceptably fun state (the black blob on the left is Fluid Navigation Gestures)

Some context/assumptions before we start: no rooting, custom ROMS or any of that, you have adb and know how to use it, and at time of publishing, this is based on EMUI 9/Android P.

Get the Right Device

Once you’re on the LYA-LXX hardware, there’s also a dozen firmware versions for various markets/carriers/region codes. They dictate smaller features like whether your launcher gets the Google Now feed or their own HiBoard, some camera features and when you get OS updates. For our purposes, it doesn’t matter too too much.

Also note that unlike things like the GSM iPhone X etc, this phone will mostly not work on Verizon. VoLTE won’t be available and you can’t make calls on CDMA at all. Also it won’t function well as a data only device since the LTE 13 band is one of Verizon’s primary frequencies and 2 and 4 only serve as auxiliaries in urban centers. So you’ll struggle getting data even in cities.

Next, onto cleaning up our actual EMUI annoyances.

Get Rid of Those Annoying Status Bar Icons

Luckily, you don’t need root or anything special to get rid of them. But the Android M System UI Tuner isn’t easily accessible in EMUI nor does it work for that matter. So we use adb instead.

adb shell settings put secure icon_blacklist [the icons you don't want]

There’s a list of options here

I opted for

adb shell settings put secure icon_blacklist eyes_protect,managed_profile,nfc,vpn,bluetooth,zen

Everything will still show when you bring down the notification overlay (at which point all the status bar icons will show below the notch) so you can get a bit more aggressive here.

I forget if it’s on by default but remove the carrier name and network speed too via

Settings → Display → More display settings → Display carrier name / network speed

Turn Off Knuckle Gestures

Settings → Smart assistance → Motion control → Knuckle Gestures

Turn those off. Then back in Smart assistance → HiTouch. Turn that off too.

Turn Off EMUI’s System Navigation Gestures

It’s also really buggy. Do the home swipe too quickly and the animation restarts.

Just turn the whole thing off via

Settings → System → System navigation → Three-key navigation

Turn On Always On Display

Settings → Home screen & wallpaper → Always on display

You’re not crazy. It does move around by itself all the time to avoid OLED burn-ins.

Get Rid of Bloatware

First, go through all the apps the normal way in settings and try to uninstall them.

If you can’t, they’re nevertheless uninstallable or disablable for your user without root in adb.

adb shell pm uninstall -k --user 0 [package name]

Though you can’t bring it back without a factory reset. So if you’re not sure, disable instead.

adb shell pm disable-user --user 0 [package name]

For instance, I’m not huge on SwiftKeys, so you can

adb shell pm disable-user --user 0 com.touchtype.swiftkey

after you install something else like GBoard.

For everything you don’t uninstall, make sure to remove locations, background data, phone permissions and most importantly settings write and draw over other app permissions (which annoyingly is not in the same list as the normal permissions).

Get Ad Block

If you’re ok with not using Chrome, Firefox works with ad block extensions.

Otherwise, something like DNS66 or AdGuard Android/DNS/Home can potentially be better that iOS but at a slightly higher cost/potential invasiveness.

The easiest is DNS since nothing needs to run locally, it’s configurable in the stock system settings since Android P and you have to hit DNS regardless anyway. AdGuard DNS seems to have comparable response time to 8.8.8.8 or CloudFlare.

Since Android P now supports DNS-over-TLS, use

Settings → Wireless & networks → Private DNS → Configure Private DNS → paste dns.adguard.com

instead of just putting in an IP address like before.

If you don’t trust them (and you shouldn’t), you can build the same DNS server they have and host it at home via https://github.com/AdguardTeam/AdGuardHome (it’s open source).

The second class of blockers is via a local VPN server such as AdGuard Android (it’s blocked on the Play Store so you have to download it yourself). The filtering then happens against a cached blacklist locally so your device does slightly more work per request but it’s a more complete coverage since app don’t have to use the system DNS settings and since VPN can respond with specific HTTP responses instead of just dropping the DNS request, holes left by ads can be cleaner.

If you do go for the local VPN option like AdGuard Android, monitor the various pre-installed apps’ network traffic once in a while and disable / remove network permissions on more stuff if they try to phone home.

Change the Launcher

adb shell pm disable-user --user 0 com.huawei.android.launcher

After you uninstall/disable the launcher, you also get back the normal (vertical) Android stock app switcher instead of Huawei’s wonky horizontal switcher and its inferior split-screen setup mechanism.

Get Icon Packs

In the screenshot above, I’m using H2O. Just install from Play Store and change the icons either in Nova Launcher’s settings on in the H2O app.

Get Google Now Feed on the Left of Home

Add Gestures Back

It (ab)uses the Android accessibility APIs like most similar apps. So you have to

adb shell pm grant com.fb.fluid android.permission.WRITE_SECURE_SETTINGS

for it to work. This might conflict with your company/school/network’s device policies if you have any.

Turn On Camera Quick Launch

960 FPS Slow-Mo

xster

Collection of tech tips and learnings

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store