bnsmb
March 15, 2025, 7:41pm
1
According to the build instructions here
https://doc.e.foundation/support-topics/build-e
additional applications for the /e/ OS image can be added by copying the apk files to a special directory and adding another environment variable for the docker command:
if you want to add extra applications to the default applications: add your APK to the android_prebuilts_prebuiltapks/ directory, and set the CUSTOM_APPS
environment variable accordingly in the Docker image, before building.
But there is no directory android_prebuilts_prebuiltapks in the directory tree for /e/.
The docker command I use to build the image is
docker run \
-e "BRANCH_NAME=v2.8-t" \
-e "DEVICE_LIST=sake" \
-e "DEVICE=ASUS_I006D" \
-e "SIGN_BUILDS=true" \
-e "SIGNATURE_SPOOFING=true" \
-e "WITH_SU=true" \
-e "CUSTOM_PACKAGES=GmsCore GsfProxy FakeStore MozillaNlpBackend NominatimNlpBackend com.google.android.maps.jar FDroid FDroidPrivilegedExtension" \
-e "RELEASE_TYPE=UNOFFICIAL" \
-e "CLEAN_OUTDIR=false" \
-e "CLEAN_AFTER_BUILD=false" \
-e "DELETE_OLD_LOGS=5" \
-e "DELETE_OLD_ZIPS=5" \
-v "/devpool001/develop/e/src:/srv/src" \
-v "/devpool001/develop/e/zips:/srv/zips" \
-v "/devpool001/develop/e/logs:/srv/logs" \
-v "/devpool001/develop/e/tmp:/srv/tmp" \
-v "/devpool001/develop/e/ccache:/srv/ccache" \
-v "/devpool001/develop/e/keys:/srv/keys" \
-v "/devpool001/develop/e/local_manifests:/srv/local_manifests" \
-e "REPO=https://gitlab.e.foundation/e/os/releases.git" \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community
Where must this directory be created?
Are there other requirements for the .apk files (owner, permissions)?
I have already tested it with the apk files in /devpool001/develop/e/src and in /devpool001/develop/e/src/T , but in both cases the apks were not added to the OS image
tcecyk
March 15, 2025, 7:57pm
2
the “git lfs pull
” in the build-community.sh script will fetch android_prebuilts_prebuiltapks_lfs (recently moved from Makefiles to blueprint .bp files) into prebuilts/prebuiltapks/
The lfs folders should give you templates how to create your own apk folder/.bp/permission files.
piero
March 15, 2025, 7:58pm
3
Have look in /vendor/eos/
bnsmb
March 17, 2025, 4:52pm
4
I’m still trying to add two packages to the /e/ OS image, but it hasn’t worked.
I added two new apks to the prebuildapks directory:
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $ ls -l src/T/prebuilts/prebuiltapks/SMMI_TEST/
total 26094
-rw-r--r--. 1 root root 312 Mar 17 13:08 Android.mk
-rw-r--r--. 1 root root 31675875 Mar 15 21:17 SMMI_TEST.apk
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ]
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $ cat src/T/prebuilts/prebuiltapks/SMMI_TEST//Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := SMMI_TEST
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := SMMI_TEST.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PRIVILEGED_MODULE := true
include $(BUILD_PREBUILT)
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $ ls -l src/T/prebuilts/prebuiltapks/ASUSCalculator/
total 3400
-rw-r--r--. 1 root root 290 Mar 17 11:42 Android.mk
-rw-r--r--. 1 root root 5252280 Mar 15 21:18 AsusCalculator.apk
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $ cat src/T/prebuilts/prebuiltapks/ASUSCalculator/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := ASUSCalculator
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := AsusCalculator.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
I added the packages to the file common.mk :
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $ grep -B3 -A3 SMMI src/T/vendor/eos/config/common.mk
PRODUCT_PACKAGES += \
ASUSCalculator \
SMMI_TEST
# Removes proprietary apps
PRODUCT_PACKAGES += \
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
The command to build the image is
docker run \
-e "BRANCH_NAME=v2.8-t" \
-e "DEVICE_LIST=sake" \
-e "DEVICE=ASUS_I006D_Test" \
-e "SIGN_BUILDS=true" \
-e "SIGNATURE_SPOOFING=true" \
-e "WITH_SU=true" \
-e "CUSTOM_PACKAGES=ASUSCalculator SMMI GmsCore GsfProxy FakeStore MozillaNlpBackend NominatimNlpBackend com.google.android.maps.jar FDroid FDroidPrivilegedExtension" \
-e "RELEASE_TYPE=UNOFFICIAL" \
-e "CLEAN_OUTDIR=false" \
-e "CLEAN_AFTER_BUILD=false" \
-e "DELETE_OLD_LOGS=5" \
-e "DELETE_OLD_ZIPS=5" \
-v "/devpool001/develop/e/src:/srv/src" \
-v "/devpool001/develop/e/zips:/srv/zips" \
-v "/devpool001/develop/e/logs:/srv/logs" \
-v "/devpool001/develop/e/tmp:/srv/tmp" \
-v "/devpool001/develop/e/ccache:/srv/ccache" \
-v "/devpool001/develop/e/keys:/srv/keys" \
-v "/devpool001/develop/e/local_manifests:/srv/local_manifests" \
-e "REPO=https://gitlab.e.foundation/e/os/releases.git" \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community
The build scripts create a new OS image but without the new packages.
In the output messages of the docker command there are only these messages for the new apks:
Starting ninja...
[ 39% 470/1188] build out/target/product/sake/obj/APPS/ASUSCalculator_intermediates/ASUSCalculator.meta_lic
[ 39% 471/1188] build out/target/product/sake/obj/APPS/SMMI_TEST_intermediates/SMMI_TEST.meta_lic
[ 39% 472/1188] ASUSCalculator dexpreopt.config
[ 39% 473/1188] SMMI_TEST dexpreopt.config
[ 39% 474/1188] build out/target/product/sake/obj/PACKAGING/system_build_prop_intermediates/buildinfo.prop
[ 39% 475/1188] //vendor/lineage/build/soong:generated_kernel_includes generate
FAILED: out/soong/.intermediates/vendor/lineage/build/soong/generated_kernel_includes/gen/.dummy_dep
out/host/linux-x86/bin/sbox --sandbox-path out/soong/.temp --output-dir out/soong/.intermediates/vendor/lineage/build/soong/generated_kernel_includes/gen --manifest out/soong/.intermediates/vendor/lineage/build/soong/generated_kernel_includes/generator.sbox.textproto
The failing command was run inside an sbox sandbox in temporary directory
out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4
The failing command line can be found in
out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4/sbox_command.0.bash
make: Entering directory '/srv/src/T'
make: *** kernel/asus/sm8350: No such file or directory. Stop.
make: Leaving directory '/srv/src/T'
exit status 2
[ 40% 476/1188] Copy: out/target/product/sake/dexpreopt_config/SMMI_TEST_dexpreopt.config
[ 40% 477/1188] Copy: out/target/product/sake/dexpreopt_config/ASUSCalculator_dexpreopt.config
[ 40% 478/1188] build out/target/product/sake/gen/META/lic_intermediates/out/target/product/sake/system/etc/linker.config.pb.meta_lic
[ 40% 479/1188] Verifying uses-libraries: prebuilts/prebuiltapks/SMMI_TEST/SMMI_TEST.apk
[ 40% 480/1188] build out/target/product/sake/gen/META/lic_intermediates/out/target/product/sake/system_other.img.meta_lic
[ 40% 481/1188] Verifying uses-libraries: prebuilts/prebuiltapks/ASUSCalculator/AsusCalculator.apk
[ 40% 482/1188] SMMI_TEST dexpreopt gen
[ 40% 483/1188] ASUSCalculator dexpreopt gen
[ 40% 484/1188] Building out/target/product/sake/system/build.prop
[ 40% 485/1188] //system/sepolicy:vendor_sepolicy.cil Versioning mapping file vendor_sepolicy.cil [common]
[ 40% 486/1188] APK certs list: out/target/product/sake/obj/PACKAGING/apkcerts_intermediates/lineage_sake-apkcerts-eng.root.txt
[ 40% 487/1188] //system/sepolicy:sepolicy.recovery Compiling cil files for sepolicy.recovery [common]
ninja: build stopped: subcommand failed.
15:46:12 ninja failed with: exit status 1
#### failed to build some targets (02:19 (mm:ss)) ####
>> [Mon Mar 17 15:46:12 UTC 2025] Starting signing target-files-package
The contents of the file out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4/sbox_command.0.bash mentioned in the messages are:
OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $ find src/T/out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4/ -ls
4982811 1 drwxr-xr-x 3 root root 4 Mar 17 16:45 src/T/out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4/
4982814 2 -rw-r--r-- 1 root root 1326 Mar 17 16:45 src/T/out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4/sbox_command.0.bash
4982813 1 drwxr-xr-x 2 root root 2 Mar 17 16:45 src/T/out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4/out
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $ cat src/T/out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4/sbox_command.0.bash
PERL5LIB=/srv/src/T/prebuilts/tools-lineage/common/perl-base PATH=/srv/src/T/prebuilts/tools-lineage/linux-x86/bin:/srv/src/T/prebuilts/clang/host/linux-x86/clang-r450784d/bin:/srv/src/T/prebuilts/build-tools/path/linux-x86:/srv/src/T/out/.path BISON_PKGDATADIR=/srv/src/T/prebuilts/build-tools/common/bison /srv/src/T/prebuilts/build-tools/linux-x86/bin/make -j16 HOSTCFLAGS="--sysroot=/srv/src/T/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot -I/srv/src/T/prebuilts/kernel-build-tools/linux-x86/include" HOSTLDFLAGS="--sysroot=/srv/src/T/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot -Wl,-rpath,/srv/src/T/prebuilts/kernel-build-tools/linux-x86/lib64 -L /srv/src/T/prebuilts/kernel-build-tools/linux-x86/lib64 -fuse-ld=lld --rtlib=compiler-rt" LLVM=1 LLVM_IAS=1 LZ4=/srv/src/T/prebuilts/kernel-build-tools/linux-x86/bin/lz4 LEX=/srv/src/T/prebuilts/build-tools/linux-x86/bin/flex YACC=/srv/src/T/prebuilts/build-tools/linux-x86/bin/bison M4=/srv/src/T/prebuilts/build-tools/linux-x86/bin/m4 PAHOLE=/srv/src/T/prebuilts/kernel-build-tools/linux-x86/bin/pahole -C kernel/asus/sm8350 O=/srv/src/T/out/soong/.intermediates/vendor/lineage/build/soong/generated_kernel_includes/gen ARCH=arm64 headers_install && touch out/soong/.temp/sbox/d70d848a3b8a933053bf9ef22fb54ea8346307e4/out/.dummy_dep[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
How can I add these two packages the /e/ OS image?
tcecyk
March 17, 2025, 6:26pm
5
but you had a successful build already without adding the 2 packages? because that error is within the kernel compile
bnsmb
March 17, 2025, 6:30pm
6
yes, the build without the 2 packages was successfull.
The build with the 2 packages was also successfull but I can not find the apps – not in /system/app, /system/priv-app, /system_ext/app, nor /system_ext/app
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $ ls -l zips/sake/
total 8718354
-rw-r--r--. 1 root root 1490443623 Mar 15 22:31 e-2.8-t-20250315-UNOFFICIAL-ASUS_I006D_Test.zip
-rw-r--r--. 1 root root 114 Mar 15 22:31 e-2.8-t-20250315-UNOFFICIAL-ASUS_I006D_Test.zip.sha256sum
-rw-r--r--. 1 root root 1490443619 Mar 15 21:08 e-2.8-t-20250315-UNOFFICIAL-ASUS_I006D.zip
-rw-r--r--. 1 root root 109 Mar 15 21:08 e-2.8-t-20250315-UNOFFICIAL-ASUS_I006D.zip.sha256sum
-rw-r--r--. 1 root root 1490446879 Mar 15 17:33 e-2.8-t-20250315-UNOFFICIAL-.zip
-rw-r--r--. 1 root root 99 Mar 15 17:34 e-2.8-t-20250315-UNOFFICIAL-.zip.sha256sum
-rw-r--r--. 1 root root 1490443623 Mar 16 19:32 e-2.8-t-20250316-UNOFFICIAL-ASUS_I006D_Test.zip
-rw-r--r--. 1 root root 114 Mar 16 19:32 e-2.8-t-20250316-UNOFFICIAL-ASUS_I006D_Test.zip.sha256sum
-rw-r--r--. 1 root root 1490443623 Mar 17 17:08 e-2.8-t-20250317-UNOFFICIAL-ASUS_I006D_Test.zip
-rw-r--r--. 1 root root 114 Mar 17 17:08 e-2.8-t-20250317-UNOFFICIAL-ASUS_I006D_Test.zip.sha256sum
-rw-r--r--. 1 root root 1470188824 Mar 15 07:46 e-2.9-t-20250315-UNOFFICIAL-.zip
-rw-r--r--. 1 root root 99 Mar 15 07:46 e-2.9-t-20250315-UNOFFICIAL-.zip.sha256sum
[ OmniRom 15 (devpool) - xtrnaw7@t15g /devpool001/develop/e ] $
tcecyk
March 17, 2025, 6:44pm
7
I’m slightly unnerved by the mixture of all caps, underscores and CamelCase … but yeah… weird? But you’re still on the branch that doesn’t go for .bp instead of Makefiles?
Isn’t DEVICE redundant when there is DEVICE_LIST in the docker invoke? as in, “sake” is sufficient, no “ASUS_I006D” or “…_Test”.
Sorry I’m not very helpful atm, last build is a year ago+ and not the docker method
bnsmb
March 17, 2025, 6:52pm
8
But you’re still on the branch that doesn’t go for .bp instead of Makefiles?
I don’t know that (I’m using the branch v2.8-t.
Isn’t DEVICE redundant when there is DEVICE_LIST in the docker invoke? as in, “sake” is sufficient, no “ASUS_I006D” or “…_Test”.
the parameter “DEVICE=ASUS_I006D_Test” seems to be only used for the name of the final zip file, e.g.
e-2.8-t-20250317-UNOFFICIAL-ASUS_I006D_Test.zip
Without that parameter the name of the ZIP file is
e-2.8-t-20250317-UNOFFICIAL-.zip
(but it can be installed on the phone without problems)
Sorry I’m not very helpful atm, last build is a year ago+ and not the docker method
I see, but I suspect the method for adding additional apks is the same for both methods of creating the OS image