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
46c91f92
Commit
46c91f92
authored
Sep 12, 2017
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update scripts to support Pixel (XL)
parent
3a2262df
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
92 additions
and
23 deletions
+92
-23
build.py
build.py
+3
-0
boot_patch.sh
scripts/boot_patch.sh
+48
-12
flash_script.sh
scripts/flash_script.sh
+2
-7
util_functions.sh
scripts/util_functions.sh
+39
-4
No files found.
build.py
View file @
46c91f92
...
...
@@ -238,6 +238,9 @@ def zip_main(args):
source
=
os
.
path
.
join
(
'libs'
,
lib_dir
,
binary
)
target
=
os
.
path
.
join
(
zip_dir
,
binary
)
zip_with_msg
(
zipf
,
source
,
target
)
source
=
os
.
path
.
join
(
'libs'
,
'arm64-v8a'
,
'magiskinit'
)
target
=
os
.
path
.
join
(
'arm64'
,
'magiskinit'
)
zip_with_msg
(
zipf
,
source
,
target
)
# APK
source
=
os
.
path
.
join
(
'MagiskManager'
,
'app'
,
'build'
,
'outputs'
,
'apk'
,
...
...
scripts/boot_patch.sh
View file @
46c91f92
...
...
@@ -200,23 +200,54 @@ esac
ui_print_wrap
"- Patching ramdisk"
# Add magisk entrypoint
./magiskboot
--cpio-patch
ramdisk.cpio
$KEEPVERITY
$KEEPFORCEENCRYPT
# sepolicy patches
cpio_extract sepolicy sepolicy
./magisk magiskpolicy
--load
sepolicy
--save
sepolicy
--minimal
cpio_add 644 sepolicy sepolicy
rm
-f
sepolicy
# Add new items
if
[
!
-z
$SHA1
]
;
then
cp
init.magisk.rc init.magisk.rc.bak
echo
"# STOCKSHA1=
$SHA1
"
>>
init.magisk.rc
fi
cpio_add 750 init.magisk.rc init.magisk.rc
if
$SKIP_INITRAMFS
;
then
# First check precompiled ones
[
-f
/system_root/sepolicy
]
&&
cp
/system_root/sepolicy sepolicy
if
[
!
-f
sepolicy
-a
-f
/vendor/etc/selinux/precompiled_sepolicy
]
;
then
# Check SHA256
SYSTEMSHA256
=
`
find /system/etc/selinux
-name
'*.sha256'
-exec
cat
{}
\;
2>/dev/null
`
VENDORSHA256
=
`
find /vendor/etc/selinux
-name
'*.sha256'
-exec
cat
{}
\;
2>/dev/null
`
[
"
$SYSTEMSHA256
"
=
"
$VENDORSHA256
"
]
&&
cp
/vendor/etc/selinux/precompiled_sepolicy sepolicy
fi
if
[
!
-f
sepolicy
]
;
then
ui_print_wrap
"- Compiling split cil policies"
# Compile the split policies
POLICY_VER
=
`
cat
/sys/fs/selinux/policyvers
`
PLAT_CIL
=
/system/etc/selinux/plat_sepolicy.cil
NONPLAT_CIL
=
`
find /vendor/etc/selinux
-name
'*.cil'
2>/dev/null
`
VENDOR_PLAT_VER
=
`
cat
/vendor/etc/selinux/plat_sepolicy_vers.txt
`
MAPPING_CIL
=
/system/etc/selinux/mapping/
${
VENDOR_PLAT_VER
}
.cil
./magisk magisksecilc
-M
true
-c
$POLICY_VER
-o
sepolicy
-f
/dev/null
$PLAT_CIL
$NONPLAT_CIL
$MAPPING_CIL
fi
[
-f
sepolicy
]
||
abort_wrap
"! Cannot get sepolicy"
# TODO: Patch dm-verity
cpio_add 750 init ./magiskinit
cpio_mkdir 000 overlay
cpio_add 750 overlay/init.magisk.rc init.magisk.rc
cpio_mkdir 750 overlay/sbin
cpio_add 755 overlay/sbin/magisk magisk
else
./magiskboot
--cpio-patch
ramdisk.cpio
$KEEPVERITY
$KEEPFORCEENCRYPT
cpio_extract sepolicy sepolicy
cpio_add 750 init.magisk.rc init.magisk.rc
cpio_add 755 sbin/magisk magisk
fi
mv
init.magisk.rc.bak init.magisk.rc 2>/dev/null
cpio_add 755 sbin/magisk magisk
# sepolicy patches
./magisk magiskpolicy
--load
sepolicy
--save
sepolicy
--minimal
$SKIP_INITRAMFS
&&
cpio_add 644 overlay/sepolicy sepolicy
||
cpio_add 644 sepolicy sepolicy
rm
-f
sepolicy
# Create ramdisk backups
./magiskboot
--cpio-backup
ramdisk.cpio ramdisk.cpio.orig
...
...
@@ -234,6 +265,11 @@ rm -f ramdisk.cpio.orig
49010054011440B93FA00F71E9000054010840B93FA00F7189000054001840B91FA00F7188010054
\
A1020054011440B93FA00F7140020054010840B93FA00F71E0010054001840B91FA00F7181010054
# skip_initramfs -> want_initramfs
./magiskboot
--hexpatch
kernel
\
736B69705F696E697472616D6673
\
77616E745F696E697472616D6673
ui_print_wrap
"- Repacking boot image"
./magiskboot
--repack
"
$BOOTIMAGE
"
||
abort_wrap
"! Unable to repack boot image!"
...
...
scripts/flash_script.sh
View file @
46c91f92
...
...
@@ -49,13 +49,8 @@ ui_print "************************"
ui_print
"* Magisk v
$MAGISK_VER
Installer"
ui_print
"************************"
ui_print
"- Mounting /system, /vendor, /cache, /data"
mount
-o
ro /system 2>/dev/null
mount
-o
ro /vendor 2>/dev/null
mount /cache 2>/dev/null
mount /data 2>/dev/null
[
-f
/system/build.prop
]
||
abort
"! /system could not be mounted!"
is_mounted /data
||
mount /data
mount_partitions
# read override variables
getvar KEEPVERITY
...
...
scripts/util_functions.sh
View file @
46c91f92
...
...
@@ -37,6 +37,36 @@ ui_print() {
fi
}
mount_partitions
()
{
# Check A/B slot
SLOT
=
`
getprop ro.boot.slot_suffix
`
[
-z
$SLOT
]
||
ui_print
"- A/B partition detected, current slot:
$SLOT
"
ui_print
"- Mounting /system, /vendor"
is_mounted /system
||
[
-f
/system/build.prop
]
||
mount
-o
ro /system 2>/dev/null
if
!
is_mounted /system
&&
!
[
-f
/system/build.prop
]
;
then
SYSTEMBLOCK
=
`
find /dev/block
-iname
system
$SLOT
|
head
-n
1
`
mount
-t
ext4
-o
ro
$SYSTEMBLOCK
/system
fi
is_mounted /system
||
[
-f
/system/build.prop
]
||
abort
"! Cannot mount /system"
cat
/proc/mounts |
grep
/dev/root
>
/dev/null
&&
SKIP_INITRAMFS
=
true
||
SKIP_INITRAMFS
=
false
if
[
-f
/system/init.rc
]
;
then
SKIP_INITRAMFS
=
true
mkdir
/system_root 2>/dev/null
mount
--move
/system /system_root
mount
-o
bind
/system_root/system /system
fi
$SKIP_INITRAMFS
&&
ui_print
"- Device skip_initramfs detected"
if
[
-L
/system/vendor
]
;
then
# Seperate /vendor partition
is_mounted /vendor
||
mount
-o
ro /vendor 2>/dev/null
if
!
is_mounted /vendor
;
then
VENDORBLOCK
=
`
find /dev/block
-iname
vendor
$SLOT
|
head
-n
1
`
mount
-t
ext4
-o
ro
$VENDORBLOCK
/vendor
fi
is_mounted /vendor
||
abort
"! Cannot mount /vendor"
fi
}
grep_prop
()
{
REGEX
=
"s/^
$1
=//p"
shift
...
...
@@ -58,10 +88,14 @@ getvar() {
find_boot_image
()
{
if
[
-z
"
$BOOTIMAGE
"
]
;
then
for
BLOCK
in
boot_a kern-a android_boot kernel boot lnx
;
do
BOOTIMAGE
=
`
find /dev/block
-iname
$BLOCK
|
head
-n
1
`
2>/dev/null
[
!
-z
$BOOTIMAGE
]
&&
break
done
if
[
!
-z
$SLOT
]
;
then
BOOTIMAGE
=
`
find /dev/block
-iname
boot
$SLOT
|
head
-n
1
`
2>/dev/null
else
for
BLOCK
in
boot_a kern-a android_boot kernel boot lnx
;
do
BOOTIMAGE
=
`
find /dev/block
-iname
$BLOCK
|
head
-n
1
`
2>/dev/null
[
!
-z
$BOOTIMAGE
]
&&
break
done
fi
fi
# Recovery fallback
if
[
-z
"
$BOOTIMAGE
"
]
;
then
...
...
@@ -180,6 +214,7 @@ recovery_cleanup() {
export
LD_LIBRARY_PATH
=
$OLD_LD_PATH
[
-z
$OLD_PATH
]
||
export
PATH
=
$OLD_PATH
ui_print
"- Unmounting partitions"
umount
-l
/system_root 2>/dev/null
umount
-l
/system 2>/dev/null
umount
-l
/vendor 2>/dev/null
umount
-l
/dev/random 2>/dev/null
...
...
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