- add built-in support for mtd-utils (nanddump, flash_erase, nandwrite) for MTD-based Android devices that do not work with dd
- wipe boot block with dd before write to be clean/safe (SuperSU zip also does this)
Known working mtd-utils ARM binaries can be found in my FlashIt v2.5 package:
https://forum.xda-developers.com/showthread.php?t=2239421
- add built-in support for unpackelf for Sony ELF devices (see: https://github.com/osm0sis/unpackelf)
- kernel section is not gzipped on ELF devices with non-QCDT/non-ELF dtb, which needs compression and the dtb appended before it can be repacked (thanks @tobiaswaldvogel)
- new shell variable "is_slot_device" to enable slot suffix detection
("block" shell variable remains the partition filepath minus the suffix)
Notes: on slot-based systems now the boot.img contains only the recovery ramdisk, not rootfs, by default, but when rooted contains both, with rootfs in /boot. Since modifications to both recovery and (when rooted) boot ramdisks are now possible through AK2 no other behavior is changed so that the dev may modify what they wish, e.g. to add files to rooted boot ramdisk put them in AK2's ramdisk/ folder in a boot/ subfolder, and to make modifications to rooted boot files add "boot/" to the filenames used with the commands.
- still unable to do an actual tweak check due to grep being limited to single lines, but..
- have them check to at least ensure there's a match for end string that comes after begin string so the sed should function without any chance of removing more than intended
- use simple replacement to automatically escape forward slashes (/) to make remove_section and replace_section perform like the other functions, since they are needed as part of a sed /pattern/,/pattern/d delete operation
- update documentation
- fixes flashing slowdown in TWRP 3.0.0: TWRP3 (currently) appears to have a bugged busybox/ln command which takes an excessive amount of time, no reason not to use our own instead
- fail on recoveries where symlinking our busybox environment doesn't work (CM Recovery on some devices)
- use the included busybox for awk since toybox is lacking (CM Recovery)
- fix fallback broken unzip detection now that we create a subdirectory prior
- probably best to execute the bump/loki/whatever script using our included ash shell instead of the recovery sh.
- add busybox to the zip to provide a uniform expected environment
- set up busybox symlinks in /tmp and execute anykernel.sh from a shell created with these at the front of the path, overriding the recovery applets
- correct typo that was breaking patch_fstab
- add function to replace entire sections of files by selecting the first and last lines of the section using search strings and replacing it entirely with a new string
- fix copy of any subdirectories under modules/
- adjust display of modules installation text to match the others
- add support for custom user scripts (at /data/custom_boot_image_patch.sh - same as latest SuperSU zips) to automatically execute before reflashing the rebuilt boot image for bump, loki etc. modifications
- initial unzip verification to catch it early on broken recoveries/zips
- display the matching name during the devicecheck while installing
- mount /system ro for the off-chance getprop relies on build.prop (older recoveries), and only remount rw if init.d or modules need to be setup/installed to fix/workaround TWRP's "mount only as ro" feature being finicky and allow /system to remain untouched on devices supporting systemless root.
- add signing documentation to README
- fix insert_line to perform more as expected by adding a newline automatically
- add updated arm mkbootimg+unpackbootimg binaries from my AIK Build Farm, see my repos for changes
- rewrite backend to use proper exit codes from anykernel.sh now that it is shell
- fix ui_print and specific error messages by passing the outfd to anykernel.sh from the backend
- add error messages for unpacking and repacking ramdisk, and make resulting image size check into its own error message
- fix for cpio overwriting AK2 ramdisk files on some recoveries by using a tmp directory
- add further ramdisk unpack verification by checking that there are actually files in the ramdisk directory prior to moving the tmp files back
- add insert_file function to make multi-line additions easier
- add patch_fstab function to greatly simplify mount option/flag changes (thanks @Khaon for the idea)
It seems like the " in Line 6 are not enough, unzip still refused to unpack files inside a directory with a space in it's name.
The new " fix that and now allow us to flash zips inside folders with spaces in their names.
- rewrite update-script as a shell script update-binary replacement, making the zip architecture independent (tools are still dependent)
- add fall-back to included zImage to allow for ramdisk-only injections
- add support for up to 5 device.name properties for variants
- add support for custom dtb swapping (falls back to included if none found in zip root)
- fix ramdisk extraction when there is none in the zip (ie. nothing to be added)
- add exit codes to trigger the abort in the updater-script if something goes wrong
- add ui_print function to write error message directly back to recovery
- compare size of dumped image and new image and abort if the new image is oversized for the partition
- add new do.modules property
- add new remove_line method
- update insert_line with ability to change insertion point to before or after the matched line
- rearrange properties into the order they are executed
- fix minor cpio warnings (only visible when run manually)
- clean up sed syntax formatting
- README updates for new features and fix zip command to exclude README and any previous zip present.
- fix output and line spacing on TWRP
- fix broken unpack/repack on TWRP due to binaries in /tmp not being
allowed to execute unless /system was mounted (weird)