Uninstall pre-installed apps and bloatware without losing updates
by Speeduploop and Luxferre
(safe method)
Now that we have temporary root tools we can uninstall pre-installed apps without loosing OTA-updates. All the apps are installed on the /data partition, even the pre-installed (the app-copies on /system are only the "installation-media").
There are two ways, debending on the use of the "telnet" protocol or a direct root access (using ADBroot or Wallace/Wallace Tootlbox).
Learn more about Telnetd, ADBroot, Wallace and all the temporary root apps:
Method 1 (slower): using Telnetd
1. Get a temporary root access using Telnetd app;
2. Get the webapps.json file from the /data partition:
adb shell
busybox telnet localhost
cp /data/local/webapps/webapps.json /sdcard/
exit
exit
adb pull /sdcard/webapps.json
3. Open webapps.json with a text-editor which preserve the line-endings (on Windows you can use Notepad++). For every app you might want to uninstall, change the field/line "removable": false, to "removable": true,
4. Push the webapps.json on "/data/local/tmp":
To have a modded copy of webapps.json on device's temp-folder.
adb push webapps.json /data/local/tmp
To replace the 'real' file webapps.json:
adb shell
busybox telnet localhost
cd /data/local/webapps
cp webapps.json webapps.json_bak
rm webapps.json && cp /data/local/tmp/webapps.json . && chmod 600 webapps.json && chown root:root webapps.json
5. Now check permissions:
ls -la webapps.json
should respond with something like this
-rw------- root root 57563 2019-03-23 15:58 webapps.json
Date and time may differ, but the "-rw------- root root" part needs to be exact!
6. If all is correct and without errors:
adb reboot
After the reboot the apps are still there, but the "options" menu of the app-drawer now allows you to uninstall them in a clean way like any other app!
Because we didn't modified the system-partion:
ota-updates are not prevented;
pre-installed apps will re-install on factory-reset.
But until factory-reset the apps are gone and the space on /data is freed.
Method 2 (faster): using ADBroot or Wallace / Wallace Toolbox
1. Get a temporary root access using Wallace, Wallace Toolbox or ADBRoot, unlike the previous method, these apps allows you a direct root shell access;
2. Get the webapps.json file from the /data partition:
adb pull /data/local/webapps/webapps.json
doing a backup of this file is recommended, from linux / macOS:
cp webapps.json webapps.json.bak
from Windows (PowerShell), assuming ADB is installed in "C":
Copy-Item -Path C:\webapps.json -Destination C:\webapps.json.bak
3. Open webapps.json with a text-editor which preserve the line-endings (on Windows you can use Notepad++). For every app you might want to uninstall, change the field/line "removable": false, to "removable": true,
4. Push the webapps.json on "/data/local/webapps":
adb push webapps.json /data/local/webapps/
5. If all is correct and without errors:
adb reboot
After the reboot the apps are still there, but the "options" menu of the app-drawer now allows you to uninstall them in a clean way like any other app!
Because we didn't modified the system-partion:
ota-updates are not prevented;
pre-installed apps will re-install on factory-reset.
But until factory-reset the apps are gone and the space on /data is freed.
Method 3 (supersonic): install Wallace Toolbox
A new version of the versatile Wallace Toolbox utility, 0.0.6, allows to remove all unnecessary pre-installed/system apps from the standard menu.
All the changes can be reverted with a simple factory reset.
Tested on Nokia 2720 Flip (video) but can work on any KaiOS device with Busybox present (and even where it isn't present, it can be easily installed with OmniBB or similar utility program).
Download it from here:
All credits to Luxferre