Add boot signing to installation

This commit is contained in:
topjohnwu
2017-10-31 17:05:24 +08:00
parent e97bdb53f4
commit a831110816
4 changed files with 19 additions and 25 deletions

View File

@@ -22,6 +22,7 @@ TMPDIR=/dev/tmp
INSTALLER=$TMPDIR/install
COMMONDIR=$INSTALLER/common
APK=$COMMONDIR/magisk.apk
CHROMEDIR=$INSTALLER/chromeos
COREDIR=/magisk/.core
@@ -109,7 +110,10 @@ $BOOTMODE || recovery_actions
find_boot_image
[ -z $BOOTIMAGE ] && abort "! Unable to detect boot image"
ui_print "- Found Boot Image: $BOOTIMAGE"
ui_print "- Found boot image: $BOOTIMAGE"
eval $BOOTSIGNER -verify < $BOOTIMAGE && BOOTSIGNED=true
$BOOTSIGNED && ui_print "- Signed boot image detected"
SOURCEDMODE=true
cd $MAGISKBIN

View File

@@ -13,6 +13,9 @@ SCRIPT_VERSION=$MAGISK_VER_CODE
# Default location, will override if needed
MAGISKBIN=/data/magisk
BOOTSIGNER="/system/bin/dalvikvm -Xnodex2oat -Xnoimage-dex2oat -cp \$APK com.topjohnwu.magisk.utils.BootSigner"
BOOTSIGNED=false
get_outfd() {
readlink /proc/$$/fd/$OUTFD 2>/dev/null | grep /tmp >/dev/null
if [ "$?" -eq "0" ]; then
@@ -137,14 +140,15 @@ flash_boot_image() {
*.gz) COMMAND="gzip -d < \"$1\"";;
*) COMMAND="cat \"$1\"";;
esac
$BOOTSIGNED && SIGNCOM="$BOOTSIGNER -sign" || SIGNCOM="cat -"
case "$2" in
/dev/block/*)
ui_print "- Flashing new boot image"
eval $COMMAND | cat - /dev/zero | dd of="$2" bs=4096 >/dev/null 2>&1
eval $COMMAND | eval $SIGNCOM | cat - /dev/zero | dd of="$2" bs=4096 >/dev/null 2>&1
;;
*)
ui_print "- Storing new boot image"
eval $COMMAND | dd of="$2" bs=4096 >/dev/null 2>&1
eval $COMMAND | eval $SIGNCOM | dd of="$2" bs=4096 >/dev/null 2>&1
;;
esac
}