Commit Graph

86 Commits

Author SHA1 Message Date
osm0sis a48c4f9e05 magiskboot: don't clobber /overlay with cpio restore anymore
- Magisk "dirty" flashes would remove the /overlay directory which might have been put there by a custom kernel or other mod
- this is a leftover from when Magisk itself used /overlay for placing init.magisk.rc, so just remove this file specifically and leave the rest intact
2019-06-27 18:59:54 -04:00
topjohnwu e8d900c58e Fix typo 2019-06-15 18:12:12 -07:00
topjohnwu a6241ae912 Fix magiskboot unpack option parsing 2019-06-15 16:15:12 -07:00
osm0sis ee407472cf magiskboot: allow forcing no recompression on ramdisk.cpio
- when input image had a compressed ramdisk magiskboot had no way to force the repack with the uncompressed ramdisk.cpio since it does not formally recognize cpio as its own format, so add a switch to support forcing repacking to any possible ramdisk format regardless of input image
2019-06-10 21:57:39 -07:00
osm0sis f341f3b2dd magiskboot: accept forcing recognized but unsupported format compression
- when input image had a different supported format (e.g. gzip) magiskboot would not accept a manually compressed ramdisk or kernel in an unsupported format (e.g. lzop) despite being able to recognize it, so instead would double compress using whatever the input format was, breaking the image with, in effect, a ramdisk.cpio.lzo.gz
2019-06-10 21:56:51 -07:00
Ian Macdonald 8513946e09 'magiskboot hexpatch' will exit with status 1 when nothing patched. 2019-06-10 21:41:40 -07:00
osm0sis bf58205b0a magiskboot: be clear lzop is not a supported compression format
- keep detection and always display detected format type to fascilitate external support
2019-05-30 20:31:24 -07:00
osm0sis b79d1bcded magiskboot: clean up remaining unneeded ELF detection bits
- default for no format match is UNSUPP_RET (unsupported) so there is no needed to explicitly detect ELF still
2019-05-21 02:49:19 -07:00
Chris Renshaw 17e234f9d5 magiskboot: fix bootimg hdr v2 checksum generation
- new AOSP dtb section was missing from HASH_update
2019-05-21 02:49:19 -07:00
osm0sis 2ff5d9606b magiskboot: add support for remaining Nook HD pre-image loaders 2019-05-19 17:38:41 -07:00
osm0sis b0d6de783e Correct magiskboot help 2019-05-09 20:28:48 -07:00
topjohnwu 00a9f18a1e Build with -Wall 2019-04-29 21:26:43 -04:00
topjohnwu e784212283 Update tools docs 2019-03-28 04:54:06 -04:00
topjohnwu b7e2e972c7 Support boot_img_hdr_v2 2019-03-13 16:51:22 -04:00
topjohnwu a57a94040e Update some format magics 2019-03-08 00:47:15 -05:00
topjohnwu 1bde78d121 Rename patch_level -> os_patch_level 2019-03-07 21:59:03 -05:00
topjohnwu bbd014ad1b More saftey checks and improvements 2019-03-07 21:49:47 -05:00
topjohnwu 1287372f5a Support patching header in magiskboot 2019-03-07 21:32:01 -05:00
topjohnwu bbe4b69c8d Fix LZ4FEncoder constructor 2019-03-07 19:58:59 -05:00
topjohnwu 7f08c06943 Remove unnecessary '--' from magiskboot actions 2019-03-07 18:07:23 -05:00
topjohnwu 0442d6d509 Only compress kernel and ramdisk if input not compressed 2019-03-07 07:24:20 -05:00
topjohnwu e72c6685ed Support A only System-as-root Devices
Most Chinese devices (and supposedly Galaxy S10) running Android Pie
is using system-as-root without A/B partition.

https://source.android.com/devices/bootloader/system-as-root#about-system-as-root

According to the docs above, these devices will have a ramdisk block
with size 0 in their boot images. Since magiskinit can run independently
on system-as-root devices, we simply just create an empty ramdisk with
magiskinit added as init.

Huge thanks to @vvb2060 for the heads up and original PR.
Close #980, close #1102
2019-02-28 05:46:36 -05:00
topjohnwu c9fa8118d1 Some code adjustments 2019-02-24 23:09:34 -05:00
topjohnwu 63b18246d8 Add compressed ramdisk support 2019-02-24 20:39:01 -05:00
topjohnwu 16ec37a226 Fix compression without outname 2019-02-24 17:45:08 -05:00
topjohnwu c84023bdc2 Fix crashes when removing verity_key 2019-02-24 04:29:15 -05:00
topjohnwu 86f778c0aa Group unsupported formats into the same code 2019-02-24 02:30:04 -05:00
topjohnwu 340bac7e42 Add decompression command 2019-02-23 16:53:51 -05:00
topjohnwu 4a398642b8 Set mode in constructor 2019-02-23 15:22:11 -05:00
topjohnwu 9c89e56c56 Add ramdisk compression option 2019-02-23 15:04:15 -05:00
topjohnwu 75939047d1 Fix bugs in compression 2019-02-23 04:51:13 -05:00
topjohnwu 2d7f130d2c Introduce Java-like OutputStream 2019-02-23 04:51:13 -05:00
topjohnwu f7ae72a36c Move CPIO to libutils 2019-02-23 02:42:26 -05:00
topjohnwu 391783e268 Introduce mmap based CPIO class 2019-02-23 02:23:24 -05:00
topjohnwu 6f12c08204 Use ordered map to store CPIO entries 2019-02-22 22:53:20 -05:00
topjohnwu cb8fe70734 Modernize CPIO code 2019-02-22 02:56:18 -05:00
topjohnwu 69d10b747a Directly use FDT headers for detection 2019-02-21 05:24:05 -05:00
topjohnwu da3394f34e Move image parsing out of header searching 2019-02-21 05:08:38 -05:00
topjohnwu b4c2a9f49f More macro magic 2019-02-21 04:14:52 -05:00
topjohnwu 7cee77f57a Some C++ magic to make code cleaner 2019-02-21 02:54:37 -05:00
topjohnwu f28bd1972f Adjust LZ4F block size 2019-02-21 00:52:47 -05:00
topjohnwu 0f92d1de1b Fix bzip2 decompression 2019-02-20 20:53:54 -05:00
topjohnwu e59c5c8780 Modernize compress and decompress 2019-02-20 20:49:26 -05:00
kirill9617 86d8026301 Update format.h
GZIP magic is \x1f\x8b\x08 not \x1f\x8b\x08\x00
2019-02-20 03:53:41 -05:00
topjohnwu d67b827338 Rewrite compression with OOP 2019-02-20 02:10:06 -05:00
topjohnwu ed027ec3ee Refactor build flags 2019-02-12 05:17:02 -05:00
topjohnwu 71ecbb3af3 Clean/refactor includes 2019-02-10 03:57:51 -05:00
topjohnwu 9275975b2c Re-organize functions 2019-01-26 06:00:23 -05:00
topjohnwu 3e4c12cf56 Migrate to STL 2019-01-19 23:59:37 -05:00
topjohnwu b245931c79 Prevent duplicates when "." or ".." occurs 2018-12-09 22:12:04 -05:00