Skip to content

Commit

Permalink
Minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
bmndc authored Aug 6, 2024
1 parent 23bb971 commit 844b562
Show file tree
Hide file tree
Showing 2 changed files with 11 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 @@ -2,24 +2,24 @@
layout: post
title: Can I put KaiOS on other devices?
---
KaiOS is considered to be a proprietary product, which means only KaiOS Technologies, its shareholders and its business partners have access to 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 to open-source the original work by the Mozilla team. The companies are not required to release their work on top of the open-sourced modules, and opted not to do so.
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 KaiOS Technologies and Mozilla partnership, employees who formerly worked on B2G and Firefox OS has been working on [the publicly available fork] and modernising it by upgrading the Gecko engine and integrating a selection of current web technologies. But much of the operating system, like the Gaia apps, is still missing, making it almost impossible to build or port KaiOS.
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.

To build KaiOS would also need device 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 obliged 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 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?

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

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 [they don't work so well].
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].

LineageOS and custom Android-based OSes are different, since Android is mostly open-sourced, and phone manufacturers chosen by the community either actually release kernel source code as required by GPL/LGPL licences, or the phone is similar to those that have been open-sourced. This, plus with a bit of work, make custom Android ROMs possible.
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.

[something we cannot alter]: https://www.kaiostech.com/faq/can-i-access-the-source-code/
[Mozilla Public Licence 2.0]: https://github.com/kaiostech/gecko-b2g/blob/gonk/toolkit/content/license.html
[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
[something like this]: https://developer.android.com/topic/generic-system-image
[they don't work so well]: https://xdaforums.com/t/common-gsi-issues-and-fixes.4589327/
[the result is less than ideal]: https://xdaforums.com/t/common-gsi-issues-and-fixes.4589327/
4 changes: 4 additions & 0 deletions assets/css/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
}
}

h2, h3, h4 {
font-family: monospace;
}

.leo {
margin: 0 0 1rem 1rem;
}
Expand Down

0 comments on commit 844b562

Please sign in to comment.