Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
Magisk
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Magisk
Commits
2afd2f0d
Commit
2afd2f0d
authored
Jan 01, 2017
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More SuperSU support
parent
2b72f40c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
121 additions
and
60 deletions
+121
-60
flash_script.sh
scripts/flash_script.sh
+90
-45
magic_mask.sh
scripts/magic_mask.sh
+7
-2
custom_ramdisk_patch.sh
zip_static/common/custom_ramdisk_patch.sh
+24
-13
No files found.
scripts/flash_script.sh
View file @
2afd2f0d
...
@@ -163,8 +163,10 @@ unpack_boot() {
...
@@ -163,8 +163,10 @@ unpack_boot() {
}
}
repack_boot
()
{
repack_boot
()
{
cd
$RAMDISK
if
(!
$SUPERSU
)
;
then
find
.
| cpio
-o
-H
newc 2>/dev/null |
gzip
-9
>
$UNPACKDIR
/ramdisk.gz
cd
$RAMDISK
find
.
| cpio
-o
-H
newc 2>/dev/null |
gzip
-9
>
$UNPACKDIR
/ramdisk.gz
fi
cd
$UNPACKDIR
cd
$UNPACKDIR
LD_LIBRARY_PATH
=
$SYSTEMLIB
$BINDIR
/bootimgtools
--repack
$BOOTIMAGE
LD_LIBRARY_PATH
=
$SYSTEMLIB
$BINDIR
/bootimgtools
--repack
$BOOTIMAGE
if
[
-f
chromeos
]
;
then
if
[
-f
chromeos
]
;
then
...
@@ -186,9 +188,6 @@ repack_boot() {
...
@@ -186,9 +188,6 @@ repack_boot() {
echo
-n
-e
"
\x
41
\x
a9
\x
e4
\x
67
\x
74
\x
4d
\x
1d
\x
1b
\x
a4
\x
29
\x
f2
\x
ec
\x
ea
\x
65
\x
52
\x
79"
>>
new-boot.img
echo
-n
-e
"
\x
41
\x
a9
\x
e4
\x
67
\x
74
\x
4d
\x
1d
\x
1b
\x
a4
\x
29
\x
f2
\x
ec
\x
ea
\x
65
\x
52
\x
79"
>>
new-boot.img
fi
fi
mv
new-boot.img
$NEWBOOT
mv
new-boot.img
$NEWBOOT
LD_LIBRARY_PATH
=
$SYSTEMLIB
$BINDIR
/bootimgtools
--hexpatch
$NEWBOOT
\
49010054011440B93FA00F71E9000054010840B93FA00F7189000054001840B91FA00F7188010054
\
A1020054011440B93FA00F7140020054010840B93FA00F71E0010054001840B91FA00F7181010054
}
}
##########################################################################################
##########################################################################################
...
@@ -218,7 +217,6 @@ if [ -z "$NOOVERRIDE" ]; then
...
@@ -218,7 +217,6 @@ if [ -z "$NOOVERRIDE" ]; then
# read override variables
# read override variables
getvar KEEPVERITY
getvar KEEPVERITY
getvar KEEPFORCEENCRYPT
getvar KEEPFORCEENCRYPT
getvar NORESTORE
getvar BOOTIMAGE
getvar BOOTIMAGE
fi
fi
...
@@ -230,10 +228,6 @@ if [ -z "$KEEPFORCEENCRYPT" ]; then
...
@@ -230,10 +228,6 @@ if [ -z "$KEEPFORCEENCRYPT" ]; then
# we don't keep forceencrypt by default
# we don't keep forceencrypt by default
KEEPFORCEENCRYPT
=
false
KEEPFORCEENCRYPT
=
false
fi
fi
if
[
-z
"
$NORESTORE
"
]
;
then
# we restore ramdisk by default
NORESTORE
=
false
fi
SAMSUNG
=
false
SAMSUNG
=
false
SAMSUNG_CHECK
=
$(
cat
/system/build.prop |
grep
"ro.build.fingerprint="
|
grep
-i
"samsung"
)
SAMSUNG_CHECK
=
$(
cat
/system/build.prop |
grep
"ro.build.fingerprint="
|
grep
-i
"samsung"
)
...
@@ -304,10 +298,13 @@ if (is_mounted /data); then
...
@@ -304,10 +298,13 @@ if (is_mounted /data); then
chcon
-hR
"u:object_r:system_file:s0"
/data/magisk /data/busybox
chcon
-hR
"u:object_r:system_file:s0"
/data/magisk /data/busybox
chmod
-R
755 /data/magisk /data/busybox
chmod
-R
755 /data/magisk /data/busybox
PATH
=
/data/busybox:
$PATH
PATH
=
/data/busybox:
$PATH
BINDIR
=
/data/magisk
else
else
rm
-rf
/cache/data_bin 2>/dev/null
rm
-rf
/cache/data_bin 2>/dev/null
cp
-af
$BINDIR
/cache/data_bin
cp
-af
$BINDIR
/cache/data_bin
cp
-af
$INSTALLER
/common/init.magisk.rc
$INSTALLER
/common/magic_mask.sh /cache/data_bin
cp
-af
$INSTALLER
/common/init.magisk.rc
$INSTALLER
/common/magic_mask.sh /cache/data_bin
chmod
-R
755 /cache/data_bin
BINDIR
=
/cache/data_bin
fi
fi
##########################################################################################
##########################################################################################
...
@@ -333,7 +330,7 @@ fi
...
@@ -333,7 +330,7 @@ fi
mount_image
$IMG
/magisk
mount_image
$IMG
/magisk
if
(!
is_mounted /magisk
)
;
then
if
(!
is_mounted /magisk
)
;
then
ui_print
"!
I
mage mount failed..."
ui_print
"!
Magisk i
mage mount failed..."
exit
1
exit
1
fi
fi
MAGISKLOOP
=
$LOOPDEVICE
MAGISKLOOP
=
$LOOPDEVICE
...
@@ -357,11 +354,59 @@ if [ $? -ne 0 ]; then
...
@@ -357,11 +354,59 @@ if [ $? -ne 0 ]; then
exit
1
;
exit
1
;
fi
fi
# Restore ramdisk
ORIGBOOT
=
ORIGBOOT
=
SUPERSU
=
false
SUPERSU
=
false
[
-f
sbin/launch_daemonsu.sh
]
&&
SUPERSU
=
true
[
-f
sbin/launch_daemonsu.sh
]
&&
SUPERSU
=
true
if
(!
$NORESTORE
)
;
then
if
(
$SUPERSU
)
;
then
##############################
# SuperSU installation process
##############################
ui_print
"- SuperSU patched boot detected!"
ui_print
"- Adding auto patch script for SuperSU"
cp
-af
$INSTALLER
/common/custom_ramdisk_patch.sh /data/custom_ramdisk_patch.sh
SUIMG
=
/data/su.img
mount_image
$SUIMG
/su
if
(!
is_mounted /su
)
;
then
ui_print
"! SU image mount failed..."
ui_print
"! Please immediately flash SuperSU now"
ui_print
"! Installation will complete after flashing SuperSU"
exit
1
fi
SUPERSULOOP
=
$LOOPDEVICE
gunzip
-c
<
$UNPACKDIR
/ramdisk.gz
>
$UNPACKDIR
/ramdisk
ui_print
"- Using sukernel to restore ramdisk"
# Restore ramdisk
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-restore
$UNPACKDIR
/ramdisk
$UNPACKDIR
/ramdisk.orig
if
[
$?
-ne
0
]
;
then
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--restore
$UNPACKDIR
/ramdisk
$TMPDIR
/boottmp/stock_boot.img
if
[
$?
-ne
0
]
;
then
ui_print
"! Unable to restore ramdisk"
exit
1
fi
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--bootimg-extract-ramdisk
$TMPDIR
/boottmp/stock_boot.img
$UNPACKDIR
/ramdisk.orig.gz
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--ungzip
$UNPACKDIR
/ramdisk.orig.gz
$UNPACKDIR
/ramdisk.orig
fi
if
[
!
-f
$UNPACKDIR
/ramdisk.orig
]
;
then
ui_print
"! Unable to restore ramdisk"
exit
1
fi
rm
-f
$TMPDIR
/boottmp/stock_boot.img
$UNPACKDIR
/ramdisk.orig.gz
$UNPACKDIR
/ramdisk.gz 2>/dev/null
ui_print
"- Patching ramdisk with sukernel"
sh /data/custom_ramdisk_patch.sh
$UNPACKDIR
/ramdisk
$BINDIR
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-backup
$UNPACKDIR
/ramdisk.orig
$UNPACKDIR
/ramdisk
$UNPACKDIR
/ramdisk
gzip
-9
<
$UNPACKDIR
/ramdisk
>
$UNPACKDIR
/ramdisk.gz
rm
-f
$UNPACKDIR
/ramdisk
$UNPACKDIR
/ramdisk.orig
else
##############################
# Magisk installation process
##############################
# Ramdisk restore
if
[
-d
".backup"
]
;
then
if
[
-d
".backup"
]
;
then
# This implies Magisk is already installed, and ramdisk backup exists
# This implies Magisk is already installed, and ramdisk backup exists
ui_print
"- Restoring ramdisk with ramdisk backup"
ui_print
"- Restoring ramdisk with ramdisk backup"
...
@@ -369,12 +414,13 @@ if (! $NORESTORE); then
...
@@ -369,12 +414,13 @@ if (! $NORESTORE); then
rm
-rf
magisk init.magisk.rc sbin/magic_mask.sh 2>/dev/null
rm
-rf
magisk init.magisk.rc sbin/magic_mask.sh 2>/dev/null
ORIGBOOT
=
false
ORIGBOOT
=
false
elif
[
-d
"magisk"
]
;
then
elif
[
-d
"magisk"
]
;
then
cp
-a
f
/data/stock_boot_
*
.gz /data/stock_boot.img.gz 2>/dev/null
mv
-
f
/data/stock_boot_
*
.gz /data/stock_boot.img.gz 2>/dev/null
gzip
-d
/data/stock_boot.img.gz 2>/dev/null
gzip
-d
/data/stock_boot.img.gz 2>/dev/null
rm
-f
/data/stock_boot.img.gz 2>/dev/null
[
-f
/data/stock_boot.img
]
&&
ORIGBOOT
=
/data/stock_boot.img
[
-f
/data/stock_boot.img
]
&&
ORIGBOOT
=
/data/stock_boot.img
# If Magisk is installed and no SuperSU and no ramdisk backups,
# If Magisk is installed and no SuperSU and no ramdisk backups,
# we restore previous stock boot image backups
# we restore previous stock boot image backups
if
(!
$SUPERSU
)
&&
[
!
-z
$ORIGBOOT
]
;
then
if
[
!
-z
$ORIGBOOT
]
;
then
ui_print
"- Restoring boot image with backup"
ui_print
"- Restoring boot image with backup"
unpack_boot
$ORIGBOOT
unpack_boot
$ORIGBOOT
fi
fi
...
@@ -383,14 +429,8 @@ if (! $NORESTORE); then
...
@@ -383,14 +429,8 @@ if (! $NORESTORE); then
rm
-rf
init.xposed.rc sbin/mount_xposed.sh 2>/dev/null
rm
-rf
init.xposed.rc sbin/mount_xposed.sh 2>/dev/null
ORIGBOOT
=
false
ORIGBOOT
=
false
fi
fi
fi
if
(
$SUPERSU
)
;
then
# Backups
ui_print
"- SuperSU patched boot detected!"
ui_print
"- Adding auto patch script for SuperSU"
cp
-af
$INSTALLER
/common/custom_ramdisk_patch.sh /data/custom_ramdisk_patch.sh
else
# SuperSU already backup stock boot, no need to do again
ui_print
"- Creating ramdisk backup"
ui_print
"- Creating ramdisk backup"
mkdir
.backup 2>/dev/null
mkdir
.backup 2>/dev/null
cp
-af
*
fstab
*
verity_key sepolicy .backup 2>/dev/null
cp
-af
*
fstab
*
verity_key sepolicy .backup 2>/dev/null
...
@@ -403,7 +443,7 @@ else
...
@@ -403,7 +443,7 @@ else
fi
fi
fi
fi
#
SuperSU already have root, no need to install r
oot
#
R
oot
ROOT
=
false
ROOT
=
false
if
[
!
-d
/magisk/phh
]
;
then
if
[
!
-d
/magisk/phh
]
;
then
ui_print
"- Installing phh's SuperUser"
ui_print
"- Installing phh's SuperUser"
...
@@ -420,21 +460,19 @@ else
...
@@ -420,21 +460,19 @@ else
cp
-af
$BINDIR
/su
$BINDIR
/sepolicy-inject /magisk/phh/bin
cp
-af
$BINDIR
/su
$BINDIR
/sepolicy-inject /magisk/phh/bin
chmod
-R
755 /magisk/phh/bin
chmod
-R
755 /magisk/phh/bin
fi
fi
fi
# Patch ramdisk
# Patch ramdisk
ui_print
"- Patching ramdisk"
ui_print
"- Patching ramdisk"
# Add magisk entrypoint
# Add magisk entrypoint
for
INIT
in
init
*
.rc
;
do
for
INIT
in
init
*
.rc
;
do
if
[
`
grep
-c
"import /init.environ.rc"
$INIT
`
-ne
"0"
]
&&
[
`
grep
-c
"import /init.magisk.rc"
$INIT
`
-eq
"0"
]
;
then
if
[
`
grep
-c
"import /init.environ.rc"
$INIT
`
-ne
"0"
]
&&
[
`
grep
-c
"import /init.magisk.rc"
$INIT
`
-eq
"0"
]
;
then
cp
$INIT
.backup
cp
$INIT
.backup
sed
-i
"/import
\/
init
\.
environ
\.
rc/iimport /init.magisk.rc"
$INIT
sed
-i
"/import
\/
init
\.
environ
\.
rc/iimport /init.magisk.rc"
$INIT
break
break
fi
fi
done
done
if
(!
$SUPERSU
)
;
then
sed
-i
"/selinux.reload_policy/d"
init.rc
sed
-i
"/selinux.reload_policy/d"
init.rc
find
.
-type
f
-name
"*fstab*"
2>/dev/null |
while
read
FSTAB
;
do
find
.
-type
f
-name
"*fstab*"
2>/dev/null |
while
read
FSTAB
;
do
if
(!
$KEEPVERITY
)
;
then
if
(!
$KEEPVERITY
)
;
then
...
@@ -449,18 +487,18 @@ if (! $SUPERSU); then
...
@@ -449,18 +487,18 @@ if (! $SUPERSU); then
if
(!
$KEEPVERITY
)
;
then
if
(!
$KEEPVERITY
)
;
then
rm
verity_key 2>/dev/null
rm
verity_key 2>/dev/null
fi
fi
fi
# sepolicy patches
# sepolicy patches
LD_LIBRARY_PATH
=
$SYSTEMLIB
$BINDIR
/sepolicy-inject
--magisk
-P
sepolicy
LD_LIBRARY_PATH
=
$SYSTEMLIB
$BINDIR
/sepolicy-inject
--magisk
-P
sepolicy
# Add new items
# Add new items
mkdir
-p
magisk 2>/dev/null
mkdir
-p
magisk 2>/dev/null
cp
-af
$INSTALLER
/common/init.magisk.rc init.magisk.rc
cp
-af
$INSTALLER
/common/init.magisk.rc init.magisk.rc
cp
-af
$INSTALLER
/common/magic_mask.sh sbin/magic_mask.sh
cp
-af
$INSTALLER
/common/magic_mask.sh sbin/magic_mask.sh
chmod
0755 magisk
chmod
0755 magisk
chmod
0750 init.magisk.rc sbin/magic_mask.sh
chmod
0750 init.magisk.rc sbin/magic_mask.sh
fi
ui_print
"- Repacking boot image"
ui_print
"- Repacking boot image"
repack_boot
repack_boot
...
@@ -486,12 +524,19 @@ ui_print "- Flashing new boot image"
...
@@ -486,12 +524,19 @@ ui_print "- Flashing new boot image"
[
!
-L
$BOOTIMAGE
]
&&
dd
if
=
/dev/zero
of
=
$BOOTIMAGE
bs
=
4096 2>/dev/null
[
!
-L
$BOOTIMAGE
]
&&
dd
if
=
/dev/zero
of
=
$BOOTIMAGE
bs
=
4096 2>/dev/null
dd
if
=
$NEWBOOT
of
=
$BOOTIMAGE
bs
=
4096
dd
if
=
$NEWBOOT
of
=
$BOOTIMAGE
bs
=
4096
cd
/
if
(!
$BOOTMODE
)
;
then
if
(!
$BOOTMODE
)
;
then
ui_print
"- Unmounting partitions"
ui_print
"- Unmounting partitions"
umount /magisk
umount /magisk
losetup
-d
$MAGISKLOOP
losetup
-d
$MAGISKLOOP
umount /system
rmdir
/magisk
rmdir
/magisk
if
(
$SUPERSU
)
;
then
umount /su
losetup
-d
$SUPERSULOOP
rmdir
/su
fi
umount /system
fi
fi
ui_print
"- Done"
ui_print
"- Done"
...
...
scripts/magic_mask.sh
View file @
2afd2f0d
...
@@ -340,6 +340,12 @@ case $1 in
...
@@ -340,6 +340,12 @@ case $1 in
log_print
"* Preparing modules"
log_print
"* Preparing modules"
# Disable phh and Magisk Hide for SuperSU
if
[
-f
/sbin/launch_daemonsu.sh
]
;
then
touch
/magisk/phh/disable 2>/dev/null
rm
-f
$COREDIR
/magiskhide/enable 2>/dev/null
fi
mkdir
-p
$DUMMDIR
mkdir
-p
$DUMMDIR
mkdir
-p
$MIRRDIR
/system
mkdir
-p
$MIRRDIR
/system
...
@@ -442,8 +448,7 @@ case $1 in
...
@@ -442,8 +448,7 @@ case $1 in
log_print
"** Magisk late_start service mode running..."
log_print
"** Magisk late_start service mode running..."
run_scripts service
run_scripts service
# Magisk Hide (disable with SuperSU)
# Magisk Hide
[
-f
/sbin/launch_daemonsu.sh
]
&&
rm
-f
$COREDIR
/magiskhide/enable
if
[
-f
$COREDIR
/magiskhide/enable
]
;
then
if
[
-f
$COREDIR
/magiskhide/enable
]
;
then
log_print
"* Removing tampered read-only system props"
log_print
"* Removing tampered read-only system props"
...
...
zip_static/common/custom_ramdisk_patch.sh
View file @
2afd2f0d
#!/system/bin/sh
#!/system/bin/sh
RAMDISK
=
$1
RAMDISK
=
$1
BINDIR
=
/data/magisk
BINDIR
=
$2
[
-z
$BINDIR
]
&&
BINDIR
=
/data/magisk
SYSTEMLIB
=
/system/lib
[
-d
/system/lib64
]
&&
SYSTEMLIB
=
/system/lib64
cpio_add
()
{
cpio_add
()
{
/su/bin/sukernel
--cpio-add
$RAMDISK
$RAMDISK
$2
$1
$1
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-add
$RAMDISK
$RAMDISK
$2
$1
$1
}
}
cpio_extract
()
{
cpio_extract
()
{
/su/bin/sukernel
--cpio-extract
$RAMDISK
$1
$1
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-extract
$RAMDISK
$1
$1
}
}
cpio_mkdir
()
{
cpio_mkdir
()
{
/su/bin/sukernel
--cpio-mkdir
$RAMDISK
$RAMDISK
$2
$1
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-mkdir
$RAMDISK
$RAMDISK
$2
$1
}
# Recursive
cpio_rm
()
{
if
[
"
$1
"
=
"-r"
]
;
then
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-ls
$RAMDISK
|
grep
"^
$2
/"
|
while
read
i
;
do
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-rm
$RAMDISK
$RAMDISK
$i
done
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-rmdir
$RAMDISK
$RAMDISK
$2
else
LD_LIBRARY_PATH
=
$SYSTEMLIB
/su/bin/sukernel
--cpio-rm
$RAMDISK
$RAMDISK
$1
fi
}
}
rm
-rf
/tmp/magisk/ramdisk 2>/dev/null
rm
-rf
/tmp/magisk/ramdisk 2>/dev/null
...
@@ -24,27 +39,23 @@ cat $RAMDISK | cpio -i
...
@@ -24,27 +39,23 @@ cat $RAMDISK | cpio -i
# Patch ramdisk
# Patch ramdisk
echo
"- Patching ramdisk"
echo
"- Patching ramdisk"
# Cleanup SuperSU backups
cpio_rm
-r
.subackup
# Add magisk entrypoint
# Add magisk entrypoint
for
INIT
in
init
*
.rc
;
do
for
INIT
in
init
*
.rc
;
do
if
[
$(
grep
-c
"import /init.environ.rc"
$INIT
)
-ne
"0"
]
&&
[
$(
grep
-c
"import /init.magisk.rc"
$INIT
)
-eq
"0"
]
;
then
if
[
`
grep
-c
"import /init.environ.rc"
$INIT
`
-ne
"0"
]
&&
[
`
grep
-c
"import /init.magisk.rc"
$INIT
`
-eq
"0"
]
;
then
sed
-i
"/import
\/
init
\.
environ
\.
rc/iimport /init.magisk.rc"
$INIT
sed
-i
"/import
\/
init
\.
environ
\.
rc/iimport /init.magisk.rc"
$INIT
cpio_add
$INIT
750
cpio_add
$INIT
750
break
break
fi
fi
done
done
# Add magisk PATH
if
[
$(
grep
-c
"/magisk/.core/busybox"
init.environ.rc
)
-eq
"0"
]
;
then
sed
-i
"/export PATH/ s/
\/
system
\/
xbin/
\/
system
\/
xbin:
\/
magisk
\/
.core
\/
busybox/g"
init.environ.rc
cpio_add init.environ.rc 750
fi
# sepolicy patches
# sepolicy patches
$BINDIR
/sepolicy-inject
--magisk
-P
sepolicy
LD_LIBRARY_PATH
=
$SYSTEMLIB
$BINDIR
/sepolicy-inject
--magisk
-P
sepolicy
cpio_add sepolicy 644
cpio_add sepolicy 644
# Add new items
# Add new items
mkdir
-p
magisk 2>/dev/null
cp
-af
$BINDIR
/init.magisk.rc init.magisk.rc
cp
-af
$BINDIR
/init.magisk.rc init.magisk.rc
cp
-af
$BINDIR
/magic_mask.sh sbin/magic_mask.sh
cp
-af
$BINDIR
/magic_mask.sh sbin/magic_mask.sh
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment