[Guide] Change the homescreen carousel apps

1,772 views
Skip to first unread message

tangela.rocks

unread,
Oct 31, 2020, 11:14:16 AM10/31/20
to comp.mobile.nokia.8110

This is a guide to changing which apps display on the KaiOS homescreen. This guide works on my Energizer E241S, and your mileage may vary. I’m happy to answer questions but I won’t take responsibility for what happens to your device.


I've reproduced it below, but the formatting may be a bit off.

Once you’re at a shell with root ADB access, you need to pull two files from the filesystem: the homescreen app package and the webapps list. This can be done with:

adb pull /system/b2g/webapps/launcher.gaiamobile.org and

adb pull /data/local/webapps/webapps.json

At this stage, you need to decide the 5 apps that we’re going to put on the homescreen. Mine are going to be:

  • SMS
  • Email
  • WhatsApp
  • Calendar
  • Clock

Open the webapps.json and find your 5 apps. Note down the ‘Manifest URL’. In the case of SMS, mine is:

app://sms.gaiamobile.org/manifest.webapp

A screenshot of the Manifest URL for the KaiOS SMS app

As a whole, my configurations’ manifests are:

app manifest
sms app://sms.gaiamobile.org/manifest.webapp
email app://email.gaiamobile.org/manifest.webapp
whatsapp https://api.kaiostech.com/apps/manifest/ahLsl7Qj6mqlNCaEdKXv
calendar app://calendar.gaiamobile.org/manifest.webapp
clock app://clock.gaiamobile.org/manifest.webapp


Now, you need to find where the original apps are referenced in the homescreen app. You pulled it from the phone earlier, and it should be a folder that looks like this:

A screenshot of the Windows file explorer showing the contents of the launcher

Unzip that, and find the main app bundle JavaScript file in the dist folder.

A screenshot of the Windows file explorer showing the contents of the launcher zip file

A screenshot of the Windows file explorer showing the contents of the launcher zip's dist folder

