chenxiaolong / aosproot

Apply Magisk boot image patch during AOSP build
GNU General Public License v3.0
18 stars 8 forks source link

aosproot on LineageOS 20.0? #3

Open shaunmulligan opened 1 year ago

shaunmulligan commented 1 year ago

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?

chenxiaolong commented 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.

shaunmulligan commented 1 year ago

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?

chenxiaolong commented 1 year ago

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.

shaunmulligan commented 1 year ago

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 👍

shaunmulligan commented 1 year ago

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.
chenxiaolong commented 1 year ago

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.

shaunmulligan commented 1 year ago

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)'
chenxiaolong commented 1 year ago

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

shaunmulligan commented 1 year ago

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

shaunmulligan commented 1 year ago

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 \
chenxiaolong commented 1 year ago

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
shaunmulligan commented 1 year ago

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)) ####
chenxiaolong commented 1 year ago

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':
shaunmulligan commented 1 year ago

awesome, thanks for the help, let me see if that change allows my build to succeed 🤞

shaunmulligan commented 1 year ago

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?

chenxiaolong commented 1 year ago

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.

shaunmulligan commented 1 year ago

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 :/

chenxiaolong commented 1 year ago

Hmm, that makes me think that AOSPROOT_MAGISK_APK might be unset. aosproot currently adds this line right below MKBOOTIMG=$(MKBOOTIMG):

https://github.com/chenxiaolong/aosproot/blob/ef9dc39a0194f8671980680f2cbdcea24f57be2e/patches/build/make/0001-Apply-Magisk-patch-to-boot-image.patch#L44-L45

but it turns out there's a second instance of MKBOOTIMG=$(MKBOOTIMG) that's used for devices without A/B partitions:

https://github.com/LineageOS/android_build/blob/e02d08607c1b7ea5474a81e34d8a6c96a8acb130/core/Makefile#L6019

If you add AOSPROOT_MAGISK_APK=$(AOSPROOT_MAGISK_APK) \ right below that line, it might do the trick.

shaunmulligan commented 1 year ago

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
chenxiaolong commented 1 year ago

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?

shaunmulligan commented 1 year ago

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

chenxiaolong commented 1 year ago

Awesome, glad you got it working!