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 fa18729 commit dcbf070
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions _posts/2024-08-06-kaios-rom.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
layout: post
title: Can I put KaiOS on other devices?
---
*Ah yes, the million-dollar question that gets asked every once in a while on /r/KaiOS: Can I build KaiOS from its source code?*
Short answer: we don't have enough publicly available components to create an exact copy of KaiOS, but developing another fork is doable.

KaiOS is considered to be a proprietary product, which means only KaiOS Technologies, its shareholders and its business partners can access and modify the codebase, and can build anything on top of it. It's their choice for the business model and that [something we cannot alter]. However, since KaiOS is derived from Firefox OS, parts of the operating system such as 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. The companies are not required to release any changes or additions they made beyond the open-sourced modules, and opted not to do so.

Generously, since the partnership between KaiOS Technologies and Mozilla, employees who formerly worked on B2G and Firefox OS has been working on [the publicly available fork] and modernising it, by updating the Gecko engine and integrating a selection of current web technologies. Still, much of the operating system, like the Gaia apps, is still missing, making it nearly impossible to build or port 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 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.

So, the short answer is: we don't have enough publicly available components to build a fully functional KaiOS image file. But you may ask, surely we can make an generic image file that we can flash on every device, [something like this], right?
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]).

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.

Expand All @@ -27,6 +27,7 @@ inspired by [this /r/archlinux post]
[the publicly available fork]: https://github.com/kaiostech/gecko-b2g
[the GNU GPLv2]: https://docs.kernel.org/process/license-rules.html
[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/
[this /r/archlinux post]: https://www.reddit.com/r/archlinux/comments/1ekq2xx/how_about_making_arch_for_mobile_phones/

0 comments on commit dcbf070

Please sign in to comment.