101 Commits
Author SHA1 Message Date
osm0sis fb5fbb1516 AK3: update KEEPVBMETAFLAG -> PATCHVBMETAFLAG for Canary 23016+ 2021-12-15 20:20:27 -04:00
osm0sis 12baa2739a AK3: better backwards compatibility for keep_vbmeta_flag (unset=auto) 2021-12-11 00:12:14 -04:00
osm0sis 6e7fcd6d28 AK3: add magiskboot KEEPVBMETAFLAG support
- some devices fail to boot when magiskboot changes the vbmeta flag is set in the AVBv2 signature from 00 to 03, this allows disabling that behavior
- set keep_vbmeta_flag=1 in anykernel.sh to force it to keep whatever's there, =auto will take it from the existing image if Magisk-patched (Canary 23016 or later), and =0 will allow the default magiskboot behavior
2021-12-10 23:30:24 -04:00
osm0sis 66f42c1951 AK3+Backend: grep cleanups
- fix duplicate kernel version (vertmp) entries from some kernels
- don't use head when grep -m1 will suffice
- fix some (bad) OEM prop files including entries twice, use last entry like live system
2021-12-10 17:34:54 -04:00
Chris Renshaw 08a76000ad AK3: unbreak anykernel scripts using flash_dtbo directly 2021-12-06 13:45:16 -04:00
osm0sis 297d6c3b99 AK3: add flash_generic to reduce code duplication 2021-12-06 10:04:54 -04:00
engstkandosm0sis 2b7f6e8889 AK3: add full vendor_dlkm.img flash support
- Use similar dtbo.img logic
- Support new hdr v4 images without repacking
- Process before boot to safe bail
- No resize available, checks output size and bounces if larger
- Handle block state correctly to fix boot check warning

Co-authored-by: osm0sis <osm0sis@outlook.com>

Signed-off-by: engstk <eng.stk@sapo.pt>
2021-12-04 18:11:38 -04:00
engstk 146f9b27c5 AK3: add full vendor_boot.img flash support
- Use similar dtbo.img logic
- Support new hdr v4 images without repacking
- Process before boot to safe bail

