Version: Smart Feature Phone 4.0
4.0 Overview
New Gecko
- Using Gecko version 123(Feb. 20, 2024)
- Gecko changes since version 123
- Enhanced Service Worker
- Modern JS (ECMAScript 2021)
- PWA (Progress Web App) support
- WebRender
- WebAssembly
- WebRTC and WebAudio improve
- WebGL 2 interface to OpenGL ES 3.0
- Quantum CSS (parallel CSS engine)
- TLS 1.0, 1.1 dropped (1.2,1.3 remain)
- Web Animation API
- WebP support
- Media capabilities API
- Speech Synthesis API
- Web Authentication API
- Encrypted Media Extensions API (EME)
- Accepts some Webkit prefixed properties and attributes
- Vowifi Entitlement
- 5G data
- WiFi 2.4G and 5G
- Copy&Paste support for smart feature phone
New Gonk layer
- Adapt to BSP AIDL interface
- Unify the hardware abstraction interfaces defined by Google
- May ease the porting efforts if new BSP version or new chipset coming
Web API changes
- API domain name change
- New API
- Deprecated Web APIs
NewKai-RIL design
There are two RIL services design for KaiOS 4.0
- Kai-RIL: used for non-QCT platforms, implemented and maintained by KaiOS.
- QC-RIL(b2g-RIL): For QCT platform only, implemented, maintained and released by QCT.
Since KaiOS 4.0, Kai-RIL switches to an AIDL interface which is compatible with Android 14. KaiOS 4.0 begins to support 5G (VoNR and VoWiFi), eSIM (2.3), network slicing, and DSDS.
V2.5 RIL

V3.0 RIL

V4.0 RIL

Service Worker change
- No permission needed
- Clients.openApp is not supported, using Clients.openWindow by following W3C standards
- SystemMessage API supported and onsystemmessage event is introduced
- Can inspect service workers script by Remote Debugging
Geolocation change
- Geolocation API is following W3C standards
- QCT provides iZat (Qualcomm Location) service in both in 2.5, 3.0 and 4.0.
- In 2.5, iZat is tightened up on QC-RIL. It provides GPS, AGPS, Wifi positioning, Cell info location.
- In 3.0, Kai-RIL connect iZat through HIDL interface. QCT didn’t maintain Wifi positioning and use Skyhook in place.
- Using iZat service needs agreement from QCT in both in 2.5, 3.0 and 4.0.
- In 4.0, Kai-RIL connect iZat through AIDL interface. QCT didn’t maintain Wifi positioning and use Skyhook in place.
New Apps manager
In KaiOS 4.0, mozApps API is removed and new apps manager is implemented.
- webapps-manager permission
- App is launched with open api with url, Apps manager supports:
- App download/downloaded resume
- Install/sideload package apps
- Install PWA apps
- Update/Uninstall apps
- App signature check
- Get apps list
App types in KaiOS 4.0
- Signed App (privileged app in 2.5)
- 3rd party packaged app preinstalled in /system, but copied to read-write /data or download from store and store in /data, both can be upgraded without FOTA
- PWA App (hosted app in 2.5)
- hosted 3rd party apps from store or PWA website
App origin in KaiOS 4.0
- “app://” are removed, all app origins are “http://”. For example,
http://launcher.localhostfor launcher app andhttps://example.comfor PWA - App manager uses app origin and manifest to tell app types
- Signed app:
http://app_name.localhost - PWA:
https://example.com
- Signed app:
App manifest
- PWA manifest w3c spec: firefox 82
- Non-normative(B2G): b2g_features
- File extension
- The latest w3c spec[1] says .webmanifest is the official file extension for web apps, but we do have .webapp and .json before the spec defined it.
App manifest required
- name or short_name: string
- description: string
- lang: string
- id: string
- theme_color: string
- background_color: string
- orientation: string
- start_url: string
- icons: Array of object
App manifest optional
- dir: string
- scope: string
- display: string
- orientation: string
- related_applications: Array of object
Permission Management
- The permission management mechanism is the same between 3.0 and 4.0.