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