Open that, and it’s pretty intimidating! Use Ctrl/Cmd+F to find the following string: n.items=[["manifestURL", and it should take you to the definition for the side menu apps.

A screenshot of the launcher's listing of app manifests

This section is where the apps are listed, and the part we need is the part between the double square brackets. ([[ and ]]) You can edit this manually, by editing the manifest URLs to match the ones you noted down earlier. Alternatively, I wrote a small JavaScript page to make the edit for you.

Once this edit is made, you need to re-zip the files that make up the launcher. I used 7-Zip to add all of the base directory to a zip archive.

A screenshot of the menu to zip the files

This zip should be named application.zip, and the unzipped files should be removed.

Next, we need to push the launcher back to the phone. We shouldn’t push it back to its original location as this can mess with OTA updates. Instead push it to a new location:

adb push launcher.gaiamobile.org /data/local/webapps

We need to tell the system about this by editing the webapps.json file. This is also a good time to change some bloatware from "removable": false to "removable": true. Find the launcher app in the webapps listing, and change the basepath from its original location to /data/local/webapps.

A screenshot of the webapps listing with the base path changed

Finally, adb push webapps.json /data/local/webapps/ push the file to the system, and reboot the phone (adb reboot).

A photo of the finished product

Ivan Alex HC

unread,
Oct 31, 2020, 12:52:09 PM10/31/20
to comp.mobile.nokia.8110
Hi, I've just uploaded this guide on the bananahackers website, at this link https://sites.google.com/view/bananahackers/customizations/homescreens-carousel

Thank you for this big improvement! :D

Farooq Karimi Zadeh

unread,
Oct 31, 2020, 12:59:16 PM10/31/20
to banana...@googlegroups.com
A very good idea and useful guide :)


What is license of this guide and pictures used in it? Can I copy it elsewhere?

I hope yes and if so, under what conditions?

I am asking because one isn't permitted(legally) to copy someone else's work

unless the author clearly give that one permission to do so.

--
You received this message because you are subscribed to the Google Groups "comp.mobile.nokia.8110" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bananahacker...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bananahackers/b9c6bbcd-5cd5-48e1-a4ba-32660b250e7do%40googlegroups.com.

Ivan Alex HC

unread,
Oct 31, 2020, 1:36:31 PM10/31/20
to comp.mobile.nokia.8110
  • Farooq Karimi Zadeh, all the links and references to his personal site are present on the page I wrote (I only made some changes to the text and some images, to help you better understand some passages). I don't see where the violation is, as the guide is in the public domain right now, here on Google Groups. The author of the guide has all the protection and support needed to grow their resources, being a member of this community, and the bananahackers.net site is a good starting point to make yourself known.

  • tangela.rocks, if you need to add other information to the page I have published, I will be happy to write them for you.
To unsubscribe from this group and stop receiving emails from it, send an email to bananahackers+unsubscribe@googlegroups.com.

Farooq Karimi Zadeh

unread,
Oct 31, 2020, 1:43:19 PM10/31/20
to banana...@googlegroups.com

Hello Ivan!

I wasn't aware that guides on Google Groups are in PD. If so there is absolutely no problem even if you don't mention them(legally, I mean but I believe they MUST be mentioned anyway as you, Ivan, always do), as far as I know.

To unsubscribe from this group and stop receiving emails from it, send an email to bananahacker...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bananahackers/ef73dda4-3736-4e6a-a559-2ac17649ba27o%40googlegroups.com.

Ivan Alex HC

unread,
Oct 31, 2020, 2:04:34 PM10/31/20
to comp.mobile.nokia.8110
Let's focus on progress, to make KaiOS a better operating system.

We shouldn't make teams as happens among the myriad of communities around the various Linux distros, who only think about dividing and never cooperating with each other to spread Linux, as it should be.

If we stop, we will never get better. This guide is proof that as a community we can still do something together by being united.

tangela.rocks

unread,
Oct 31, 2020, 4:38:25 PM10/31/20
to comp.mobile.nokia.8110
According to the Google Groups terms of service: " You or a third party licensor, as appropriate, retain all patent, trademark and copyright to any Content you submit, Post or display on or through the Service and you are responsible for protecting those rights, as appropriate." (https://www.privacy.org.au/Papers/G-Groups-terms-120127.html). My post is not in the public domain. No attempt was made to contact me prior to this content being copied.

If you have an issue with my writing style, I would've preferred more direct comments rather than my work being copied without permission. I planned on writing more content, but I won't do that if everything I write will be copied.

Farooq Karimi Zadeh

unread,
Oct 31, 2020, 4:48:23 PM10/31/20
to banana...@googlegroups.com

If you want to write KaiOS related guides, how about writing also in our wiki directly? You write whatever you want(crap and nonsense does not count as whatever and abstract nonsense is an exception :D), write your name or omit it and specify the original source(e.g. your blog). As far as I know, guides in the current website all have reference to source and their author and it will be the same in the (new) wiki.

To unsubscribe from this group and stop receiving emails from it, send an email to bananahacker...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bananahackers/c7e412cf-52ee-4919-9038-7976c6a44fbbo%40googlegroups.com.

tangela.rocks

unread,
Oct 31, 2020, 4:52:52 PM10/31/20
to comp.mobile.nokia.8110
I'd be happy to include my guide on a wiki - my concern is that I don't control someone else's website and that I find the complete rewrite here to be insulting.

To unsubscribe from this group and stop receiving emails from it, send an email to bananahacker...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "comp.mobile.nokia.8110" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bananahacker...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bananahackers/ef73dda4-3736-4e6a-a559-2ac17649ba27o%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "comp.mobile.nokia.8110" group.

Farooq Karimi Zadeh

unread,
Oct 31, 2020, 4:54:24 PM10/31/20
to banana...@googlegroups.com

I can give you a wiki account, just email me.

Ivan Alex HC

unread,
Oct 31, 2020, 6:33:03 PM10/31/20
to banana...@googlegroups.com
OK, sorry, I'll remove the guide from the website, if this is a problem for you.

It was not my intention to offend your actions.

Vlycop

unread,
Sep 23, 2021, 10:09:24 AM9/23/21
to comp.mobile.nokia.8110
since the blog is down, and the code have changed, i've made a some edit to the guid on my local wiki


====== Change the homescreen carousel apps ======
source : https://groups.google.com/g/bananahackers/c/XyR9gtnaO0o


Once you’re at a shell with root ADB access, you need to pull two files from the filesystem: the homescreen app package and the webapps list. This can be done with:

adb pull /system/b2g/webapps/launcher.gaiamobile.org and

adb pull /system/b2g/webapps/webapps.json


At this stage, you need to decide the 5 apps that we’re going to put on the homescreen. Mine are going to be:

    SMS
    Calculator
    Calendar
    Maps
    Passport


Open the webapps.json and find your 5 apps. Note down the ‘Manifest URL’. In the case of SMS, mine is:

    app://sms.gaiamobile.org/manifest.webapp


Unzip the application.zip from the launcher, and find the main app bundle JavaScript file in the dist folder.
That file is unreadable because it have been minified, unpack it with your IDE, or with a site like https://duckduckgo.com/?t=ffab&q=unminify+js&ia=answer

Use Ctrl/Cmd+F to find the following block:
    }, function(e, t) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        }), t.default = [{
            name: "WhatsApp",
            manifestURL: "https://api.kaiostech.com/apps/manifest/ahLsl7Qj6mqlNCaEdKXv"
        }, {
            name: "Facebook",
            manifestURL: "https://api.kaiostech.com/apps/manifest/oRD8oeYmeYg4fLIwkQPH"
        }, {
            name: "Assistant",
            manifestURL: "https://api.kaiostech.com/apps/manifest/OSlAbgrhLArfT7grf4_N"
        }, {
            name: "Maps",
            manifestURL: "https://www.google.com/maps/preview/pwa/kaios/manifest.webapp"
        }, {
            name: "YouTube",
            manifestURL: "https://api.kaiostech.com/apps/manifest/6x6P4Ap7oCIzOW10hBpm"
        }];
        t.chinaSideApps = [{
            name: "Calculator",
            origin: "app://calculator.gaiamobile.org"
        }, {
            name: "Messages",
        origin: "app://sms.gaiamobile.org"
        }, {
            name: "Settings",
            origin: "app://settings.gaiamobile.org"
        }, {
            name: "Calendar",
            origin: "app://calendar.gaiamobile.org"
        }, {
            name: "E-Mail",
            origin: "app://email.gaiamobile.org"
        }]


