diff --git a/anykernel.sh b/anykernel.sh index 43a5873..e842b5b 100755 --- a/anykernel.sh +++ b/anykernel.sh @@ -36,12 +36,27 @@ dump_boot() { } # repack ramdisk then build and write image -write_boot() { - find . | cpio -o -H newc | gzip > /tmp/anykernel/ramdisk-new.cpio.gz; - if [ ! -z `cat $split_img/boot.img-cmdline` ]; then - cmdline="--cmdline `cat $split_img/boot.img-cmdline`"; +write_boot() { + cd $split_img; + cmdline=`cat *-cmdline`; + base=`cat *-base`; + pagesize=`cat *-pagesize`; + kerneloff=`cat *-kerneloff`; + ramdiskoff=`cat *-ramdiskoff`; + tagsoff=`cat *-tagsoff`; + if [ -f *-second ]; then + second=`ls *-second`; + second="--second $split_img/$second"; + secondoff=`cat *-secondoff`; + secondoff="--second_offset $secondoff"; fi; - $bin/mkbootimg --kernel /tmp/anykernel/zImage --ramdisk /tmp/anykernel/ramdisk-new.cpio.gz $cmdline --base 0x`cat $split_img/boot.img-base` --pagesize `printf "%d\n" 0x$(cat $split_img/boot.img-pagesize)` --output /tmp/anykernel/boot-new.img; + if [ -f *-dtb ]; then + dtb=`ls *-dtb`; + dtb="--dt $split_img/$dtb"; + fi; + cd $ramdisk; + find . | cpio -o -H newc | gzip > /tmp/anykernel/ramdisk-new.cpio.gz; + $bin/mkbootimg --kernel /tmp/anykernel/zImage --ramdisk /tmp/anykernel/ramdisk-new.cpio.gz $second --cmdline "$cmdline" --base $base --pagesize $pagesize --kernel_offset $kerneloff --ramdisk_offset $ramdiskoff $secondoff --tags_offset $tagsoff $dtb --output /tmp/anykernel/boot-new.img; dd if=/tmp/anykernel/boot-new.img of=$block; } diff --git a/tools/mkbootimg b/tools/mkbootimg index 5b90622..7d4f83c 100755 Binary files a/tools/mkbootimg and b/tools/mkbootimg differ diff --git a/tools/unpackbootimg b/tools/unpackbootimg index 25ac61d..18292d1 100755 Binary files a/tools/unpackbootimg and b/tools/unpackbootimg differ