I’m trying to build /e/OS on my old Samsung Galaxy J3 2016 (j3xlte) after finding that there is no current custom ROM or Linux distribution (an experimental version of PostmarketOS excluded) for this smartphone. I am still quite a beginner and do not know much about Android. I already fail at the point https://doc.e.foundation/support-topics/extracting-proprietary-blobs. Probably it’s a stupid question, but where can I find the /e/OS installable zip for my device when it’s not supported? On my device (with stock Android 5) I can find a “system” directory with
adb shell
but that’s probably not meant… Could someone explain this to me?
the extract-files.sh only cares about paths - if you provide it either adb root (via twrp) to the running rom, or a base directory that you unpacked the original stock rom zip into (or any old lineage zip), it will copy over what it has listed in its script. The script itself is usually with the device vendor. The latest xda threads on the device point to github repos that has them.
if you’re not keen on building yourself (as a learning exercise) I could make a j3xlte build for the old e-0.21-nougat (I tried to go with updated apps in the /e/ 1.6 branches, but too much errors, easier to rather remove them).
(the pmOS build uses the old 3.10 kernel too, there are no active mainlining efforts for the SoC)
Thanks for your help! I used the system folder of an old LineageOS build and the github repository GitHub - djeman/android_device_samsung_j3xlte for extract-files.sh. The script works up to the point:
# Try CM target first
adb pull /system/$DEST $2/$DEST
# if file does not exist try OEM target
if [ "$?" != "0" ]; then
adb pull /system/$FILE $2/$DEST
fi
Then the following error message appears: adb: error: remote object '/system/bin/IPSecService' does not exist
It seems to me that the script is trying two possibilities, neither of which works in this case.
I think I used a system.img from the stockroms to extract (possibly needed sdat2img.py before mounting) - https://galaxyfirmware.com/model/SM-J320F/ (check if proper model name for your device). “set -x” in script header to see if working as intended
I think the error message has nothing to do with the extracted system folder since the error message comes from adb. When I do the same procedure with LineageOS 14.1 installed on the device, this problem does not occur, but another file does not exist.
there was work done to get it to lineage-15.1 / oreo, the Android binder changes are there, but djeman commented at xda that a working gpu driver was the reason the port didn’t continue
is this the docker build method? I remember the build script can exit at that point for misleading reasons - but if it’s proper, the repo (and branch) you init from should cover the presence of vendor/cm after a repo sync. Is the directory present?
Yes, I use Docker as described in the wiki (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” -e “BRANCH_NAME=v0. 21-nougat” -e “DEVICE_LIST=j3xlte” -e “REPO=https://gitlab.e.foundation/e/os/releases.git” registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community). It’s actually the same repo you linked to, so it should actually be present… Or do you mean is it present locally on my end?
Without a match, the tags-detection breaks, repo init fails, no checkout occurs, user will fail at the latest at the directory check for ‘vendor/lineage’, a misleading error.