Building ROM for Samsung A5 2017 (a5y17lte)

First of all: Thanks for the excellent work on this ROM. I haven’t found anything until now that doesn’t work on this phone. Made the OTA update from 0.21-20220123158734 to 0.22-20220224165877 today. This was the second OTA update, both installed without problems. The only thing is that I have to switch ro.debuggable to false in build.prop to get some of my apps to work.

Now to my problem:
I’m trying to build the ROM as described in how-to-build-the-rom. My command is:

[me@linux ~]$ sudo docker run \
-v /srv/e/src:/srv/src \
-v /srv/e/zips:/srv/zips \
-v /srv/e/logs:/srv/logs \
-v /srv/e/ccache:/srv/ccache \
-v /srv/e/local_manifests:/srv/local_manifests:delegated \
-e "BRANCH_NAME=v0.21-r" \
-e "DEVICE_LIST=a5y17lte" \
-e "REPO=" \

The log file states an repo error:

>> [Mon Mar 21 08:25:16 UTC 2022] (Re)initializing branch repository
fatal: couldn't find remote ref refs/heads/0.21-r
fatal: couldn't find remote ref refs/heads/0.21-r
Downloading manifest from
fatal: cannot obtain manifest
manifests: sleeping 4.0 seconds before retrying

I can access e / os / releases · GitLab via browser.

How can I check why remote ref refs/heads/0.21-r isn’t found? What is the full address?

Thanks in advance!

I had a similar error when using repo sync without docker. The tag I gave with the branch option (e.g. -b v0.21-r) was not recognized. However, it worked as I wrote it like that: -b refs/tags/v0.21-r

Maybe the docker repo sync will recognize this too?

1 Like

Unfortunately, that didn’t help. I looked into the the in the docker container to check what is going wrong. First of all, v0.21-r is not an official build, even though it is listed in the list of tags, and it seems that it is only possible to make official builds with this container. So I tried v023-r, which is an official build, and that got me a little futher:
Branch name v0.23-r is a tag on e/os/releases, prefix with refs/tags/ for 'repo init'
So I added the prefix (-e "BRANCH_NAME=refs/tags/v0.23-r"), but got the same error in the end:
>> [Mon Mar 28 10:07:55 UTC 2022] Missing "vendor/lineage", aborting
I guess, I’ll just have to dig deeper into the build script, to find the problem. Next thing is to find out how to get the source of an unofficial build. I haven’t found anything regarding that on the e site.

I never got on with docker but you might research whether for a Samsung you need to include


If you refer to the device specific files in /device, /vendor and /kernel: You will probably find such repos on github or gitlab, and write a local manifest file (if there isn’t one already in any of those repos). If there is another custom rom around on xda for your device (LineageOS at best), you might find references to device specific repos there. This is the fun part of the treasure hunt…

1 Like

(I was looking at Missing "vendor/lineage", aborting errors in the forum and this thread turned up)

@Edmund was right, in a bare repo init .. -b <ref> commandline the instructions would’ve worked. But the docker buildscripts makes assumptions that can break. At the latest the scripts aborts when it can’t find the vendor/lineage directory, but the underlying issue is mostly with repo, either at init or sync stage… The aborting error is a misleading error.

As you defined the “refs/tags/” prefix yourself in the environment variable, the script didn’t expect to handle this either - it does add the prefix itself → · ac306a6d · e / os / docker-lineage-cicd · GitLab

If you ever have a go at this again, build from a branch revision. There are name collisions on tag and branch name, but v1-q / v1-r / etc… are probably best.

(to make building from old tags possible at all I proposed build-community: return all release repo tags (!56) · Merge requests · e / os / docker-lineage-cicd · GitLab - but at the time of your post 0.21 was current anyway)