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
7da35e54
Commit
7da35e54
authored
Mar 15, 2020
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Extract full module installation logic
parent
7768274b
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
130 additions
and
21 deletions
+130
-21
module_installer.sh
scripts/module_installer.sh
+30
-21
util_functions.sh
scripts/util_functions.sh
+100
-0
No files found.
scripts/module_installer.sh
View file @
7da35e54
...
@@ -6,13 +6,6 @@
...
@@ -6,13 +6,6 @@
umask
022
umask
022
# Global vars
TMPDIR
=
/dev/tmp
PERSISTDIR
=
/sbin/.magisk/mirror/persist
rm
-rf
$TMPDIR
2>/dev/null
mkdir
-p
$TMPDIR
# echo before loading util_functions
# echo before loading util_functions
ui_print
()
{
echo
"
$1
"
;
}
ui_print
()
{
echo
"
$1
"
;
}
...
@@ -23,6 +16,36 @@ require_new_magisk() {
...
@@ -23,6 +16,36 @@ require_new_magisk() {
exit
1
exit
1
}
}
#########################
# Load util_functions.sh
#########################
OUTFD
=
$2
ZIPFILE
=
$3
mount /data 2>/dev/null
[
-f
/data/adb/magisk/util_functions.sh
]
||
require_new_magisk
.
/data/adb/magisk/util_functions.sh
[
$MAGISK_VER_CODE
-lt
19000
]
&&
require_new_magisk
if
[
$MAGISK_VER_CODE
-ge
20400
]
;
then
# New Magisk have complete installation logic within util_functions.sh
install_module
exit
0
fi
#################
# Legacy Support
#################
# Global vars
TMPDIR
=
/dev/tmp
PERSISTDIR
=
/sbin/.magisk/mirror/persist
rm
-rf
$TMPDIR
2>/dev/null
mkdir
-p
$TMPDIR
is_legacy_script
()
{
is_legacy_script
()
{
unzip
-l
"
$ZIPFILE
"
install.sh |
grep
-q
install.sh
unzip
-l
"
$ZIPFILE
"
install.sh |
grep
-q
install.sh
return
$?
return
$?
...
@@ -41,20 +64,6 @@ print_modname() {
...
@@ -41,20 +64,6 @@ print_modname() {
ui_print
"*******************"
ui_print
"*******************"
}
}
##############
# Environment
##############
OUTFD
=
$2
ZIPFILE
=
$3
mount /data 2>/dev/null
# Load utility functions
[
-f
/data/adb/magisk/util_functions.sh
]
||
require_new_magisk
.
/data/adb/magisk/util_functions.sh
[
$MAGISK_VER_CODE
-gt
18100
]
||
require_new_magisk
# Preperation for flashable zips
# Preperation for flashable zips
setup_flashable
setup_flashable
...
...
scripts/util_functions.sh
View file @
7da35e54
...
@@ -589,6 +589,106 @@ request_zip_size_check() {
...
@@ -589,6 +589,106 @@ request_zip_size_check() {
boot_actions
()
{
return
;
}
boot_actions
()
{
return
;
}
# Require ZIPFILE to be set
is_legacy_script
()
{
unzip
-l
"
$ZIPFILE
"
install.sh |
grep
-q
install.sh
return
$?
}
# Require OUTFD, ZIPFILE to be set
install_module
()
{
local
PERSISTDIR
=
/sbin/.magisk/mirror/persist
setup_flashable
mount_partitions
api_level_arch_detect
# Setup busybox and binaries
$BOOTMODE
&&
boot_actions
||
recovery_actions
# Extract prop file
unzip
-o
"
$ZIPFILE
"
module.prop
-d
$TMPDIR
>
&2
[
!
-f
$TMPDIR
/module.prop
]
&&
abort
"! Unable to extract zip file!"
$BOOTMODE
&&
MODDIRNAME
=
modules_update
||
MODDIRNAME
=
modules
MODULEROOT
=
$NVBASE
/
$MODDIRNAME
MODID
=
`
grep_prop
id
$TMPDIR
/module.prop
`
MODPATH
=
$MODULEROOT
/
$MODID
MODNAME
=
`
grep_prop name
$TMPDIR
/module.prop
`
# Create mod paths
rm
-rf
$MODPATH
2>/dev/null
mkdir
-p
$MODPATH
if
is_legacy_script
;
then
unzip
-oj
"
$ZIPFILE
"
module.prop install.sh uninstall.sh
'common/*'
-d
$TMPDIR
>
&2
# Load install script
.
$TMPDIR
/install.sh
# Callbacks
print_modname
on_install
[
-f
$TMPDIR
/uninstall.sh
]
&&
cp
-af
$TMPDIR
/uninstall.sh
$MODPATH
/uninstall.sh
$SKIPMOUNT
&&
touch
$MODPATH
/skip_mount
$PROPFILE
&&
cp
-af
$TMPDIR
/system.prop
$MODPATH
/system.prop
cp
-af
$TMPDIR
/module.prop
$MODPATH
/module.prop
$POSTFSDATA
&&
cp
-af
$TMPDIR
/post-fs-data.sh
$MODPATH
/post-fs-data.sh
$LATESTARTSERVICE
&&
cp
-af
$TMPDIR
/service.sh
$MODPATH
/service.sh
ui_print
"- Setting permissions"
set_permissions
else
print_title
"
$MODNAME
"
print_title
"Powered by Magisk"
unzip
-o
"
$ZIPFILE
"
customize.sh
-d
$MODPATH
>
&2
if
!
grep
-q
'^SKIPUNZIP=1$'
$MODPATH
/customize.sh 2>/dev/null
;
then
ui_print
"- Extracting module files"
unzip
-o
"
$ZIPFILE
"
-x
'META-INF/*'
-d
$MODPATH
>
&2
# Default permissions
set_perm_recursive
$MODPATH
0 0 0755 0644
fi
# Load customization script
[
-f
$MODPATH
/customize.sh
]
&&
.
$MODPATH
/customize.sh
fi
# Handle replace folders
for
TARGET
in
$REPLACE
;
do
ui_print
"- Replace target:
$TARGET
"
mktouch
$MODPATH$TARGET
/.replace
done
if
$BOOTMODE
;
then
# Update info for Magisk Manager
mktouch
$NVBASE
/modules/
$MODID
/update
cp
-af
$MODPATH
/module.prop
$NVBASE
/modules/
$MODID
/module.prop
fi
# Copy over custom sepolicy rules
if
[
-f
$MODPATH
/sepolicy.rule
-a
-e
$PERSISTDIR
]
;
then
ui_print
"- Installing custom sepolicy patch"
PERSISTMOD
=
$PERSISTDIR
/magisk/
$MODID
mkdir
-p
$PERSISTMOD
cp
-af
$MODPATH
/sepolicy.rule
$PERSISTMOD
/sepolicy.rule
fi
# Remove stuffs that don't belong to modules
rm
-rf
\
$MODPATH
/system/placeholder
$MODPATH
/customize.sh
\
$MODPATH
/README.md
$MODPATH
/.git
*
2>/dev/null
cd
/
$BOOTMODE
||
recovery_cleanup
rm
-rf
$TMPDIR
ui_print
"- Done"
}
##########
##########
# Presets
# Presets
##########
##########
...
...
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