How to make iodeOS builds from unofficial LineageOS builds

Hi,

I am considering purchasing a 2022 or a 2024 Samsung Tablet S6e Lite which does not have official LOS builds. However, unofficial builds for both these exist.

and:

Is it possible to use these to make iodeOS official builds from these? Are there detailed instructions somewhere? I am a Fedora Linux user.

Many thanks for your suggestions, and help!

1 Like

I made a build guide some time ago which also applies to iode:

I prefer repo but you can also use docker (there are build guides available too)

If the sources and the proprietary vendor blobs are available, then it’s quite straightforward. If the sources are there but not the vendor blobs, then it’s a bit more complicated: you will need to extract them from a working build: you can find instructions on the LineageOS Wiki

Once you have the sources and the vendor blobs, you can build using the pf-build-iodeOS tagged version of the LineageOS for microG CI/CD Docker engine - see this wiki page for more information and instructions on how to use it.

2 Likes

Thank you. Since these are the unofficial builds, I presume that the proprietary vendor blobs are available?

The LOS for microG instructions do not mention 23, but I am assuming that they are the same as 22 (as signature spoofing is enabled)?

You would have to ask whoever created the unofficial builds about that. Some developers /maintainers publish the blobs they have extracted on github or elsewhere. Others don’t, keeping them on their own machines or in private repositories.

Yes. You just need to set the branch name in the call to docker run` to make LOS or LOS 23 builds the branch would be lineage-23.0. For IodeOS builds the branch would be v7-staging, but that branch has not yet been pushed to the public Iode repos.

I see, I guess I did not understand the instructions then. I was looking at the official LOS build for the 2020 gtaxlwifi. It thas the following files:

Archive: lineage-23.0-20251129-nightly-gta4xlwifi-signed.zip
Zip file size: 1034988017 bytes, number of entries: 33
-rw-r–r-- 1.0 unx 347 bx stor 09-Jan-01 00:00 META-INF/com/android/metadata
-rw-r–r-- 1.0 unx 233 bx stor 09-Jan-01 00:00 META-INF/com/android/metadata.pb
-rw-r–r-- 1.0 unx 321874 bx stor 09-Jan-01 00:00 odm.new.dat.br
-rw-r–r-- 1.0 unx 0 bx stor 09-Jan-01 00:00 odm.patch.dat
-rw-r–r-- 1.0 unx 245683525 bx stor 09-Jan-01 00:00 product.new.dat.br
-rw-r–r-- 1.0 unx 0 bx stor 09-Jan-01 00:00 product.patch.dat
-rw-r–r-- 1.0 unx 479980021 bx stor 09-Jan-01 00:00 system.new.dat.br
-rw-r–r-- 1.0 unx 0 bx stor 09-Jan-01 00:00 system.patch.dat
-rw-r–r-- 1.0 unx 143233216 bx stor 09-Jan-01 00:00 system_ext.new.dat.br
-rw-r–r-- 1.0 unx 0 bx stor 09-Jan-01 00:00 system_ext.patch.dat
-rw-r–r-- 1.0 unx 116441158 bx stor 09-Jan-01 00:00 vendor.new.dat.br
-rw-r–r-- 1.0 unx 0 bx stor 09-Jan-01 00:00 vendor.patch.dat
-rw---- 2.0 fat 2486464 bl defN 09-Jan-01 00:00 META-INF/com/google/android/update-binary
-rw---- 2.0 fat 4303 bl defN 09-Jan-01 00:00 META-INF/com/google/android/updater-script
-rw---- 2.0 fat 61865984 bl defN 09-Jan-01 00:00 boot.img
-rw---- 2.0 fat 8388608 bl defN 09-Jan-01 00:00 dtbo.img
-rw---- 2.0 fat 1042 bl defN 09-Jan-01 00:00 dynamic_partitions_op_list

-rw---- 2.0 fat 7340032 bl defN 09-Jan-01 00:00 firmware/SM-P610/cm.bin
-rw---- 2.0 fat 8192 bl defN 09-Jan-01 00:00 firmware/SM-P610/keystorage.bin
-rw---- 2.0 fat 4194304 bl defN 09-Jan-01 00:00 firmware/SM-P610/sboot.bin
-rw---- 2.0 fat 284056 bl defN 09-Jan-01 00:00 firmware/SM-P610/uh.bin
-rw---- 2.0 fat 1187840 bl defN 09-Jan-01 00:00 firmware/SM-P610/up_param.bin
-rw---- 2.0 fat 1190 bl defN 09-Jan-01 00:00 install/bin/backuptool.functions
-rw---- 2.0 fat 4363 bl defN 09-Jan-01 00:00 install/bin/backuptool.sh
-rw---- 2.0 fat 22 bl defN 09-Jan-01 00:00 odm.transfer.list
-rw---- 2.0 fat 2736 bl defN 09-Jan-01 00:00 product.transfer.list
-rw---- 2.0 fat 71106560 bl defN 09-Jan-01 00:00 recovery.img
-rw---- 2.0 fat 5036 bl defN 09-Jan-01 00:00 system.transfer.list
-rw---- 2.0 fat 2151 bl defN 09-Jan-01 00:00 system_ext.transfer.list
-rw---- 2.0 fat 4644 bl defN 09-Jan-01 00:00 unsparse_super_empty.img
-rw---- 2.0 fat 4096 bl defN 09-Jan-01 00:00 vbmeta.img
-rw---- 2.0 fat 674 bl defN 09-Jan-01 00:00 vendor.transfer.list
-rw---- 2.0 fat 1342 bl defN 09-Jan-01 00:00 META-INF/com/android/otacert
33 files, 1142554013 bytes uncompressed, 1034982108 bytes compressed: 9.4%

If there is a specific file that has this information, perhaps I can find it in the unofficial zip too? Or is it somewhere else? Thank you!

Actually, I was trying to follow this: Extracting proprietary blobs from LineageOS zip files manually | LineageOS Wiki but I got a bit stuck at this stage:

The instructions say:

“Unlike the above, if you have a super.img file, you need to get a copy of lpunpack to extract images from it. This script can extract the content of the Super partition into it’s respective component partitions that can be mounted. Luckily, lpunpack is easily buildable, execute the following from a LineageOS 17.1 or greater tree:”

So, I do not have a super.img. What do I do here? There appears to be no instructions for such a case.

If you mean gta4xlwifi (i.e. Samsung Galaxy Tab S6 Lite (Wi-Fi)) then you don’t need to extract any files: all the files you need are in TheMuppets github repos. If you set -e “INCLUDE_PROPRIETARY=true” in your call to docker run, it will pull in all the files you need

if you use an officially supported LOS device, I take as example here gta4xlwifi - you can first type “breakfast gta4xlwifi” and then

look at theMuppets repo

For this device you need the two vendor files, but to use git clone. You can also download directly but in some cases some files due to size are not download.

git clone GitHub - TheMuppets/proprietary_vendor_samsung_gta4xlwifi

and

git clone GitHub - TheMuppets/proprietary_vendor_samsung_gta4xl-common

and move the folders than to /vendor/samsung

now you should be able to start build via brunch gta4xlwifi