There are too many reasons to avoid KaiOS

After my recent so long messages in the BananaHackers community chat rooms regarding why KaiOS sucks, I thought it would be much better if I write a blog post in the BH blog to let more people hear my voice and read my reasons regarding why one should not use KaiOS.

In the beginning, I chose Nokia 8110 4G instead of an Android phone for the following reasons:

KaiOS is still capable of those for me including a few other stuff which I didn't need in the beginning but not everyone's use case just like mine.

Here I go through many reasons one might want to avoid using KaiOS and go for an Android phone instead. Many of the reasons I have listed here may only apply to app developers.

Note that all these reasons mostly apply to current versions of KaiOS excluding KaiOS 3.0

Poor support from manufacturers

How many OTA updates have your device got? one? two? perhaps zero? It seems that manufactures aren't much interested in giving away firmware updates for their KaiOS devices. As far as I remember my late bananaphone(aka Nokia 8110 4G) had got just 2 OTA updates. And it never got an update to KaiOS 2.5.2!

But for Android phones, the story is so different as most manufacturers bump Android version once or twice. And for KaiOS, Nokia didn't even go up by 0.0.1 which really sucks. This means the customer or user probably needs to buy a new phone to get every new minor software update.

So at least most current KaiOS devices, if not all, will never get to KaiOS 3.0, unfortunately.

Recent Let's Encrypt certificates problem and OTA updates

As far as I know, due to a recent problem, KaiOS recognizes websites with Let's Encrypt certificates as insecure. And since there are no OTA updates for most phones, at least not so soon, this ruins a lot of functionalities of a KaiOS device. The problem's not with browsing website's with the poor browser of KaiOS. You can hardly browse a website with that browser. And if you ever wanted to, you could add websites using LE certificates as exceptions which is kinda annoying but at least works.

The real problem arises when an app tries to access some API of itself. However, I've read in the BH App development chat room from tbrrss(if I remember correctly) that there is a workaround:

Visit API of your Application in KaiOS's browser and add it as an exception.

I haven't tested it myself so I can't confirm it but let's be optimistic and suppose it does work. Imagine two API servers for each KaiOS app and a total of 5 apps on your device using APIs. I guess you'll need to adb pull all 5 apps off your device, find the API servers in the source code of those 5 apps and type in KaiOS's browser with ABC keyboard. Typing API endpoints even using Android's QWERTY keyboard is not an easy job...

And it's not the end of the certificates story: Not all apps work like this, using one or more API endpoints and retrieving data from them. For example for my friend's RSS reader app, John David's feedolin, you'd have to do this for all the websites you want to read feeds from and are using LE certificates.

And yet for John's app, it is the good part. What about some Podcast app? I guess the developer has to get a server with a database(or a list) of podcast websites using LE certificates and tell the user to do the process for every website, including the API endpoint of the app itself if any. The developer should also add Dear Users, I know this really sucks but it is OEM's fault and you've got no other choice

Regarding my Matrix client for KaiOS, Chooj, I've got to tell users to visit their homeserver address with browser to make Chooj work.

As a final word in this sub-section, it seems to be no workaround for other protocols using LE certificates like the ones used by Email app.

KaiStore takes a big share of the income of your KaiOS app

This section and the next one apply only if you are a KaiOS app developer. If you are a user, you might want to skip this section.

According to Christian, developer of AirshipCombat3D and SpaceWalk3D, and many other developers also, Kai takes about 70% of the income your app makes through ads. I remember Christian had said:

App Development for KaiOS is burning time and money. my game(AirshipCombat3D) has hardly made the costs of the server.

Surprise: KaiStore has stupid rules for you dear developers!

One stupid rule Kai has made for dear developers is that you must add KaiAds to your app!

So this means one of these:

Both suck, the latter sucks more. That's why many developers and I have never submitted our apps to KaiStore, yet. Besides, I will probably make my free/open source app, non-free by letting KaiAds in.

There's however this quote from KaiOS developers FAQ which I'm unaware how much is it real:

If for the specific reason you can’t monetize your content or would not like to monetize, kindly reach out to developersupport@kaiostech.com

Another stupid rule is the one regarding VoIP apps when they want to use Mobile data for voice or video calls. I don't know if it is still there. Luxferre had pointed to it somewhere(on the forum?) and I had seen it myself on Kai's website. This means I probably cannot submit Chooj to KaiStore even if I wanted to use KaiAds!

Weak hardware and crappy devices

As far as I know, all KaiOS devices come either with 512MiB or 256MiB of RAM. I know KaiOS can run on 256MiB of RAM and that's great but what about the apps?

And their processor is usually pretty weak dual/quad-core ones. I was lucky to have Qualcomm's processor on my Nokia phones but what about the other users?

Another problem is with the shape of devices: The Bananaphone is curved and the Flip of Nokia is... Flip. Both are subject to be easily breakable...

And as the last set of problems I'll specify here, I would like to mention that there are hardware or software bugs in many devices which never got fixed. Hey, Nokia! Don't you hear the voice of probably thousands of users of 8110 including me complaining about its keypad? Or the problem of 6300's GPS perhaps?

You may install apps from KaiStore or... KaiStore!

Unlike in Android which you can simply download APKs from the Internet and install them on your device or use third party stores like the cool and free(as in freedom) F-droid, on KaiOS the only source of apps is KaiStore.

Some users might mention sideloading with WebIDE but firstly, it requires a computer of some sort and secondly, it is not available on all devices easily.

Even on those which you can easily sideload stuff, there is a code which you should dial which nowhere(as far as I've seen) in the official documentation of KaiOS(not FirefoxOS), it has been written! And to enable the developer menu you need to sideload something like Luxferre's Wallace Toolbox after you enabled debug mode with that code.

Also on the newer firmware build for the Flip and the Tough of Nokia which is v30, sideloading seems to be disabled and you have to patch the /boot partition with EDL to be able to sideload apps again. Fortunately, I didn't upgrade to the v30 build for my 800 Tough.

Other reasons in brief why KaiOS sucks...

What am I going to do?

I will wait till KaiOS 3.0 and only if it satisfied me, I would continue being on this platform and develop for it. Otherwise, I would leave it and perhaps go for an Android phone. Nevertheless, I shall continue developing Chooj if possible.

I might be wrong in some cases. So I love to hear from you, readers! Consider commenting at the bottom of this post.