Add boot signing to installation
This commit is contained in:
parent
e97bdb53f4
commit
a831110816
28
README.MD
28
README.MD
@ -2,11 +2,7 @@
|
|||||||
|
|
||||||
## How to build Magisk
|
## How to build Magisk
|
||||||
|
|
||||||
#### Building has been tested on 3 major platforms:
|
#### Building has been tested on 3 major platforms: macOS, Ubuntu, Windows 10
|
||||||
|
|
||||||
**macOS 10.12**
|
|
||||||
**Ubuntu 17.04 x64**
|
|
||||||
**Windows 10 x64**
|
|
||||||
|
|
||||||
#### Environment Requirements
|
#### Environment Requirements
|
||||||
|
|
||||||
@ -14,8 +10,8 @@
|
|||||||
2. Python 3.5+: to run the build script
|
2. Python 3.5+: to run the build script
|
||||||
3. Java Development Kit (JDK) 8: To compile Magisk Manager and sign zips
|
3. Java Development Kit (JDK) 8: To compile Magisk Manager and sign zips
|
||||||
4. C compiler (Unix only): To build `zipadjust`. Windows users can use the pre-built `zipadjust.exe`
|
4. C compiler (Unix only): To build `zipadjust`. Windows users can use the pre-built `zipadjust.exe`
|
||||||
5. Android SDK: `ANDROID_HOME` environment variable should point to the Android SDK folder
|
5. Latest Android SDK: `ANDROID_HOME` environment variable should point to the Android SDK folder
|
||||||
6. Android NDK: Install NDK via `sdkmanager`, or via Android SDK Manager in Android Studio
|
6. Latest Android NDK: Install NDK via `sdkmanager`, or via Android SDK Manager in Android Studio
|
||||||
|
|
||||||
#### Instructions and Notes
|
#### Instructions and Notes
|
||||||
|
|
||||||
@ -29,7 +25,7 @@
|
|||||||
## License
|
## License
|
||||||
|
|
||||||
```
|
```
|
||||||
Magisk, including all subprojects (git submodule) is free software:
|
Magisk, including all git submodules are free software:
|
||||||
you can redistribute it and/or modify it under the terms of the
|
you can redistribute it and/or modify it under the terms of the
|
||||||
GNU General Public License as published by the Free Software Foundation,
|
GNU General Public License as published by the Free Software Foundation,
|
||||||
either version 3 of the License, or (at your option) any later version.
|
either version 3 of the License, or (at your option) any later version.
|
||||||
@ -67,29 +63,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
**MagiskHide** (`jni/magiskhide`)
|
**MagiskHide** (`jni/magiskhide`)
|
||||||
|
|
||||||
* Copyright 2016-2017, John Wu (@topjohnwu)
|
* Copyright 2016-2017, John Wu (@topjohnwu)
|
||||||
* Copyright 2016, Pierre-Hugues Husson (phh@phh.me) (original hidesu)
|
* Copyright 2016, Pierre-Hugues Husson (phh@phh.me)
|
||||||
|
|
||||||
**resetprop** (`jni/resetprop`)
|
**resetprop** (`jni/resetprop`)
|
||||||
|
|
||||||
* Copyright 2016-2017 John Wu (@topjohnwu)
|
* Copyright 2016-2017 John Wu (@topjohnwu)
|
||||||
* Copyright 2016 nkk71 (nkk71x@gmail.com)
|
* Copyright 2016 nkk71 (nkk71x@gmail.com)
|
||||||
|
|
||||||
**SELinux** (`jni/selinux`)
|
**ndk-busybox** (`jni/external/busybox`)
|
||||||
|
|
||||||
* Makefile for NDK: Copyright 2016-2017, John Wu (@topjohnwu)
|
|
||||||
* Maintained by many developers in SELinux project
|
|
||||||
|
|
||||||
**ndk-compression** (`jni/ndk-compression`)
|
|
||||||
|
|
||||||
* Makefile for NDK: Copyright 2017, John Wu (@topjohnwu)
|
|
||||||
* Each library has its own copyright message in corresponding directories
|
|
||||||
|
|
||||||
**ndk-busybox** (`jni/busybox`)
|
|
||||||
|
|
||||||
* Makefile for NDK, generated by [ndk-busybox-kitchen](https://github.com/topjohnwu/ndk-busybox-kitchen): Copyright 2017, John Wu (@topjohnwu)
|
* Makefile for NDK, generated by [ndk-busybox-kitchen](https://github.com/topjohnwu/ndk-busybox-kitchen): Copyright 2017, John Wu (@topjohnwu)
|
||||||
* Patches for NDK: Many contributors along the way, all placed in [osm0sis/android-busybox-ndk](https://github.com/osm0sis/android-busybox-ndk)
|
* Patches for NDK: Many contributors along the way, all placed in [osm0sis/android-busybox-ndk](https://github.com/osm0sis/android-busybox-ndk)
|
||||||
* The copyright message for busybox should be included in its own directory
|
* The copyright message for busybox should be included in its own directory
|
||||||
|
|
||||||
**Others Not Mentioned**
|
**Others Not Mentioned** (exclude `jni/external`)
|
||||||
|
|
||||||
* Copyright 2016-2017, John Wu (@topjohnwu)
|
* Copyright 2016-2017, John Wu (@topjohnwu)
|
||||||
|
2
java
2
java
@ -1 +1 @@
|
|||||||
Subproject commit 05f41928cd0f72ddab557c8db6c2fc11c3fd08e6
|
Subproject commit fdd700f3e5c2f9d7688d2434d4dbee8c12524411
|
@ -22,6 +22,7 @@ TMPDIR=/dev/tmp
|
|||||||
|
|
||||||
INSTALLER=$TMPDIR/install
|
INSTALLER=$TMPDIR/install
|
||||||
COMMONDIR=$INSTALLER/common
|
COMMONDIR=$INSTALLER/common
|
||||||
|
APK=$COMMONDIR/magisk.apk
|
||||||
CHROMEDIR=$INSTALLER/chromeos
|
CHROMEDIR=$INSTALLER/chromeos
|
||||||
COREDIR=/magisk/.core
|
COREDIR=/magisk/.core
|
||||||
|
|
||||||
@ -109,7 +110,10 @@ $BOOTMODE || recovery_actions
|
|||||||
|
|
||||||
find_boot_image
|
find_boot_image
|
||||||
[ -z $BOOTIMAGE ] && abort "! Unable to detect 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
|
SOURCEDMODE=true
|
||||||
cd $MAGISKBIN
|
cd $MAGISKBIN
|
||||||
|
@ -13,6 +13,9 @@ SCRIPT_VERSION=$MAGISK_VER_CODE
|
|||||||
# Default location, will override if needed
|
# Default location, will override if needed
|
||||||
MAGISKBIN=/data/magisk
|
MAGISKBIN=/data/magisk
|
||||||
|
|
||||||
|
BOOTSIGNER="/system/bin/dalvikvm -Xnodex2oat -Xnoimage-dex2oat -cp \$APK com.topjohnwu.magisk.utils.BootSigner"
|
||||||
|
BOOTSIGNED=false
|
||||||
|
|
||||||
get_outfd() {
|
get_outfd() {
|
||||||
readlink /proc/$$/fd/$OUTFD 2>/dev/null | grep /tmp >/dev/null
|
readlink /proc/$$/fd/$OUTFD 2>/dev/null | grep /tmp >/dev/null
|
||||||
if [ "$?" -eq "0" ]; then
|
if [ "$?" -eq "0" ]; then
|
||||||
@ -137,14 +140,15 @@ flash_boot_image() {
|
|||||||
*.gz) COMMAND="gzip -d < \"$1\"";;
|
*.gz) COMMAND="gzip -d < \"$1\"";;
|
||||||
*) COMMAND="cat \"$1\"";;
|
*) COMMAND="cat \"$1\"";;
|
||||||
esac
|
esac
|
||||||
|
$BOOTSIGNED && SIGNCOM="$BOOTSIGNER -sign" || SIGNCOM="cat -"
|
||||||
case "$2" in
|
case "$2" in
|
||||||
/dev/block/*)
|
/dev/block/*)
|
||||||
ui_print "- Flashing new boot image"
|
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"
|
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
|
esac
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user