Open shaunmulligan opened 1 year ago
Thanks! I haven't personally tested it, but I don't think there should be any gotchas. Taking a quick glance at LineageOS' repos, the boot image related components seem to be relatively unchanged, compared to AOSP, so hopefully it just works.
Awesome, it will be interesting to test. Can you further explain the OEM unlocking
caveat? Its a bit unclear from the readme. If I understand correctly, I should never run fastboot oem lock
on my device after flashing a boot image with these patches?
Sure thing.
fastboot flashing lock
are fastboot oem unlock
safe to run. For OS's like GrapheneOS, it's even preferred since you can tell the bootloader to only allow your own signing key and then lock it.
What's unsafe is going into Android's Developer Options and unchecking the OEM unlocking
box. That would prevent fastboot flashing unlock
or fastboot oem unlock
from working, which would be problematic if, for example, Android no longer boots due to some changes made via root. That would effectively make the device hard bricked.
EDIT: If you're planning on leaving your bootloader unlocked, then this doesn't really apply. It's impossible to accidentally/intentionally uncheck that checkbox when the bootloader is unlocked.
Okay awesome, that makes more sense now and yeah I was planning on leaving my bootloader unlocked, so this shouldn't be a problem.
Once again, thanks for this project and I will let you know how it goes with LineageOS 👍
Just getting around to trying this, using microg cicd docker
hacked aosproot into the build and getting this error with LineageOS 20.0, building for sunfish (Google pixel 4a)
Applying /srv/src/LINEAGE_20_0/vendor/aosproot/patches/build/make/0001-Apply-Magisk-patch-to-boot-image.patch in /srv/src/LINEAGE_20_0/build/make
Applying: Apply Magisk patch to boot image
error: patch failed: core/Makefile:5111
error: core/Makefile: patch does not apply
Patch failed at 0001 Apply Magisk patch to boot image
hint: Use 'git am --show-current-patch=diff' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
Traceback (most recent call last):
File "/srv/src/LINEAGE_20_0/vendor/aosproot/aosproot.py", line 129, in <module>
main()
File "/srv/src/LINEAGE_20_0/vendor/aosproot/aosproot.py", line 123, in main
patch_code()
File "/srv/src/LINEAGE_20_0/vendor/aosproot/aosproot.py", line 84, in patch_code
subprocess.check_call([
File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['git', '-C', '/srv/src/LINEAGE_20_0/build/make', 'am', '/srv/src/LINEAGE_20_0/vendor/aosproot/patches/build/make/0001-Apply-Magisk-patch-to-boot-image.patch']' returned non-zero exit status 128.
I unfortunately can't test it personally right now, but I suspect it's because LineageOS' build scripts are a bit modified compared to AOSP. git am
requires the patches to match exactly.
I'd suggest getting back to the original state with:
cd build/make
git am --abort
And then trying to apply the patch using the patch
command:
patch -p1 -i ../../vendor/aosproot/patches/build/make/0001-Apply-Magisk-patch-to-boot-image.patch
If that doesn't do the trick, you'll likely need to go through the changes in https://github.com/chenxiaolong/aosproot/blob/master/patches/build/make/0001-Apply-Magisk-patch-to-boot-image.patch and manually edit the files.
So digging into this a bit more, it seems the problem is actually the running of m aosproot
. For some reason when I ran that I get this module "generated_kernel_includes": cmd: unknown variable '$(PATH_OVERRIDE_SOONG)'
error, but have no idea where that is coming from. Any ideas?
FAILED: out/soong/build.ninja
cd "$(dirname "out/host/linux-x86/bin/soong_build")" && BUILDER="$PWD/$(basename "out/host/linux-x86/bin/soong_build")" && cd / && env -i "$BUILDER" --top "$TOP" --soong_out "out/soong" --out "out" -o out/soong/build.ninja --globListDir build --globFile out/soong/globs-build.ninja -t -l out/.module_paths/Android.bp.list --available_env out/soong/soong.environment.available --used_env out/soong/soong.environment.used.build Android.bp
error: vendor/lineage/build/soong/Android.bp:24:8: module "generated_kernel_includes": cmd: unknown variable '$(PATH_OVERRIDE_SOONG)'
Hmm, I think that might be something specific to LineageOS. I found this recent post with the same error: https://stackoverflow.com/questions/74499619/vendor-lineage-build-soong-android-bp248-module-generated-kernel-includes
it seems i needed to run the m
command after having done brunch
or breakfast
. That seems to allow it to pass that problem, but we will see if it manages to actually complete now :D
failed to apply the patch, seems its just one hunk that failed, this is the Makefile.rej, not exactly sure how to morph the patch file to work tho :/
--- core/Makefile
+++ core/Makefile
@@ -5111,6 +5111,9 @@ INTERNAL_OTATOOLS_PACKAGE_FILES += \
$(sort $(shell find external/vboot_reference/tests/devkeys -type f))
endif
+INTERNAL_OTATOOLS_PACKAGE_FILES += \
+ vendor/aosproot/magisk.apk
+
# Factory images
INTERNAL_OTATOOLS_PACKAGE_FILES += \
device/common/clear-factory-images-variables.sh \
@@ -5682,6 +5685,7 @@ endif
# Depending on the various images guarantees that the underlying
# directories are up-to-date.
$(BUILT_TARGET_FILES_PACKAGE): \
+ $(AOSPROOT_MAGISK_APK) \
$(INSTALLED_RADIOIMAGE_TARGET) \
$(INSTALLED_RECOVERYIMAGE_TARGET) \
$(INSTALLED_CACHEIMAGE_TARGET) \
@@ -6118,6 +6122,7 @@ ifeq (true,$(PRODUCT_USE_DYNAMIC_PARTITIONS))
$(call dump-dynamic-partitions-info, $(zip_root)/META/dynamic_partitions_info.txt)
endif
PATH=$(INTERNAL_USERIMAGES_BINARY_PATHS):$$PATH MKBOOTIMG=$(MKBOOTIMG) \
+ AOSPROOT_MAGISK_APK=$(AOSPROOT_MAGISK_APK) \
$(ADD_IMG_TO_TARGET_FILES) -a -v -p $(HOST_OUT) $(zip_root)
ifeq ($(BUILD_QEMU_IMAGES),true)
$(hide) AVBTOOL=$(AVBTOOL) $(MK_VBMETA_BOOT_KERNEL_CMDLINE_SH) $(zip_root)/IMAGES/vbmeta.img \
I'd suggest making the changes from Makefile.rej
manually instead of trying to edit the patch file. Once that's done, you can regenerate the patch file (for future use) if you'd like with:
cd build/make
git diff
Okay, made some progress and finally got the patches to apply successfully, but seem to have hit this error and not sure how to debug it. sorry for all the noob issues, not at all knowledgeable on AOSP builds. Here is the error, any ideas on where to start:
[ 99% 124941/124943] Package target files: out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root.zip
FAILED: out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root.zip
/bin/bash -c "(rm -rf out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root.zip out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root.zip.list out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root ) && (mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/ out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root ) && (mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT ) && (if [ -d \"out/target/product/sunfish/recovery/root\" -a \"\$(ls -A out/target/product/sunfish/recovery/root)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/RAMDISK && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/recovery/root/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/RAMDISK; fi ) && (if [ -d \"out/target/product/sunfish/install\" -a \"\$(ls -A out/target/product/sunfish/install)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/INSTALL && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/install/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/INSTALL; fi ) && (cp out/target/product/sunfish/kernel out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/kernel ) && (cp out/target/product/sunfish/dtb.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/dtb ) && (echo \"console=ttyMSM0,115200n8 androidboot.console=ttyMSM0 printk.devkmsg=on msm_rtb.filter=0x237 ehci-hcd.park=3 service_locator.enable=1 androidboot.memcg=1 cgroup.memory=nokmem lpm_levels.sleep_disabled=1 usbcore.autosuspend=7 loop.max_part=7 androidboot.usbcontroller=a600000.dwc3 swiotlb=1 androidboot.boot_devices=soc/1d84000.ufshc cgroup_disable=pressure buildvariant=userdebug\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/cmdline ) && (echo \"0x00000000\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/base ) && (echo \"4096\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/pagesize ) && (mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT ) && (mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/ROOT ) && (if [ -d \"out/target/product/sunfish/root\" -a \"\$(ls -A out/target/product/sunfish/root)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/ROOT && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/root/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/ROOT; fi ) && (mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/abl.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/abl.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/aop.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/aop.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/devcfg.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/devcfg.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/hyp.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/hyp.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/keymaster.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/keymaster.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/qupfw.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/qupfw.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/tz.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/tz.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/uefisecapp.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/uefisecapp.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/xbl.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/xbl.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/xbl_config.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/xbl_config.img; mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO; cp out/target/product/sunfish/modem.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/RADIO/modem.img ) && (if [ -d \"out/target/product/sunfish/system\" -a \"\$(ls -A out/target/product/sunfish/system)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/system/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM; fi ) && (if [ -d \"out/target/product/sunfish/data\" -a \"\$(ls -A out/target/product/sunfish/data)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/DATA && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/data/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/DATA; fi ) && (if [ -d \"out/target/product/sunfish/vendor\" -a \"\$(ls -A out/target/product/sunfish/vendor)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/VENDOR && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/vendor/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/VENDOR; fi ) && (if [ -d \"out/target/product/sunfish/product\" -a \"\$(ls -A out/target/product/sunfish/product)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/PRODUCT && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/product/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/PRODUCT; fi ) && (if [ -d \"out/target/product/sunfish/system_ext\" -a \"\$(ls -A out/target/product/sunfish/system_ext)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM_EXT && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/system_ext/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM_EXT; fi ) && (if [ -d \"out/target/product/sunfish/system_other\" -a \"\$(ls -A out/target/product/sunfish/system_other)\" ]; then mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM_OTHER && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/sunfish/system_other/* out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM_OTHER; fi ) && (mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/OTA ) && (cp out/target/product/sunfish/android-info.txt out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/OTA/ ) && (mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META ) && (cp out/target/product/sunfish/obj/PACKAGING/apkcerts_intermediates/lineage_sunfish-apkcerts-eng.root.txt out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/apkcerts.txt ) && (cp out/soong/apexkeys.txt out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/apexkeys.txt ) && (echo \"\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/otakeys.txt ) && (cp out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/file_contexts.bin ) && (cp out/target/product/sunfish/misc_info.txt out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/misc_info.txt ) && (cp system/update_engine/update_engine.conf out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/update_engine_config.txt ) && (cp external/zucchini/version_info.h out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/zucchini_config.txt ) && (cp out/host/linux-x86/lib64/liblz4.so out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/liblz4.so ) && (for part in abl aop boot devcfg dtbo hyp keymaster modem product qupfw system system_ext tz uefisecapp vbmeta vbmeta_system vendor xbl xbl_config; do echo \"\${part}\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/ab_partitions.txt; done ) && (for conf in RUN_POSTINSTALL_system=true POSTINSTALL_PATH_system=system/bin/otapreopt_script FILESYSTEM_TYPE_system=ext4 POSTINSTALL_OPTIONAL_system=true RUN_POSTINSTALL_vendor=true POSTINSTALL_PATH_vendor=bin/checkpoint_gc FILESYSTEM_TYPE_vendor=ext4 POSTINSTALL_OPTIONAL_vendor=true; do echo \"\${conf}\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/postinstall_config.txt; done ) && (mkdir -p out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/PREBUILT_IMAGES ) && (cp out/target/product/sunfish/dtbo.img out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/PREBUILT_IMAGES/ ) && ((cd out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,system/,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/sunfish/system -S out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"system/\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/filesystem_config.txt ) && ((cd out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/VENDOR; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,vendor/,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/sunfish/system -S out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"vendor/\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/vendor_filesystem_config.txt ) && ((cd out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/PRODUCT; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,product/,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/sunfish/system -S out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"product/\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/product_filesystem_config.txt ) && ((cd out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM_EXT; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,system_ext/,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/sunfish/system -S out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"system_ext/\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/system_ext_filesystem_config.txt ) && ((cd out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/ROOT; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/sunfish/system -S out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/root_filesystem_config.txt ) && ((cd out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/RAMDISK; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/sunfish/system -S out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/boot_filesystem_config.txt ) && ((cd out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/RAMDISK; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/sunfish/system -S out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/boot_filesystem_config.txt ) && ((cd out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/SYSTEM_OTHER; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,system/,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/sunfish/system -S out/target/product/sunfish/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"system/\" > out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/system_other_filesystem_config.txt ) && (cp out/target/product/sunfish/obj/PACKAGING/check_vintf_all_intermediates/kernel_configs.txt out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/kernel_configs.txt ) && (cp out/target/product/sunfish/obj/PACKAGING/check_vintf_all_intermediates/kernel_version.txt out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/kernel_version.txt ) && (rm -rf out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"use_dynamic_partitions=true\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"lpmake=lpmake\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"build_super_empty_partition=true\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"super_metadata_device=super\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"super_block_devices=super\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"super_super_device_size=9755951104\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"dynamic_partition_list= system vendor product system_ext\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"super_partition_groups=google_dynamic_partitions\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"super_google_dynamic_partitions_group_size=4873781248\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt; echo \"super_google_dynamic_partitions_partition_list= system vendor product system_ext\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"super_partition_size=9755951104\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"super_partition_error_limit=9231663104\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"virtual_ab=true\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (echo \"virtual_ab_retrofit=true\" >> out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/dynamic_partitions_info.txt ) && (PATH=out/host/linux-x86/bin/:system/extras/ext4_utils/:\$PATH MKBOOTIMG=out/host/linux-x86/bin/mkbootimg AOSPROOT_MAGISK_APK=out/soong/.intermediates/vendor/aosproot/aosproot_magisk_apk/linux_glibc_x86_64/aosproot_magisk_apk out/host/linux-x86/bin/add_img_to_target_files -a -v -p out/host/linux-x86 out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root ) && (find out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META | sort >out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root.zip.list ) && (find out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root -path out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META -prune -o -print | sort >>out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root.zip.list ) && (out/host/linux-x86/bin/soong_zip -d -o out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root.zip -C out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root -r out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root.zip.list )"
ls: out/target/product/sunfish/data: No such file or directory
2023-04-13 19:47:00 - common.py - WARNING : Failed to read SYSTEM/etc/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read VENDOR/etc/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read ODM/etc/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read ODM/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read build.prop for partition odm
2023-04-13 19:47:00 - common.py - WARNING : Failed to read VENDOR_DLKM/etc/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read VENDOR_DLKM/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read build.prop for partition vendor_dlkm
2023-04-13 19:47:00 - common.py - WARNING : Failed to read ODM_DLKM/etc/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read ODM_DLKM/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read build.prop for partition odm_dlkm
2023-04-13 19:47:00 - common.py - WARNING : Failed to read SYSTEM_DLKM/etc/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read SYSTEM_DLKM/build.prop
2023-04-13 19:47:00 - common.py - WARNING : Failed to read build.prop for partition system_dlkm
2023-04-13 19:47:00 - common.py - WARNING : Failed to read IMAGES/boot.img
2023-04-13 19:47:00 - common.py - WARNING : Failed to read IMAGES/init_boot.img
2023-04-13 19:47:00 - add_img_to_target_files.py - INFO :
++++ boot ++++
2023-04-13 19:47:00 - common.py - INFO : building image from target_files BOOT...
2023-04-13 19:47:00 - common.py - INFO : Running: "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/mkbootfs -f /srv/src/LINEAGE_20_0/out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/META/boot_filesystem_config.txt /srv/src/LINEAGE_20_0/out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/RAMDISK"
2023-04-13 19:47:00 - common.py - INFO : Running: "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/minigzip"
2023-04-13 19:47:02 - common.py - INFO : Running: "out/host/linux-x86/bin/mkbootimg --kernel /srv/src/LINEAGE_20_0/out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/kernel --dtb /srv/src/LINEAGE_20_0/out/target/product/sunfish/obj/PACKAGING/target_files_intermediates/lineage_sunfish-target_files-eng.root/BOOT/dtb --cmdline console=ttyMSM0,115200n8 androidboot.console=ttyMSM0 printk.devkmsg=on msm_rtb.filter=0x237 ehci-hcd.park=3 service_locator.enable=1 androidboot.memcg=1 cgroup.memory=nokmem lpm_levels.sleep_disabled=1 usbcore.autosuspend=7 loop.max_part=7 androidboot.usbcontroller=a600000.dwc3 swiotlb=1 androidboot.boot_devices=soc/1d84000.ufshc cgroup_disable=pressure buildvariant=userdebug --base 0x00000000 --pagesize 4096 --header_version 2 --os_version 13 --os_patch_level 2023-03-05 --ramdisk /srv/src/LINEAGE_20_0/out/soong/.temp/tmpqo6yslsv --output /srv/src/LINEAGE_20_0/out/soong/.temp/tmph75l50d_"
Traceback (most recent call last):
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/internal/stdlib/runpy.py", line 196, in _run_module_as_main
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/internal/stdlib/runpy.py", line 86, in _run_code
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/__main__.py", line 12, in <module>
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/internal/stdlib/runpy.py", line 196, in _run_module_as_main
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/internal/stdlib/runpy.py", line 86, in _run_code
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/add_img_to_target_files.py", line 1098, in <module>
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/add_img_to_target_files.py", line 1090, in main
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/add_img_to_target_files.py", line 833, in AddImagesToTargetFiles
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/common.py", line 1873, in GetBootableImage
File "/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/add_img_to_target_files/common.py", line 1726, in _BuildBootableImage
KeyError: 'init_boot'
ninja: build stopped: subcommand failed.
19:47:03 ninja failed with: exit status 1
#### failed to build some targets (03:42:39 (hh:mm:ss)) ####
sorry for all the noob issues, not at all knowledgeable on AOSP builds.
No problem at all!
KeyError: 'init_boot'
This one is actually a bug in aosproot. It happens when the device you're building for doesn't contain the init_boot
partition (devices that originally shipped with Android <13). You can fix it by editing build/make/tools/releasetools/common.py
and changing:
if info_dict['init_boot'] == 'true':
to
if info_dict.get('init_boot') == 'true':
awesome, thanks for the help, let me see if that change allows my build to succeed 🤞
Thanks so much @chenxiaolong that final fix got it all building and works as expected. One last quick question, would you happen to know if there is a way to have the Magisk app installed with pre-granted permissions so that the user doesn't have to do anything on first boot?
Glad you got it working! I'm not aware of a good way to include the Magisk app. Adding it as a system app could work, but that would break Magisk's feature for hiding itself.
Okay great, thanks for the info. One last question, probably out of your scope, but I can build successfully with one device type (google pixel 4a) but the exact same cicd build fails for the OnePlus5 model. The error I am getting for the later is this: FileNotFoundError: [Errno 2] No such file or directory: '/srv/src/LINEAGE_20_0/out/host/linux-x86/bin/../vendor/aosproot/magisk.apk'
which seems odd because it is definitely there for the successful build. Any thoughts on why this would be?
It seems like this line https://github.com/chenxiaolong/aosproot/blob/master/patches/build/make/0001-Apply-Magisk-patch-to-boot-image.patch#L78 in the common.py patch is getting the incorrect path to the magisk.apk
but only for the one build and not the other :/
Hmm, that makes me think that AOSPROOT_MAGISK_APK
might be unset. aosproot currently adds this line right below MKBOOTIMG=$(MKBOOTIMG)
:
but it turns out there's a second instance of MKBOOTIMG=$(MKBOOTIMG)
that's used for devices without A/B partitions:
If you add AOSPROOT_MAGISK_APK=$(AOSPROOT_MAGISK_APK) \
right below that line, it might do the trick.
Alright, it seems that might have fixed that error but for some reason there still seems to be something missing. It builds fine without the patches. But now seems to be missing this directory during build out/target/product/dumpling/data
:
[ 99% 126740/126742] Package target files: out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root.zip
FAILED: out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root.zip
/bin/bash -c "(rm -rf out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root.zip out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root.zip.list out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root ) && (mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/ out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root ) && (mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RECOVERY ) && (if [ -d \"out/target/product/dumpling/recovery/root\" -a \"\$(ls -A out/target/product/dumpling/recovery/root)\" ]; then mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RECOVERY/RAMDISK && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/dumpling/recovery/root/* out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RECOVERY/RAMDISK; fi ) && (if [ -d \"out/target/product/dumpling/install\" -a \"\$(ls -A out/target/product/dumpling/install)\" ]; then mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/INSTALL && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/dumpling/install/* out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/INSTALL; fi ) && (cp out/target/product/dumpling/kernel out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RECOVERY/kernel ) && (echo \"androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 service_locator.enable=1 swiotlb=2048 loop.max_part=7 buildvariant=userdebug\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RECOVERY/cmdline ) && (echo \"0x00000000\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RECOVERY/base ) && (echo \"4096\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RECOVERY/pagesize ) && (mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/BOOT ) && (mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/ROOT ) && (if [ -d \"out/target/product/dumpling/root\" -a \"\$(ls -A out/target/product/dumpling/root)\" ]; then mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/ROOT && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/dumpling/root/* out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/ROOT; fi ) && (if [ -d \"out/target/product/dumpling/ramdisk\" -a \"\$(ls -A out/target/product/dumpling/ramdisk)\" ]; then mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/BOOT/RAMDISK && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/dumpling/ramdisk/* out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/BOOT/RAMDISK; fi ) && (cp out/target/product/dumpling/kernel out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/BOOT/ ) && (echo \"androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 service_locator.enable=1 swiotlb=2048 loop.max_part=7 buildvariant=userdebug\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/BOOT/cmdline ) && (echo \"0x00000000\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/BOOT/base ) && (echo \"4096\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/BOOT/pagesize ) && (mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/BTFM.bin out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/BTFM.bin; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/NON-HLOS.bin out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/NON-HLOS.bin; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/abl.elf out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/abl.elf; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/adspso.bin out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/adspso.bin; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/cmnlib.mbn out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/cmnlib.mbn; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/cmnlib64.mbn out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/cmnlib64.mbn; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/devcfg.mbn out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/devcfg.mbn; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/filemap out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/filemap; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/hyp.mbn out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/hyp.mbn; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/keymaster.mbn out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/keymaster.mbn; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/logo.bin out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/logo.bin; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/pmic.elf out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/pmic.elf; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/rpm.mbn out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/rpm.mbn; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/static_nvbk.bin out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/static_nvbk.bin; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/tz.mbn out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/tz.mbn; mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO; cp out/target/product/dumpling/xbl.elf out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RADIO/xbl.elf ) && (if [ -d \"out/target/product/dumpling/system\" -a \"\$(ls -A out/target/product/dumpling/system)\" ]; then mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/SYSTEM && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/dumpling/system/* out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/SYSTEM; fi ) && (if [ -d \"out/target/product/dumpling/data\" -a \"\$(ls -A out/target/product/dumpling/data)\" ]; then mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/DATA && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/dumpling/data/* out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/DATA; fi ) && (if [ -d \"out/target/product/dumpling/vendor\" -a \"\$(ls -A out/target/product/dumpling/vendor)\" ]; then mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/VENDOR && prebuilts/build-tools/linux-x86/bin/acp -rd out/target/product/dumpling/vendor/* out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/VENDOR; fi ) && (mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/OTA ) && (cp out/target/product/dumpling/android-info.txt out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/OTA/ ) && (mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/OTA/bin ) && (cp out/target/product/dumpling/obj/EXECUTABLES/updater_intermediates/updater out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/OTA/bin/ ) && (mkdir -p out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META ) && (cp out/target/product/dumpling/obj/PACKAGING/apkcerts_intermediates/lineage_dumpling-apkcerts-eng.root.txt out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/apkcerts.txt ) && (cp out/soong/apexkeys.txt out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/apexkeys.txt ) && (cp device/oneplus/msm8998-common/releasetools.py out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/ ) && (echo \"\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/otakeys.txt ) && (cp out/target/product/dumpling/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/file_contexts.bin ) && (cp out/target/product/dumpling/misc_info.txt out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/misc_info.txt ) && (PATH=out/host/linux-x86/bin/:system/extras/ext4_utils/:\$PATH MKBOOTIMG=out/host/linux-x86/bin/mkbootimg AOSPROOT_MAGISK_APK=out/soong/.intermediates/vendor/aosproot/aosproot_magisk_apk/linux_glibc_x86_64/aosproot_magisk_apk \\ ) && (out/host/linux-x86/bin/make_recovery_patch out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root ) && ((cd out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/SYSTEM; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,system/,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/dumpling/system -S out/target/product/dumpling/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"system/\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/filesystem_config.txt ) && ((cd out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/VENDOR; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,vendor/,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/dumpling/system -S out/target/product/dumpling/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"vendor/\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/vendor_filesystem_config.txt ) && ((cd out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/ROOT; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/dumpling/system -S out/target/product/dumpling/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/root_filesystem_config.txt ) && ((cd out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/BOOT/RAMDISK; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/dumpling/system -S out/target/product/dumpling/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/boot_filesystem_config.txt ) && ((cd out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/RECOVERY/RAMDISK; find . -type d | sed 's,\$,/,'; find . \\! -type d) | cut -c 3- | sort | sed 's,^,,' | out/host/linux-x86/bin/fs_config -C -D out/target/product/dumpling/system -S out/target/product/dumpling/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -R \"\" > out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/recovery_filesystem_config.txt ) && (rm -rf out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META/dynamic_partitions_info.txt ) && (PATH=out/host/linux-x86/bin/:system/extras/ext4_utils/:\$PATH MKBOOTIMG=out/host/linux-x86/bin/mkbootimg AOSPROOT_MAGISK_APK=out/soong/.intermediates/vendor/aosproot/aosproot_magisk_apk/linux_glibc_x86_64/aosproot_magisk_apk out/host/linux-x86/bin/add_img_to_target_files -a -v -p out/host/linux-x86 out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root ) && (find out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META | sort >out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root.zip.list ) && (find out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root -path out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root/META -prune -o -print | sort >>out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root.zip.list ) && (out/host/linux-x86/bin/soong_zip -d -o out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root.zip -C out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root -r out/target/product/dumpling/obj/PACKAGING/target_files_intermediates/lineage_dumpling-target_files-eng.root.zip.list )"
ls: out/target/product/dumpling/data: No such file or directory
/bin/bash: line 1: : command not found
ninja: build stopped: subcommand failed.
11:41:17 ninja failed with: exit status 1
Hmm, I'm not quite sure what would cause that, but my guess would be a formatting issue in the Makefile. Could you double check that the AOSPROOT_MAGISK_APK
begins with a tab character (not a space) and that there's no extra space after the \
on that line?
Yeah I removed a trailing white space and then cleared the whole build and cache . It succeeds now 🥰 so I think we can probably close this issue as I have it working for two lineageOS devices
Awesome, glad you got it working!
Hi! this project looks great! I was wondering if it is known to work with LineageOS 20.0 (based on android 13)? From what I can understand it should work just the same as GrapheneOS as the build setup looks similar, but just wanting to understand if their are any gotchas or if anyone else has tried that yet?