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?

  • bigmclargehuge@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    5 hours ago

    The postmarketOS wiki has info for specific devices, but also an article on installing the generic Snapdragon 865 845 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?

  • humanoidchaos@lemmy.cif.su
    link
    fedilink
    arrow-up
    3
    ·
    7 hours ago

    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.

  • Strit@lemmy.linuxuserspace.show
    link
    fedilink
    arrow-up
    17
    ·
    1 day ago

    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.

  • Björn Tantau@swg-empire.de
    link
    fedilink
    arrow-up
    14
    arrow-down
    1
    ·
    edit-2
    1 day ago

    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.

  • Katzenmann@feddit.org
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 day ago

    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.

    • timidtaxidermist@lemmy.caOP
      link
      fedilink
      arrow-up
      4
      ·
      1 day ago

      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!

  • communism@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    1 day ago

    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.

    • timidtaxidermist@lemmy.caOP
      link
      fedilink
      arrow-up
      3
      ·
      1 day ago

      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.

      • communism@lemmy.ml
        link
        fedilink
        arrow-up
        4
        ·
        1 day ago

        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…)