Experience Gesture Navigation Control on third party launcher [Android POCO X5 — Hyper OS]
TLDR; completely unrelated to my normal blogs related to OSINT/OPSEC
Why Do this? Unfortunately, recent android versions won’t let you use the gesture navigation control on a third party launcher.
Disclaimer: Do this at your own risk. I just did this yesterday, but so far haven’t seen any issue (even after reboot).
Currently running: Hyper OS v.1.0.5.0.UMPMIXM (https://miuirom.org/updates/hyperos-1)
Third party Gesture controller: Ubikitouch (https://play.google.com/store/apps/details?id=eu.toneiv.ubktouch) this app allows me to nearly replicate the native gesture navigation control and even have additional gesture (6 gesture per each side of the screen: Bottom, Left Right).
NOTE: You will need a computer to grant Ubikitouch an android.permission.WRITE_SECURE_SETTINGS permission through ADB.
1. Switch to the third party launcher of your choice
2. Download Ubikitouch and follow the instruction/guide how to enable permission and configure each side’s gesture.
Here’s my current Ubikitouch setup on each side of the screen through their respective Menu action:
Left side:
Swipe #1 Previous, Swipe #2 Play/Pause, Swipe #3 Next (all this are media action).
Swipe & Hold #1 Scroll backward, Swipe & Hold #2 Open Volume Dialog, Swipe & Hold #3 Scroll Forward
Right side:
Swipe #1 System settings, Swipe #2 Back button, Swipe #3 Open Notification
Swipe & Hold [All of them are set as None or simply disabled]
Bottom:
Swipe #1 — None, Swipe #2 Home, Swipe #3 None
Swipe & Hold #1 None, Swipe & Hold #2 Recent apps Native, Swipe & Hold #3 None
NOTE: #1 represent swipe or swipe & hold slightly up, #2 represent center or horizontal swipe, # 3 represent slighly down.
PERMISSIONS
— Required permission: Accessibility permission (You need to grant these during initial setup “As you first time open the app”)
— Background autostart — Enable this to make sure Ubikitouch can start again as the system tries to kill it. Go to device settings — Apps -Permissions — Enable for Ubikitouch
— Keep accessibility running: You can only enable this once Ubikitouch has android.permission.WRITE_SECURE_SETTINGS permission. This option can be found by opening the left pane menu, scroll down to the bottom and open the Optional Permission. The system will try to constantly mess up with the accessibility of Ubikitouch, so it is recommended to have this option enabled aside from Background autostart permission.
Enable android.permission.WRITE_SECURE_SETTINGS through ADB
— Enable Developer Option [Go to device settings — About Phone — repeatedly click “OS version (for POCO)”]
— Inside Developer option, look for USB debugging and enable it.
(NOTE: System will warn you about the security concern of enabling this, just ignore it since we know why we’re enabling this, plus we will disable Developer option anyway after)
— Connect the device to your computer
— On your computer terminal, check if your device can be detected by running:
adb devices
(NOTE: a list of detected devices will be shown — make sure only the device you are tweaking is connected (with USB debugging is enabled) to avoid confusion)
— Once you see the device is detected, run the following command:
adb shell pm grant eu.toneiv.ubktouch android.permission.WRITE_SECURE_SETTINGS
— After this, you should be able to toggle the Keep accessibility running on.
Hide the Button Navigation Control
Second Space — through this feature, we can switch from Button to native gesture navigation control.
I said this step is just to hide the button control because gesture control don’t properly work on primary space, especially after deleting the second space.
1. Go to device settings and search Second Space — follow the setup guide.
2. Once you’re on the second space, switch from Button to Gesture navigation control.
3. Go back to your primary space, and you should see the button control is gone.
4. Delete the second space. The native gesture control won’t work completely, but since you have the Ubikitouch configured, you’re good to go.
5. Disable/Turn-Off the developer option
Enjoy!
FINAL NOTE: I spent a good amount of time looking for an open source gesture navigation control but since I can’t find one, I have no choice but to look inside the PlayStore (those close-source apps). I found Ubikitouch the most promising and capable one. Not only that, but I have also monitored my device traffic through PCAPdroid (while Ubikitouch is running) to see if the app is receiving/sending or connecting to the internet (Despite the claim that it didn’t. I didn’t find any during the test. I’ll definitely use PCAPdroid mitm if I found one to decrypt it and see the actual payload. Lol!