This section is where the apps are listed, There is first the list of default app for us, then for china ? You can edit this manually, by editing the manifest URLs to match the ones you noted down earlier.

Once this edit is made, you need to re-zip the files that make up the launcher. Make sure your zip file only contain what's inside the application folder, and not the application folder itself !


This zip should be named application.zip, and the unzipped files should be removed.

Next, we need to push the launcher back to the phone. We shouldn’t push it back to its original location as this can mess with OTA updates. Instead push it to a new location:

    adb push launcher.gaiamobile.org /data/local/webapps

We need to tell the system about this by editing the webapps.json file. Find the launcher app in the webapps listing, and change the basepath from its original location to /data/local/webapps.



Finally,
    adb push webapps.json /data/local/webapps/
push the file to the system, and reboot the phone.
    adb reboot
Message has been deleted
Message has been deleted

Baer

unread,
Mar 1, 2022, 2:08:08 PM3/1/22
to comp.mobile.nokia.8110
Can the Push back to another location, other than  /data/local/webapps/ ? 
What is the significance of using the  /data/local/webapps/ location in the 1st place?
How does the Android know to use the webapps.json file at the  /data/local/webapps/ location instead of the  webapps.json at  /system/b2g/webapps/ ?

Thanks
Lou

Reply all
Reply to author
Forward
0 new messages