- fix busybox getting permissions on some devices where chmod does not accept -R to recurse
- use busybox for more possibly non-standard broken recovery shell commands
- silence some more generally expected/inconsequential stderr
- symlinks under /system/lib/modules were getting broken, so follow them instead to replace the target file, avoiding issues with multiple versions of the same module and running out of free space (e.g. OnePlus devices link /system/lib/modules/wlan.ko to /system/lib/modules/qca_cld3/qca_cld3_wlan.ko)
- set contexts on copied modules (following symlinks) to system_file to avoid SELinux issues where unlabeled module files might not be allowed to load
- sometimes it's difficult to anchor to specific end lines due to variations across ROMs, so allow the end line to be blank " "
- note this will also remove the trailing blank line so for replacements a trailing \n should be added to maintain spacing; this should be pretty intuitive since you are including the blank line as the end line search
- some Samsung device images can be unpacked and repacked with the standard tools but the id sha1 is offset differently than in the standard header resulting in broken hash type detection
- to make it easier to diagnose issues with patches, image creation or flashing, adding "-debugging" to the end of the AK2 zip filename will enable the creation of a tar.gz of the entire /tmp directory after the installation process (but before cleanup, of course), this includes recovery.log, boot.img, boot-new.img and any other remnants to allow more thorough, direct debugging at a later time
- if it does not exist yet (i.e. hasn't been extracted) then assume cleanuponabort=1 since there wouldn't be anything to see on a failed extraction
- hide any missing file errors from file_getprop here now that we've taken care of that case
- add built-in support for dumpimage/mkimage for DENX U-Boot uImage devices (see: http://git.denx.de/u-boot.git)
- add built-in support for pxa1088-unpackbootimg/pxa1088-mkbootimg for Marvell PXA1088 board devices' deviation from the AOSP standard (see: https://github.com/osm0sis/pxa1088-mkbootimg)
patch_prop:
- if matched name is not present, appends new prop entry to the end of the file
- if matched name is present, replaces the entry with the new value
- use proper variable for ramdisk in mkbootfs support
patch_cmdline:
- if match not present, appends to the end of the current commandline
- if match is present, expands to full string (to allow for item=value entries), and optionally replaces with a second string, or just removes the entry, then cleans up doublespaces and trailing whitespace
"Some older scripts may still use ‘.’ in place of the ‘:’ separator. POSIX 1003.1-2001 does not require support for that, but for backward compatibility GNU chown supports ‘.’ so long as no ambiguity results. New scripts should avoid the use of ‘.’ because it is not portable, and because it has undesirable results if the entire owner‘.’group happens to identify a user whose name contains ‘.’."
Source: http://gnu.org/software/coreutils/manual/html_node/chown-invocation.html#chown-invocation.
- Chainfire inlines support for this into SuperSU (unlike the similar LG Bump support which must be added via /data/custom_boot_image_patch.sh), so we must also.
- on Sony devices supporting standard boot.img on unloacked bootloaders first AK2 flash would convert from ELF to boot.img, but second flash would attempt to use unpackelf again and fail, so fallback to unpackbootimg
- requires updated unpackelf binary for Sony ELF devices (see: https://github.com/osm0sis/unpackelf)
- add built-in support for futility for ChromeOS devices (see https://github.com/osm0sis/futility)
- small path cleanup since we generally need to be in /tmp/anykernel for post-repack anyway
- these seem to confuse new adopters, so end up left in the ramdisks of various devices where they are not applicable
DO NOT MERGE if you have already updated your ramdisk properly for your device
- 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