<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>foss &amp;mdash; farooqkz</title>
    <link>https://blog.bananahackers.net/farooqkz/tag:foss</link>
    <description>Farooq&#39;s KaiOS related experiences started with a hackable banana</description>
    <pubDate>Fri, 15 May 2026 15:14:16 +0200</pubDate>
    <item>
      <title>chooj is back into the game!</title>
      <link>https://blog.bananahackers.net/farooqkz/chooj-is-back-into-the-game</link>
      <description>&lt;![CDATA[#chooj #matrix #matrixorg #chat #chatapp #chatclient #foss #kaios&#xA;&#xA;After a long period of no progress, I&#39;ve got time to work on chooj, the Matrix client for KaiOS, again! The progress is slow and constant funding is needed so that project will reach stable status within a reasonable period.&#xA;&#xA;!--more--&#xA;&#xA;What&#39;s new?&#xA;&#xA;From user point of view&#xA;&#xA;Because many security flaws were found in one of dependency libraries of chooj, matrix-js-sdk, I had to tell everyone to stop using chooj. The most important change is that with upgrade of this dependency, chooj is usable again.&#xA;&#xA;There are many small features which have been added. Most importantly, there is a much better and more friendly login progress, you can save pictures to gallery,  log out from chooj(In past the only option was uninstalling chooj and logging out from another client), and join rooms by entering room&#39;s alias(name) or id . Many bugs have been fixed and probably many new ones have been introduced. Finally, I&#39;ve added partial support for checking presence of your contacts. Please check if this feature works with your homeserver. For my homeserver, all contacts show as offline(gray badge next to the user avatar).&#xA;&#xA;From developer point of view&#xA;&#xA;All dependencies have been upgraded to latest versions. This include Inferno, the JS SDK, localforage and many others.&#xA;&#xA;I&#39;ve also switched from webpack to parceljs. The app was initially created with Create Inferno App which used webpack. But during upgrading dependencies(which also required upgrading node), I&#39;ve found webpack has too much overhead with its configuration. While when targeting KaiOS, zero configuration truly doesn&#39;t exist, parcel requires way less effort for this. Also parcel uses Rust which makes building much faster.&#xA;&#xA;There are working development and production builds. But more work must be done. For instance, when targeting Firefox 48, parcel tries to build a bundle which is good for both the ancient FF48 and newer browsers. FF48 doesn&#39;t support Javascript modules while modern browsers support. So parcel builds both module and nomodule Javascripts which make the bundle size twice. You can see this issue in parcel&#39;s repo for tracking the progress of it.&#xA;&#xA;Regarding the UI library, chooj was using AdrianMachado&#39;s KaiUI which is both ancient and intended to be a React UI library. React on KaiOS is really a terrible idea because of its efficiency. chooj, however, was using just styling stuff from the KaiUI. But the dependencies which were supposed to be used in a React project, was also installed with yarn install.&#xA;&#xA;As a long term solution, we need to fork this KaiUI and maintain it ourselves because Adrian is no longer working on it. For now I&#39;ve forked it to KaiUIv2 where all React stuff have been removed and now that is dependency of chooj. The styling stuff, however, is untouched. Many works must be done. I invite users of this KaiUI to help me with maintaining KaiUIv2.&#xA;&#xA;Future plans&#xA;&#xA;I plan to keep the look and feel of chooj as is till I release the first version(which will be 0.0.0). The 0.0.0 release will have very basic functionalities of a chat app including basic chatting, joining rooms both through public directories and by name, inviting users to DM, managing invites, experimental push notification support and perhaps voice call or end to end encryption support.&#xA;&#xA;After that, huge changes must be made. You can see a proposed UI design in this issue. And so many internal changes like separating the KaiUI Inferno components from chooj should also be done.&#xA;&#xA;KaiOS 3.x support&#xA;&#xA;There is no KaiOS 3.x support at the time of writing this post simply because there is no KaiOS 3.x global device which is also debug enabled. Many phones have been released which are US-only. There is Nokia 2780 which is US-only but not carrier locked. But community member who have bought this device are spending their time on finding a way to enable debug mode on this device.&#xA;&#xA;Funding and help needed&#xA;&#xA;Constant funding is needed for the project in the long term:&#xA;&#xA; Push gateway server is required for receiving push notifications. The server software should be written in Rust(or possibly Go if someone else wanted to take the job) which relays the notifications from user&#39;s homeserver to user&#39;s device. The server cost will vary depending on the number of users of chooj. If the number of users are big enough, we could have more than one server for different regions.&#xA;&#xA; Funding is also needed for development of chooj and its push gateway software. While I try to not abandon chooj, but I need an income for my life.&#xA;&#xA; chooj must be tested on different KaiOS versions and phones with different hardware features. For instance, the video call feature will require a phone with a front/selfie camera. While it is possible that I do this part of development remotely(e.g. tell someone else to test), it will be very painful and slow.&#xA;&#xA;To help with funding, I&#39;ve put a Bitcoin Cash(not Bitcoin) address in the project&#39;s README. If you are not already familiar with cryptocurrency stuff, you can buy from Paypal or an exchange like which I&#39;ve mentioned in the link above. And then sending to my address.&#xA;&#xA;There are many other stuff which money will not solve like testing. There is no machine which I can feed it money and after that it will tell me bugs of this project. Also I am a developer and not a UI/UX designer. So help and feedback from the community is necessary just like funding.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/farooqkz/tag:chooj" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">chooj</span></a> <a href="/farooqkz/tag:matrix" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">matrix</span></a> <a href="/farooqkz/tag:matrixorg" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">matrixorg</span></a> <a href="/farooqkz/tag:chat" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">chat</span></a> <a href="/farooqkz/tag:chatapp" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">chatapp</span></a> <a href="/farooqkz/tag:chatclient" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">chatclient</span></a> <a href="/farooqkz/tag:foss" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">foss</span></a> <a href="/farooqkz/tag:kaios" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">kaios</span></a></p>

<p>After a long period of no progress, I&#39;ve got time to work on <a href="https://github.com/farooqkz/chooj" rel="nofollow">chooj, the Matrix client for KaiOS</a>, again! The progress is slow and constant funding is needed so that project will reach stable status within a reasonable period.</p>



<h3 id="what-s-new" id="what-s-new">What&#39;s new?</h3>

<h4 id="from-user-point-of-view" id="from-user-point-of-view">From user point of view</h4>

<p>Because many security flaws were found in one of dependency libraries of chooj, <code>matrix-js-sdk</code>, I had to tell everyone to stop using chooj. The most important change is that with upgrade of this dependency, chooj is usable again.</p>

<p>There are many small features which have been added. Most importantly, there is a much better and more friendly login progress, you can save pictures to gallery,  log out from chooj(In past the only option was uninstalling chooj and logging out from another client), and join rooms by entering room&#39;s alias(name) or id . Many bugs have been fixed and probably many new ones have been introduced. Finally, I&#39;ve added partial support for checking presence of your contacts. Please check if this feature works with your homeserver. For my homeserver, all contacts show as offline(gray badge next to the user avatar).</p>

<h4 id="from-developer-point-of-view" id="from-developer-point-of-view">From developer point of view</h4>

<p>All dependencies have been upgraded to latest versions. This include <a href="https://infernojs.org/" rel="nofollow">Inferno</a>, <a href="https://github.com/matrix-org/matrix-js-sdk" rel="nofollow">the JS SDK</a>, <a href="https://localforage.github.io/localForage" rel="nofollow">localforage</a> and many others.</p>

<p>I&#39;ve also switched from <a href="https://webpack.js.org" rel="nofollow">webpack</a> to <a href="https://parceljs.org" rel="nofollow">parceljs</a>. The app was initially created with <a href="https://github.com/infernojs/create-inferno-app" rel="nofollow">Create Inferno App</a> which used webpack. But during upgrading dependencies(which also required upgrading node), I&#39;ve found webpack has too much overhead with its configuration. While when targeting KaiOS, zero configuration truly doesn&#39;t exist, parcel requires way less effort for this. Also parcel uses <a href="https://rust-lang.org/" rel="nofollow">Rust</a> which makes building much faster.</p>

<p>There are working development and production builds. But more work must be done. For instance, when targeting Firefox 48, parcel tries to build a bundle which is good for both the ancient FF48 and newer browsers. FF48 doesn&#39;t support Javascript modules while modern browsers support. So parcel builds both module and nomodule Javascripts which make the bundle size twice. You can see <a href="https://github.com/parcel-bundler/parcel/issues/8783" rel="nofollow">this issue in parcel&#39;s repo</a> for tracking the progress of it.</p>

<p>Regarding the UI library, chooj was using <a href="https://github.com/AdrianMachado/KaiUI" rel="nofollow">AdrianMachado&#39;s KaiUI</a> which is both ancient and intended to be a React UI library. React on KaiOS is really a terrible idea because of its efficiency. chooj, however, was using just styling stuff from the KaiUI. But the dependencies which were supposed to be used in a React project, was also installed with <code>yarn install</code>.</p>

<p>As a long term solution, we need to fork this KaiUI and maintain it ourselves because Adrian is no longer working on it. For now I&#39;ve forked it to <a href="https://github.com/farooqkz/KaiUIv2" rel="nofollow">KaiUIv2</a> where all React stuff have been removed and now that is dependency of chooj. The styling stuff, however, is untouched. Many works must be done. I invite users of this KaiUI to help me with <a href="https://github.com/farooqkz/KaiUIv2/issues" rel="nofollow">maintaining KaiUIv2</a>.</p>

<h3 id="future-plans" id="future-plans">Future plans</h3>

<p>I plan to keep the look and feel of chooj as is till I release the first version(which will be <code>0.0.0</code>). The <code>0.0.0</code> release will have very basic functionalities of a chat app including basic chatting, joining rooms both through public directories and by name, inviting users to DM, managing invites, experimental push notification support and perhaps voice call or end to end encryption support.</p>

<p>After that, huge changes must be made. You can see a proposed UI design in <a href="https://github.com/farooqkz/chooj/issues/51" rel="nofollow">this issue</a>. And so many internal changes like <a href="https://github.com/farooqkz/chooj/issues/62" rel="nofollow">separating the KaiUI Inferno components from chooj</a> should also be done.</p>

<h3 id="kaios-3-x-support" id="kaios-3-x-support">KaiOS 3.x support</h3>

<p>There is no KaiOS 3.x support at the time of writing this post simply because there is no KaiOS 3.x global device which is also debug enabled. Many phones have been released which are US-only. There is <a href="https://wiki.bananahackers.net/en/devices/nokia-2780-flip" rel="nofollow">Nokia 2780</a> which is US-only but not carrier locked. But community member who have bought this device are spending their time on finding a way to enable debug mode on this device.</p>

<h3 id="funding-and-help-needed" id="funding-and-help-needed">Funding and help needed</h3>

<p>Constant funding is needed for the project in the long term:</p>
<ul><li><p>Push gateway server is required for receiving push notifications. The server software should be written in Rust(or possibly Go if someone else wanted to take the job) which relays the notifications from user&#39;s homeserver to user&#39;s device. The server cost will vary depending on the number of users of chooj. If the number of users are big enough, we could have more than one server for different regions.</p></li>

<li><p>Funding is also needed for development of chooj and its push gateway software. While I try to not abandon chooj, but I need an income for my life.</p></li>

<li><p>chooj must be tested on different KaiOS versions and phones with different hardware features. For instance, the video call feature will require a phone with a front/selfie camera. While it is possible that I do this part of development remotely(e.g. tell someone else to test), it will be very painful and slow.</p></li></ul>

<p>To help with funding, I&#39;ve put a Bitcoin Cash(<strong>not Bitcoin</strong>) address in <a href="https://github.com/farooqkz/chooj#donations" rel="nofollow">the project&#39;s README</a>. If you are not already familiar with cryptocurrency stuff, you can buy from Paypal or an exchange like which I&#39;ve mentioned in the link above. And then sending to my address.</p>

<p>There are many other stuff which money will not solve like testing. There is no machine which I can feed it money and after that it will tell me bugs of this project. Also I am a developer and not a UI/UX designer. So help and feedback from the community is necessary just like funding.</p>
]]></content:encoded>
      <guid>https://blog.bananahackers.net/farooqkz/chooj-is-back-into-the-game</guid>
      <pubDate>Sun, 12 Feb 2023 17:14:46 +0100</pubDate>
    </item>
    <item>
      <title>KaiOS shows us importance of FOSS</title>
      <link>https://blog.bananahackers.net/farooqkz/kaios-shows-us-importance-of-foss</link>
      <description>&lt;![CDATA[#kaios #foss #opensource #freesoftware #libresoftware&#xA;&#xA;About software and its distribution&#xA;&#xA;In the years which software was not commercialized and copyright about software was not yet a thing. People were distributing software and its source code and users were changing the software to their wish for better usability. The term hacker didn&#39;t mean someone who breaks into servers but it meant someone who plays around with the software and possibly fix bugs or add features to make it more useful. Today, this is known as &#34;Hacker in the MIT sense&#34;.&#xA;&#xA;!--more--&#xA;&#xA;Later came FOSS to bring the same advantages to the software world in the modern era. FOSS stands for Free Open Source Software. Strictly speaking, free software and open source software are different. Free here means freedom not zero price. However most pieces of software which are free software are also open source and vice versa. This includes those under MIT/X11, GPL, LGPL, MPL and many many other such these licences.&#xA;&#xA;Nowadays, a software does not necessarily come with the source code. Even if it&#39;s written in a language like Javascript which does not give your a binary, yet you don&#39;t have the source code because people mangle and minify the JS code. This will make the final package smaller and will also prevent users from understanding what the software does. To understand such a code, first you must add proper formatting and indentation to it. After that you&#39;ll have a bunch of function or variable names which use a single character and no comments to help you understand the code. I remember a friend had said &#34;These apps have been written without any love&#34;. I told him the &#34;love&#34; has been removed from the apps before deploying to production!&#xA;&#xA;From a point of view, KaiOS is just a pre-built Lego, just like any other Unix-like distribution. It&#39;s a Linux distro. The main parts of this Lego are the Linux kernel which its job is communication with the hardware, the libraries including libc which provide a useful and more abstract way to talk to kernel, and finally Gecko which on the top of it KaiOS applications, including the System app and the stock apps, run. There are also many other stuff like propriety vendor-dependent stuff.&#xA;&#xA;Which parts of KaiOS are FOSS?&#xA;&#xA;The Linux kernel used in KaiOS phones is under GPLv2. GPL is a strong copyleft licence. Many other &#34;userland&#34; libraries have similar licences. Gecko has a copyleft licence but a weak one. Copyleft means you can take the software and use it and possibly change it. But if you want to give the software to the others, you must give them the software and the changes in source code form as well. So from a legal point of view, KaiOS manufacturers must provide users the source codes which are under a copyleft licence. For example Nokia has published source code of Linux, many libraries and Gecko.&#xA;&#xA;But will giving you the source code make it possible for you to change the OS to your wish and deploy the new version to your phone? Sadly, the answer is not a total yes.&#xA;&#xA;First, many drivers are vendor-dependent and propriety. For instance, my 800 Tough has a Snapdragon from Qualcomm. If you have a similar phone, you will find many stuff in your phone with qcom in their name for various hardware features of the phone, including but not limited to Camera, charging, Cellular data and 3D acceleration. So where&#39;s the copyleft? The Linux kernel is under GPL which is a strong copyleft. Strong copyleft simply means you cannot combine propriety code with strong copyleft code. But Qualcomm uses propriety firmwares for various hardwares on the phone which are not linked with the Linux kernel and therefore it&#39;s not necessary to release the source code. Also not every part of KaiOS is strong copyleft. There is also weak copyleft which permits the combination as long as the original source code will be available. Or in other words, the open source part does not become closed source. Gecko uses Mozilla Public License or MPL which is of this kind.&#xA;&#xA;Second, there are many &#34;System&#34; and &#34;Stock&#34; apps used in KaiOS which are not FOSS. If you want your own free KaiOS, you&#39;ll have to write your own version of these apps. Like Contact, Call log, messaging and Settings app. And the most important one, the System app which runs other apps.&#xA;&#xA;Third and the worst problem is that even if you&#39;ve got an OS to deploy, the problem is the deploying process! You&#39;ll need to write your version of OS to device&#39;s internal storage and make your phone boot it. It&#39;s not easy, simple or straightforward. Companies usually lock their phones to prevent this and frighten customers that if they try such these ways, their phone will go out of warranty.&#xA;&#xA;Nevertheless, there has been attempts to port different stuff to KaiOS phones by using the Linux kernel and possibly other userlands. You can see Affe Null&#39;s Bananian project which ports Debian to the BananaPhone. I also remember Affe talking about running KaiOS 3.x on his port but it wasn&#39;t useful without hardware drivers and other apps, especially the System app. Last time I asked him, he said he is no longer working on Bananian and instead working on postmarketOS.&#xA;&#xA;Note: postmarketOS is a Linux distribution for the mobile phones. It uses the mainline Linux kernel and Alpine Linux on the top. You might see a variety of different old or very old mobile phones, mostly Android ones, which pmOS supports them. Unfortunately, because of drivers being propriety and little manpower to reverse engineer and replace them with FOSS ones, there aren&#39;t many devices with very good support of pmOS.&#xA;&#xA;So just the kernel being FOSS has enabled the community to port different stuff to these feature phones. And this shows importance of the kernel to be FOSS.&#xA;&#xA;Which parts of KaiOS are source available but not FOSS?&#xA;&#xA;Source available means you can see the source code but you are not permitted to change it and/or distribute with or without changes. All stock and System apps of KaiOS are source available because they are written in Javascript. Because the JS code has been mangled and minified, it&#39;s not easy to understand and modify them. Yet the BananaHackers community has provided near 20 ways as of writing this post to customize your device. To have custom launcher, custom Contact app, custom apps to launch from Lock-screen, change settings of stock apps and a lot more.&#xA;&#xA;Now imagine if we had source code of these apps under a FOSS licence, we could do much better and travel much further. Because the licence of stock apps does not allow re-distribution, legally we are not permitted to publish the entire improved packages or custom ROMs.&#xA;&#xA;Conclusion&#xA;&#xA;So if the ecosystem was FOSS-based and if the devices were not locked, KaiOS could be much better and it wasn&#39;t the only practical choice we have got on our mobile phones. And we see that even though the stock apps are not FOSS, and their sources are not available, we have made significant improvements to the ecosystem for ourselves and other users of this ecosystem. If locked phones were not locked, their users could have these improvements in their hands as well.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="/farooqkz/tag:kaios" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">kaios</span></a> <a href="/farooqkz/tag:foss" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">foss</span></a> <a href="/farooqkz/tag:opensource" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">opensource</span></a> <a href="/farooqkz/tag:freesoftware" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">freesoftware</span></a> <a href="/farooqkz/tag:libresoftware" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">libresoftware</span></a></p>

<h2 id="about-software-and-its-distribution" id="about-software-and-its-distribution">About software and its distribution</h2>

<p>In the years which software was not commercialized and copyright about software was not yet a thing. People were distributing software and its source code and users were changing the software to their wish for better usability. The term hacker didn&#39;t mean someone who breaks into servers but it meant someone who plays around with the software and possibly fix bugs or add features to make it more useful. Today, this is known as “Hacker in the MIT sense”.</p>



<p>Later came FOSS to bring the same advantages to the software world in the modern era. FOSS stands for Free Open Source Software. Strictly speaking, free software and open source software are different. Free here means freedom not zero price. However most pieces of software which are free software are also open source and vice versa. This includes those under <a href="https://en.wikipedia.org/wiki/MIT_License" rel="nofollow">MIT/X11</a>, <a href="https://en.wikipedia.org/wiki/GNU_General_Public_License" rel="nofollow">GPL</a>, <a href="https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License" rel="nofollow">LGPL</a>, <a href="https://en.wikipedia.org/wiki/Mozilla_Public_License" rel="nofollow">MPL</a> and many many other such these licences.</p>

<p>Nowadays, a software does not necessarily come with the source code. Even if it&#39;s written in a language like Javascript which does not give your a binary, yet you don&#39;t have the source code because people mangle and minify the JS code. This will make the final package smaller and will also prevent users from understanding what the software does. To understand such a code, first you must add proper formatting and indentation to it. After that you&#39;ll have a bunch of function or variable names which use a single character and no comments to help you understand the code. I remember a friend had said “These apps have been written without any love”. I told him the “love” has been removed from the apps before deploying to production!</p>

<p>From a point of view, KaiOS is just a pre-built Lego, just like any other Unix-like distribution. It&#39;s a Linux distro. The main parts of this Lego are the Linux kernel which its job is communication with the hardware, the libraries including <code>libc</code> which provide a useful and more abstract way to talk to kernel, and finally Gecko which on the top of it KaiOS applications, including the System app and the stock apps, run. There are also many other stuff like propriety vendor-dependent stuff.</p>

<h2 id="which-parts-of-kaios-are-foss" id="which-parts-of-kaios-are-foss">Which parts of KaiOS are FOSS?</h2>

<p>The Linux kernel used in KaiOS phones is under GPLv2. GPL is a strong copyleft licence. Many other “userland” libraries have similar licences. Gecko has a copyleft licence but a weak one. Copyleft means you can take the software and use it and possibly change it. But if you want to give the software to the others, you must give them the software and the changes in source code form as well. So from a legal point of view, KaiOS manufacturers must provide users the source codes which are under a copyleft licence. For example Nokia has published source code of Linux, many libraries and Gecko.</p>

<p>But will giving you the source code make it possible for you to change the OS to your wish and deploy the new version to your phone? Sadly, the answer is not a total yes.</p>

<p>First, many drivers are vendor-dependent and propriety. For instance, my 800 Tough has a Snapdragon from Qualcomm. If you have a similar phone, you will find many stuff in your phone with <code>qcom</code> in their name for various hardware features of the phone, including but not limited to Camera, charging, Cellular data and 3D acceleration. So where&#39;s the copyleft? The Linux kernel is under GPL which is a strong copyleft. Strong copyleft simply means you cannot combine propriety code with strong copyleft code. But Qualcomm uses propriety firmwares for various hardwares on the phone which are not linked with the Linux kernel and therefore it&#39;s not necessary to release the source code. Also not every part of KaiOS is strong copyleft. There is also weak copyleft which permits the combination as long as the original source code will be available. Or in other words, the open source part does not become closed source. Gecko uses Mozilla Public License or MPL which is of this kind.</p>

<p>Second, there are many “System” and “Stock” apps used in KaiOS which are not FOSS. If you want your own free KaiOS, you&#39;ll have to write your own version of these apps. Like Contact, Call log, messaging and Settings app. And the most important one, the System app which runs other apps.</p>

<p>Third and the worst problem is that even if you&#39;ve got an OS to deploy, the problem is the deploying process! You&#39;ll need to write your version of OS to device&#39;s internal storage and make your phone boot it. It&#39;s not easy, simple or straightforward. Companies usually lock their phones to prevent this and frighten customers that if they try such these ways, their phone will go out of warranty.</p>

<p>Nevertheless, there has been attempts to port different stuff to KaiOS phones by using the Linux kernel and possibly other userlands. You can see <a href="https://git.abscue.de/bananian/bananian" rel="nofollow">Affe Null&#39;s Bananian</a> project which ports <a href="https://debian.org" rel="nofollow">Debian</a> to the BananaPhone. I also remember Affe talking about running KaiOS 3.x on his port but it wasn&#39;t useful without hardware drivers and other apps, especially the System app. Last time I asked him, he said he is no longer working on Bananian and instead working on <a href="https://postmarketos.org/" rel="nofollow">postmarketOS</a>.</p>

<p><strong>Note: postmarketOS is a Linux distribution for the mobile phones. It uses the mainline Linux kernel and <a href="https://alpinelinux.org/" rel="nofollow">Alpine Linux</a> on the top. You might see a variety of different old or very old mobile phones, mostly Android ones, which pmOS supports them. Unfortunately, because of drivers being propriety and little manpower to reverse engineer and replace them with FOSS ones, there aren&#39;t many devices with very good support of pmOS.</strong></p>

<p>So just the kernel being FOSS has enabled the community to port different stuff to these feature phones. And this shows importance of the kernel to be FOSS.</p>

<h2 id="which-parts-of-kaios-are-source-available-but-not-foss" id="which-parts-of-kaios-are-source-available-but-not-foss">Which parts of KaiOS are source available but not FOSS?</h2>

<p>Source available means you can see the source code but you are not permitted to change it and/or distribute with or without changes. All stock and System apps of KaiOS are source available because they are written in Javascript. Because the JS code has been mangled and minified, it&#39;s not easy to understand and modify them. Yet <a href="https://wiki.bananahackers.net/Customizations" rel="nofollow">the BananaHackers community has provided near 20 ways</a> as of writing this post to customize your device. To have custom launcher, custom Contact app, custom apps to launch from Lock-screen, change settings of stock apps and a lot more.</p>

<p>Now imagine if we had source code of these apps under a FOSS licence, we could do much better and travel much further. Because the licence of stock apps does not allow re-distribution, <em>legally</em> we are not permitted to publish the entire improved packages or custom ROMs.</p>

<h2 id="conclusion" id="conclusion">Conclusion</h2>

<p>So if the ecosystem was FOSS-based and if the devices were not locked, KaiOS could be much better and it wasn&#39;t the only practical choice we have got on our mobile phones. And we see that even though the stock apps are not FOSS, and their sources are not available, we have made significant improvements to the ecosystem for ourselves and other users of this ecosystem. If <a href="https://wiki.bananahackers.net/en/devices/locked-devices" rel="nofollow">locked phones</a> were not locked, their users could have these improvements in their hands as well.</p>
]]></content:encoded>
      <guid>https://blog.bananahackers.net/farooqkz/kaios-shows-us-importance-of-foss</guid>
      <pubDate>Tue, 03 Jan 2023 17:27:51 +0100</pubDate>
    </item>
  </channel>
</rss>