I’m planning to move towards using custom ROMs in order to have more control over what is and isn’t installed on my phone.

I’ve got an old spare S8 that I’m going to use as a testbed first to get hands on and learn a bit more. It looks like LineageOS doesn’t provide a build for that model so I’ll need to learn how to prepare one myself.

I’m no stranger to Linux - I’ve built my own kernel (and even once an LFS system) back in the day - what resources would be ideal for getting up to speed with Android?

I’d hopefully like resources that help me understand what’s going on rather than focus purely on completing one task or another.

  • @Pantherina@feddit.de
    link
    fedilink
    English
    175 months ago

    The thing is, “building a kernel” for Linux is NOTHING compared to a custom ROM. Linux Kernel:

    • one repo, just clone it
    • tooling to easily build it, just set some flags
    • a huge monokernel, not including the entire OS and all the SOC stuff

    Android is different. It doesnt use a huge monokernel. They use mostly the upstream kernel, but the drivers are not in there afaik. There are many proprietary parts also in the firmware. And those come from the hardware suppliers, signed by them, you cant replace it. This totally sucks.

    If you look at it the Laptop market is equally bad as firmwares are often not updated at all. But every system simply continues to run, so nobody cares.

    On Android its all one thing. A distro / custom OS (ROM is not correct, the OS is not read only otherwise you cant change it, lol) deals with all of that.

    Look at the GrapheneOS information articles. They explain very well what they all do to make AOSP

    • secure with monthly updates
    • hardened in maaany areas
    • functional (removing Vendor app dependency, integrating some Pixel and even Samsung components, Sandboxed Play services, …)

    Its a on of work to REALLY support a device, its simply a real OS. LineageOS or even worse PostmarketOS are just random projects often. Using some generic software with missing firmware updates and timely security patches.

    It works, somehow. But it is nothing worth investing a lot of time in really, if the phone is not super special.

    Just get a used Google Pixel ≥ 6a and install GrapheneOS. Contribute Code to healthy upstream projects.

    The work for supporting a single device is insane. And samsung is especially shit, security features would be close to Pixels but they block lots of features for alternative OSses and different software everywhere. Also completely anti-repairable.

    • @StryderNotaviOP
      link
      English
      25 months ago

      Ooh, this may be more worth a look then. I had hoped I’d be able to use the old phone to get up to speed before considering going to a custom ROM on my main device but it sounds like a Samsung S8 may be an exceptionally poor choice due to driver availability and other issues.

      Graphene sounds like it addresses a lot of the needs that are pushing me away from stock Android (unnecessary bundled services, concern about Google harvesting more data than they should, Bixby / Google Assistant re-enabling itself every few updates and being pushed on users) but does so in a way won’t sacrifice too much functionality (will definitely learn more about sandboxed Play services - that sounds useful).

      I may have to consider getting a refurbished Pixel and setting it up with Graphene.

      • @Pantherina@feddit.de
        link
        fedilink
        English
        25 months ago

        Yes, do that. Relying on Pixels suck, but they are the best to work with, have best updates, no weirdly blocked security features on custom ROMs and you can unlock them easily.

        GrapheneOS lacks a lot of nice UI stuff as they simply not prioritize it. But an example of what yo can do:

        • use a cracked Nova Launcher Prime
        • use any Keyboard app you like, I like Florisboard
        • use VolumeStyles to give that slider more features
        • use SaverTuner to access deep energy saving settings
        • use any Browser you like (I recommend Mull, Brave or Vanadium)
        • install Tiktok or whatever, best in a work profile or secondary profile
        • install the Google camera, it works out of the box without any hassle, even though GrapheneOS even having a good own Camera app
        • use syncthing, davx5 and more to sync your stuff
        • use F-Droid basic, Auroastore, Accrescent or even Google Play. Get the apps you like

        It is barebones but the Android ecosystem allows to insall a damn fake iOS launcher and it works.

  • @wololo@lemmy.dbzer0.com
    link
    fedilink
    English
    105 months ago

    if there are no custom roms for your device you should just give up. it requires so much resources that it’s almost tiring. If you really want to build lineage for your phone though, there’s a guide on lineage wiki to port the rom. It’s really easy, you just have to download the source code of the rom, add the source code of your phone with its proprietary blobs, then build. The hard part is wether you have the hardware to build or no. You need: 64gb of ram, ccache and zram enabled, 300gbs of storage, and an 8 cores cpu

    • Big P
      link
      fedilink
      English
      85 months ago

      A vanilla build of lineage won’t give you any of the actual advantages of a custom ROM either

    • @henfredemars
      link
      English
      65 months ago

      You might be overlooking the economics in the sense that there tends to be a reason why devices aren’t supported. Oftentimes there is no sources available to build the necessary hardware support.

      • @wololo@lemmy.dbzer0.com
        link
        fedilink
        English
        35 months ago

        yeah true some OEMs take ages to release their source code, or sometimes don’t do it at all even though they’re obligated by their GPL license

  • @henfredemars
    link
    English
    10
    edit-2
    5 months ago

    My answer is not going to be complete in any way, but your biggest problem is going to be getting your hands on kernel sources that build and that actually work for your hardware.

    To complicate the matter, not any kernel will do. The kernel you use must support the Android userspace you want. You cannot arbitrarily pair your kernel version with your Android version. Further, the state of open source kernels on Android is quite poor. Many vendors–Samsung for example release kernel sources but they’re not actually in a buildable, usable state. If you’re just starting out, I would recommend starting with a Pixel where you know you will have sufficient sources to produce a compatible kernel, else you have the unenviable task of patching together something that works from the bits and pieces that get released that comply with the letter of the GPL but not the spirit of it.

    Whether or not you can even build a custom ROM for a device is largely a matter of opportunity and whether the resources you need actually exist to begin building one.

  • @ijhoo@lemmy.ml
    link
    fedilink
    English
    65 months ago

    I’m a beginner as well and I found Alaska Linux user channel on yt a good source for explanations. First videos are a bit outdated… some new tech like Soong was introduced - which is a new, google developed, build system for Android.

    https://www.youtube.com/channel/UCnGqG_jyyXmTzdamBpKfeHA

    Go to the playlist section. It groups videos per topic, e.g. building a device tree from scratch.

    S8 is a not a good choice If I remember correctly, no custom roms exist for that phone. Reasons might be due to exynos of that era…