There are countless hobby OS projects in x86 platform, there are also countless resource on how to create a custom OS, but why are there no resource or hobby OS projects in Android phones hardware?<p>I am not talking about PostmarketOS or similar large community projects, just small single person hobby projects.<p>And are there any resourc guide on creating a simple kernel which shows "Hello world" in the phone boot screen like x86 kernel project guides?<p>Can anyone share the links for OS development resource in android phones and resource for understanding android mobile hardware?
From the places I have lurked in so far, a lot of effort goes into reverse engineering the drivers etc... on these SOCs. If you were to spend weeks/months trying to figure out those details, it kind of makes sense to get mainline linux to run on these devices as opposed to a custom OS with no existing software.<p>If truly custom OS/Kernel is what you want, someone was trying to run NuttX RTOS on Pinephone:<p>1) Booting NuttX: <a href="https://lupyuen.github.io/articles/uboot" rel="nofollow noreferrer">https://lupyuen.github.io/articles/uboot</a>
2) Writing an LCD Driver: <a href="https://lupyuen.github.io/articles/dsi2" rel="nofollow noreferrer">https://lupyuen.github.io/articles/dsi2</a>
3) Getting a basic terminal running using LVGL: <a href="https://lupyuen.github.io/articles/terminal" rel="nofollow noreferrer">https://lupyuen.github.io/articles/terminal</a><p>I'd still recommend trying to port PostmarketOS/Ubuntu touch/Sailfish OS etc.. to your phone first. That can be a good beginner friendly way to understand what happens on your smart phone: the boot process, software stack etc.. and then you can go deeper by either customizing the software (Boot into a little web browser and call it a web phone etc..)/drivers to your liking (Adding features like double tap to wake)/trying to port mainline kernel to them.
The least charitable explanation: mobile hardware is designed adversarially with regard to end users. The most charitable explanation is providing access is too much work than can be justified as a business expensive.<p>I think reality is somewhere in between. End users of mobile phones are a threat vector to carrier infrastructure. Phones obsoless quickly because electronics manufacture is so fluid.<p>To put it another way, producing comprehensive technical documentation would probably take longer than the product life cycle of the products documented, and the fat part of the belle-curve of comprehensive documentation use cases is amateur experimentation.<p>In other words, there's no reasonable business case for giving you ready access to technical documentation and a lot of reasonable business cases against it.<p>I am not saying this is good. Not saying it is bad. It just is and therefore is not worth having an opinion on because I am not in a position to change it. Probably noone is, it's too complex.
Because the hardware is usually locked down much more than a typical PC and there is far less documentation. So the barrier to entry is substantially higher than for OS development on PCs.