Skip to content

Commit

Permalink
Minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
bmndc committed Aug 7, 2024
1 parent dcbf070 commit cd11444
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions _posts/2024-08-06-kaios-rom.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ Short answer: we don't have enough publicly available components to create an ex

KaiOS is considered a proprietary product, which means only KaiOS Technologies, its shareholders, and business partners can access, modify, and build on the codebase. It's the choice they made for the business model and that [something we cannot alter]. But as KaiOS is derived from Firefox OS, parts of it, like Boot2Gecko, are under [Mozilla Public Licence 2.0], and KaiOS Technologies has no choice but to open-source the original work by the Mozilla team, along with any modifications made to it. Much of the operating system, like the Gaia apps, is still missing, making it impossible to build or port an exact copy of KaiOS on our own.

To build KaiOS would also need the device-specific drivers (HALs, or referred to as Gonk), because there's no point of operating systems if they cannot communicate with the hardware. Phone manufacturers are obligated to release the Linux kernel under [the GNU GPLv2], and [they sometimes do] — along with the Gonk layer, which makes things like postmarketOS possible. Other times, they do not or are not able to (shout out to MediaTek), making things tricky if the device is too different from others that have been open-sourced.
To build KaiOS would also need the device-specific drivers (HALs, or referred to as Gonk), because there's no point of operating systems if they cannot communicate with the hardware. Phone manufacturers are obligated to release the Linux kernel under [the GNU GPLv2], and [they sometimes do] — along with the Gonk layer, which makes projects like postmarketOS possible. Other times, they do not or are not able to (shout out to MediaTek), making things tricky if the device significantly differs from those that have been open-sourced.

Although the companies are not required to release any changes or additions made beyond the open-sourced modules, KaiOS has made some contributions to [the publicly available fork] and introduced new APIs. And since the partnership between KaiOS Technologies and Mozilla, employees who formerly worked on B2G and Firefox OS has also worked on the fork and modernised it, by updating the Gecko engine and integrating a selection of current web technologies. Building another operating system off the fork is doable (see [Capyloon]).
While the companies aren't required to release any changes or additions made beyond the open-sourced modules, KaiOS has made some contributions to [the publicly available fork] and introduced a number of new APIs. Consequently, since the partnership between KaiOS Technologies and Mozilla, former employees who worked on B2G and Firefox OS have also worked on the fork and modernised it, by updating the Gecko engine and integrating a selection of current web technologies. Building another operating system based on this fork is possible, as demostrated by projects like [Capyloon].

But you may ask, surely we can make an generic image file that we can flash on every device, [something like this], right?

ROMs for ARM devices don't work the same way as ISOs for desktop operating systems, because configurations are way too vary between devices (quad-core, octa-core, Cortex-A7, Cortex-A55 etc.) Often, phone manufacturers will work with KaiOS to get the source code, tweak it to optimise the OS on their phones, build the code themselves, then conduct some QA testing. The entire process costs a ton of money (which explains there aren't even any updates for already released phones.) Even Apple has to build IPSWs for each of their supported devices, but it benefits from having control over both the OS and the hardware.
<img src="{{ "/assets/images/blog/2024-08-07-14-44-35.png" | relative_url }}" alt="Comment on a Reddit post">

KaiOS doesn't have some sort of generic ROMs that you can flash to get your phone half-baked. The concept was only introduced with Project Treble in 2017 and Project Mainline in 2019 on Android, and works by separating the operating system code from driver code of manufacturers. And even then [the result is less than ideal].
ROMs for ARM devices don't work the same way as ISOs for desktop operating systems due to the vast differences in configurations among devices (quad-core, octa-core, Cortex-A7, Cortex-A55, etc.) Often, phone manufacturers work with KaiOS to get the source code, tweak it to optimise the OS on their phones, build the code themselves, and then conduct QA testing. This entire process costs a ton of money (which explains there aren't even any updates for already released phones.) Even Apple has to create IPSWs for each of its supported devices, but it benefit from having control over both the OS and the hardware.

LineageOS and custom Android-based OSes are different, since Android is mostly open-sourced, and phones chosen by the community either have kernel source code released as required by GNU GPL/LGPL licences, or are similar to those that have been open-sourced. This, plus with a bit of work, make custom Android ROMs possible.
KaiOS doesn't have any sort of generic ROMs that you can flash to get your phone half-baked. This is something you can only do on Android; the concept was introduced with Project Treble in 2017 and Project Mainline in 2019, and works by separating the operating system code from the manufacturer's driver code. Even then, [the results are less than ideal].

P.S. For dumbproof purposes, partition images under [here](https://github.com/bmndc/nokia-leo/releases/) are not generic, but are extracted from a certain device, specifically the 6300 4G.
LineageOS and other custom Android-based OSes are different, because Android is mostly open-sourced, and phones chosen by the community either have kernel source code released as required by GNU GPL/LGPL licences, or are similar to those that have been open-sourced. This, along with some community work, makes creating custom Android ROMs possible.

inspired by [this /r/archlinux post]

Expand All @@ -29,5 +29,5 @@ inspired by [this /r/archlinux post]
[they sometimes do]: https://github.com/bmndc/nokia-leo/tree/leo-v20
[Capyloon]: https://capyloon.org/
[something like this]: https://developer.android.com/topic/generic-system-image
[the result is less than ideal]: https://xdaforums.com/t/common-gsi-issues-and-fixes.4589327/
[the results are less than ideal]: https://xdaforums.com/t/common-gsi-issues-and-fixes.4589327/
[this /r/archlinux post]: https://www.reddit.com/r/archlinux/comments/1ekq2xx/how_about_making_arch_for_mobile_phones/
Binary file added assets/images/blog/2024-08-07-14-44-35.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit cd11444

Please sign in to comment.