Signed-off-by: engstk <eng.stk@sapo.pt>
2021-12-04 18:11:38 -04:00
osm0sis 216eefce20 AK3: fix new .img backup in debugging tgz, multipartition output tweak 2021-07-21 01:49:27 -03:00
osm0sis 3cfdc71d10 AK3: fix systemless modules on single-partition setups 2021-06-09 00:21:21 -03:00
osm0sis 5035d6b7cb AK3+Backend: fix systemless modules on multi-partition setups 2021-06-08 17:00:03 -03:00
osm0sis 484ea072a8 AK3: hide expected potential simple vendor_boot support stderr 2021-06-08 16:54:47 -03:00
osm0sis beff4d4596 AK3: ensure dtbo does not get flashed twice in multi-partition setups 2021-06-08 16:24:20 -03:00
osm0sis 92f9828619 AK3: add vendor_ramdisk support to simple vendor_boot support
- use vendor_ramdisk and vendor_patch directories in zip root to specify changes for vendor_boot flash
2021-06-08 16:16:16 -03:00
osm0sis 83ff0c07a7 AK3: add support for simple vendor_boot dtb replacement
- boot_img_hdr_v3 now has dtb stored in a new partition called vendor_boot
- allow block=vendor_boot partition detection
- support current practice of Image* and dtb in zip root by automatically creating a multi-partition AK3 zip setup from these files (ramdisk directory is assumed to be for the boot partition)
- fix reset_ak current files cleanup
2021-06-08 01:14:03 -03:00
osm0sis 4904913295 AK3: fix unpackbootimg/unpackelf suffixes, fix elf to bootimg repack
- unpackbootimg/unpackelf kernel+ramdisk suffixes were corrected to match their corresponding mkbootimg argument in my latest forked tools (AIK-mobile v3.8)
- fix repack from unpackelf to mkbootimg broken base value introduced with AK3 rewrite
2021-05-03 00:20:08 -03:00
osm0sis 8df26b0389 AK3+Backend: cleanups, update *_line functions
- touch up a couple pesky minor things
- add global scope to replace_line and remove_line so they match replace_string, and can now work on all matches found in a file
2021-01-28 17:31:33 -04:00
osm0sis 630f926617 AK3: clean up old style tic 2021-01-20 15:02:52 -04:00
osm0sis 4731595e88 AK3: unlock blocks before flash to handle post-incremental-OTA cases 2020-11-27 18:02:22 -04:00
osm0sis c137cbf93d AK3: allow hiding block display for zips with custom output 2020-05-30 11:35:41 -03:00
osm0sis 7f82f21de9 AK3: update for latest optional binaries
- fix naming BootSignature_Android.jar -> boot_signer-dexed.jar for my own builds (see https://issuetracker.google.com/issues/143810860)
- correct unpackbootimg/unpackelf suffixes which now correspond to their matching mkbootimg argument
2020-05-24 06:36:59 -03:00
osm0sis 2d5bba8584 AK3: show final detected target slot/partition 2020-04-23 20:13:40 -03:00
osm0sis 3f6d112472 AK3+Backend: fix truncated recovery.log with FlashAfterUpdate 2020-02-14 14:05:09 -04:00
osm0sis e666adc66f AK3+Backend: mount and output fixes
- fix case where TWRP has /system_root mountpoint but ROM is non-SAR
- fix regression in ui_print when final character is \
2020-01-31 20:11:52 -04:00
osm0sis c35c7ce358 AK3+Backend: /postinstall and opposite slot awareness for FlashAfterUpdate addon.d-v2 support
- for A/B OTAs my FlashAfterUpdate addon.d script requires the zip to know about addon.d-v2 and act accordingly
- signify support with #FLASHAFTERUPDATEV2 tag in updater-script to pass whitelist check since the majority of zips will not work correctly
2020-01-27 16:25:21 -04:00
osm0sis b37d7e225f AK3+Backend: introduce systemless kernel modules support
- with do.systemless prop enabled in anykernel.sh, will push the contents of modules/ to create a simple "ak3-helper" Magisk module, where testing on devices thus far shows it loads early enough that even replacement kernel object .ko modules will get loaded
- the ak3-helper module info is populated from the kernel.string and parsed kernel version from the kernel being flashed, and if at boot time a different kernel is detected the module automatically removes itself before being loaded to avoid conflicts
- since logical partitions and ext4-dedup on Android 10 now prevent mounting /system or /vendor rw under any circumstances, this feature gives kernel developers back the freedom they had before all this to improve kernel .ko modules, .conf files, etc. with the added bonus of it cleaning up after itself
2020-01-18 07:21:46 -04:00
osm0sis 0a712cce0d AK3: add stderr hints for signing debugging 2020-01-16 01:20:48 -04:00
osm0sis 21ee68f5a8 AK3: clean up and simplify Magisk patch logic
- only repatch when there is an Image* (i.e. don't attempt on ramdisk-only mods)
- make sure new ramdisk is already copied before trying to detect Magisk patch state in case it changed
- clean up Magisk patch state and exported variables immediately
2020-01-16 01:00:32 -04:00
osm0sis 3f60a5e1e2 AK3: fix false positive Magisk detection after reset_ak 2020-01-15 11:04:36 -04:00
osm0sis d3d853ac82 AK3: only attempt to dump .magisk config if patch found 2020-01-13 01:17:19 -04:00
osm0sis 23dd83d8e4 AK3: auto kernel patch improvements
- also check patch status as part of repack_ramdisk() to avoid any issues if developer is forcing a compression format change
- get full Magisk patch status value and extract Magisk config to export correct environment variables for dtb patching
2020-01-13 01:03:22 -04:00
osm0sis bf9e9fd487 AK3: only attempt fallback kernel decompression if format was identified 2020-01-12 23:32:26 -04:00
osm0sis 4bae117013 AK3: fix AVBv1 signing on Android 10 2020-01-12 16:14:39 -04:00
osm0sis ef24a09b51 AK3: auto split Image.*-dtb to kernel/kernel_dtb + re-patch for Magisk 2020-01-12 15:30:42 -04:00
osm0sis 0e3b7304e6 AK3: fix partition detection taking first match on older devices
- `test -e` could fail due to unexpanded *'s in $target
2019-08-06 18:53:08 -03:00
osm0sis f3f80014cc AK3+Backend: fix multi-line abort outputs 2019-08-04 01:16:54 -03:00
osm0sis 958b2c873a AK3: reset_ak: don't remove $ramdisk unless has already been unpacked
- running reset_ak before an unpack would remove any included ramdisk files from zip, so only remove if $split_img is detected suggesting an unpack has already occurred
2019-07-20 23:12:51 -03:00
osm0sis 84d9032606 AK3: add file/directory attributes functions
- from my "Complete Shell Script Flashable Zip Replacement" reference thread: https://forum.xda-developers.com/android/software-hacking/dev-complete-shell-script-flashable-zip-t2934449
2019-07-20 20:50:50 -03:00
osm0sis 4e403f12e5 AK3: better living through sed
- clean up magiskboot compression type output parsing
2019-06-17 23:01:04 -03:00
osm0sis 3685456911 AK3: fix support for forced uncompressed cpio ramdisk repacks
- resolves https://github.com/osm0sis/AnyKernel3/commit/698682123053cab9e3277c9c9df783a97b3e8958 "IMPORTANT NOTE" 1
2019-06-15 21:27:44 -03:00
Chris Renshaw 7ccf4d62ce AK3: fix signing derp
Thanks @Zackptg5

Closes #40
2019-06-12 16:52:29 -03:00
osm0sis 6d25afd03a AK3: allow ChromeOS auto-detect, clean up signing, fixes
- since magiskboot has built-in detection for the ChromeOS image pre-header signature, allow it to be auto-detected and if futility and signing files are present re-sign automatically (thanks @Zackptg5 for the nudge)
- simplify signing and error catching
- fix typo breaking ramdisk_recovery partition detection
- hide expected stderr for formats where some files may not exist (cmdline for ELF, etc.)
2019-06-10 23:12:00 -03:00
osm0sis e4497f231e AK3: clean up "OG AK" mode stderr on images with no kernel/ramdisk present 2019-06-07 23:28:18 -03:00
osm0sis bf38d208c8 AK3: be clear when unpack_ramdisk fails because there is no ramdisk
- previously this was failing a bit too spectacularly for my liking since $comp would erroneously get set to "fopen: ramdisk.cpio failed with 2: No such file or directory"
- on devices where there is no ramdisk.cpio unless rooted with Magisk this will indicate better to developers working on the device that they should be using "OG AK" mode to avoid trying to unpack a ramdisk which may or may not exist
2019-06-07 21:35:10 -03:00
osm0sis 76d59d67e6 AK3: also make mtd partition detection variables local 2019-06-06 16:04:43 -03:00
osm0sis ad665cc95f AK3: cleanups and fixes to config/setup functions
- simplify rdtmp and $ramdisk creation and keep only in `unpack_ramdisk`
- fix `reset_ak` and `setup_ak` behavior if run before $block is set
- only save boot.img and boot-new.img in *-files subdirectories on multi-partition setups since otherwise the tmpfs (in recovery) and ext4 .img (when booted) size usage gets quickly out of hand
- fix slot_select=inactive when used with block=auto or block=boot partition detection
2019-06-06 15:42:40 -03:00
osm0sis 192ccc94d3 AK3: support MTK /dev/bootimg and /dev/recovery partition matching
(note these probably require nanddump and nandwrite to access correctly)
2019-06-04 23:45:47 -03:00
osm0sis 97de781a55 AK3: resolve non-zero return code introduced by cat <img> /dev/zero > <block>
- the expected "cat: write error: No space left on device" gives a non-zero return code so always return true
- devices that flash dtbo abort since the return code would get passed back to the Backend and silently fail as the final command in anykernel.sh (via `write_boot`), so catch seperately with a proper error message for other image write methods
2019-06-02 19:15:47 -03:00
osm0sis 24032c0732 AK3: allow workaround for dtbo devices with cat /dev/zero issues
- some device recoveries (e.g. TWRP for wahoo) seem to have issues with the new `cat <image> /dev/zero > <block>` method of flashing, so allow setting customdd="bs=1048576" shell variable in anykernel.sh to work around this by reverting back to dd wipe+flash for dtbo as it does with boot
2019-06-02 15:44:49 -03:00
Chris Renshaw c8d087bbad AK3: fix elftool repack cmdline handling 2019-06-01 01:30:56 -03:00