Hi all! I’d like to get into development for linux-based OSes for mobile phones but don’t know where to start. I mainly want to support the broadening of supported devices for something like Postmarketos. Where do I start? Are there any handbooks out there that can guide me in the right direction? What’s the most promising project to start contributing to?
The postmarketOS wiki has info for specific devices, but also an article on installing the generic Snapdragon
865845 build of the OS on any device with that chip, of which there are numerous, many without extensive support. That might be a starting point?I’m not a developer, but I’m guessing a good start would be to try installing it on an old phone if you have one.
See what problems you come across, try to learn what’s going on, share your knowledge with others.
I recently saw a post from one of the PostmarketOS devs asking for someone to start maintaining the sdm845 out-of-tree fork of the kernel.
Post was on mastodon, but I can’t find it right now.
But you could ask in the PostmarketOS support/dev chats on what they need help with.
Great - I’ll head over there too.
Go to their GitHub and look at issues and their comments first.
I think the easiest is to get the thing onto some device. Pick something that annoys you and make it work better. There are so many parts to this it’s hard to recommend one. You have low level device drivers, the user interface in the form of DEs, or the apps themselves, either making the desktop apps work better or creating mobile ones.
You can also pick one of these things, find the related bugtracker and try to fix some easy looking bugs.
Sounds good - I have a couple devices lying around so l’ll try jumping in and see where it goes!
Great to hear that you’re looking to get into PostmarketOS development! I recommend taking a phone that’s already supported, using it and then figure out how improve support the device.
Porting/Mainlining a new device is also possible but that can be demotivating if it doesn’t work and it’s generally harder to get started with.
If you have any questions or need help you can dm me and I can help.
I have a pixel 6a - it looks like there’s been some work done already and it seems to be supported, but lots of work to be done. Let’s see what I can do with it!
Have you done OS dev before? Do you know a systems programming language? Learn an appropriate language if you don’t already know one, then look up OS dev books/guides online for that language. Someone’s probably made a minimal kernel in that language you can refer to.
You mentioned postmarketOS so you could have a look here and here.
Thank you - OS dev is new to me. I don’t have any real competency in any language yet, so I’ll make that a priority. I’ll use postmarketOS as my main point of reference, so I’ll take a look through their docs as a starting point.
I’d recommend learning either C or Rust. Pretty much every mainstream OS will be written in C. Rust is newer but known for its safety and a much more modern language. There are other systems programming languages but those two are very popular and will have lots of OS dev resources, plus if you are working with existing codebases they will be in C. Other languages may be entirely possible to write an OS in, and for really big ones like C++ and Go I’m sure there’s lots of OS dev resources for them too, I’m just not familiar with the OS dev ecosystem for those languages (and at the very least I hope it’s not controversial to say C++ has been made obsolete by the new systems languages…)
Great, C it is for a starting point