How to build a 'Custom Build' with docker

Hello
I would like to build a custom build for my unsupported device (which is similar to Galaxy A3 a3xelte). I read your documentation https://doc.e.foundation/how-tos/build-e. Although I work in IT as systems programmer I feel a little bit helpless because Android in not ‘my’ OS. Please try to answe my question to push me forward:

  1. does the docker image contain the source for all devices that /e/ actually supports?
  2. does ‘custom build’ mean that I need to write my own code? Or is it possible to custom build for an unsupported device by just selecting a CUSTOM_PACKAGE that supports my certain kind of hardware? (example: the supported a3xelte has a different chipset, but is mostly similar to my unsupported device. So do I just have to search for a device with ‘my’ chipset and select that paricular CUSTOM-PACKAGE for my custom build?)

Thank you

2 Likes

Ok, for eOS building you have to differentiate:

  1. supported and unsupported devices
    — a supported device is found in download section of e.foundation and a device which is found in LineageOS download section
    — a unsupported device is not find in lineageOS download section

  2. Docker contains no source code. The sources code is downloaded via docker script. The docker image is only a handful of commands.

  3. For supported devices you have found the HowTo. For unsupported devices you can go this way [HOWTO] Build /e/ without docker for non LineageOS supported devices

  4. For an unsupported device you need to find the
    – device sources
    – kernel sources
    – vendor sources
    all these sources must have he same branch (pie or oreo or nougat) as the build sources
    and all theses sources must fit the lineage build rules

3 Likes

Thank you harvey186 for your quick answer.
So why is ‘at least 250GB of spare hard drive’ needed for?

As I have written, the docker command (or the build script) is downoading the needed sources and they are such big

Additional to that for unsupported devices, you could also specifie all of your custom/device specific sources in local manifest in a file that is called roomservice.xml, also with the preferred branches, and set include proprietary in your docker script to false.