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 cd11444 commit 70f9d58
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions _posts/2024-08-06-kaios-rom.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,21 @@
layout: post
title: Can I put KaiOS on other devices?
---
Short answer: we don't have enough publicly available components to create an exact copy of KaiOS, but developing another fork is doable.
Short answer: we don't have enough publicly available components to create an exact copy of KaiOS, but developing a fork is doable.

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.
KaiOS is considered a proprietary product, which means only KaiOS Technologies, its shareholders, and business partners can access, modify, and build on top of the codebase. It's their choice 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 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.

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].
However, 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. 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?

<img src="{{ "/assets/images/blog/2024-08-07-14-44-35.png" | relative_url }}" alt="Comment on a Reddit post">

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.
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 benefits from having control over both the OS and the hardware.

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].

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.
KaiOS doesn’t have generic ROMs that you can flash to get your phone half-baked. That is Android-only; 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].

inspired by [this /r/archlinux post]

Expand Down

0 comments on commit 70f9d58

Please sign in to comment.