11#! /sbin/sh
22
3- TMPDIR=/dev/tmp
4- MOUNTPATH=/dev/magisk_img
3+ # ################
4+ # Initialization
5+ # ################
56
6- # Default permissions
77umask 022
88
9- # Initial cleanup
10- rm -rf $TMPDIR 2> /dev/null
11- mkdir -p $TMPDIR
12-
139# echo before loading util_functions
1410ui_print () { echo " $1 " ; }
1511
1612require_new_magisk () {
17- ui_print " *********************************** "
18- ui_print " Please install the latest Magisk! "
19- ui_print " *********************************** "
13+ ui_print " *******************************"
14+ ui_print " Please install Magisk v20.4+ ! "
15+ ui_print " *******************************"
2016 exit 1
2117}
2218
23- imageless_magisk () {
24- [ $MAGISK_VER_CODE -gt 18100 ]
25- return $?
26- }
27-
28- # #########################################################################################
29- # Environment
30- # #########################################################################################
19+ # ########################
20+ # Load util_functions.sh
21+ # ########################
3122
3223OUTFD=$2
3324ZIPFILE=$3
3425
3526mount /data 2> /dev/null
3627
37- # Load utility functions
38- if [ -f /data/adb/magisk/util_functions.sh ]; then
39- . /data/adb/magisk/util_functions.sh
40- NVBASE=/data/adb
41- else
42- require_new_magisk
43- fi
44-
45- # Preperation for flashable zips
46- setup_flashable
47-
48- # Mount partitions
49- mount_partitions
50-
51- # Detect version and architecture
52- api_level_arch_detect
53-
54- # Setup busybox and binaries
55- $BOOTMODE && boot_actions || recovery_actions
56-
57- # #########################################################################################
58- # Preparation
59- # #########################################################################################
60-
61- # Extract common files
62- unzip -oj " $ZIPFILE " module.prop install.sh uninstall.sh ' common/*' -d $TMPDIR >&2
63-
64- [ ! -f $TMPDIR /install.sh ] && abort " ! Unable to extract zip file!"
65- # Load install script
66- . $TMPDIR /install.sh
67-
68- if imageless_magisk; then
69- $BOOTMODE && MODDIRNAME=modules_update || MODDIRNAME=modules
70- MODULEROOT=$NVBASE /$MODDIRNAME
71- else
72- $BOOTMODE && IMGNAME=magisk_merge.img || IMGNAME=magisk.img
73- IMG=$NVBASE /$IMGNAME
74- request_zip_size_check " $ZIPFILE "
75- mount_magisk_img
76- MODULEROOT=$MOUNTPATH
77- fi
78-
79- MODID=` grep_prop id $TMPDIR /module.prop`
80- MODPATH=$MODULEROOT /$MODID
81-
82- print_modname
83-
84- ui_print " ******************************"
85- ui_print " Powered by Magisk (@topjohnwu)"
86- ui_print " ******************************"
87-
88- # #########################################################################################
89- # Install
90- # #########################################################################################
91-
92- # Create mod paths
93- rm -rf $MODPATH 2> /dev/null
94- mkdir -p $MODPATH
95-
96- # Remove placeholder
97- rm -f $MODPATH /system/placeholder 2> /dev/null
98-
99- # Custom uninstaller
100- [ -f $TMPDIR /uninstall.sh ] && cp -af $TMPDIR /uninstall.sh $MODPATH /uninstall.sh
101-
102- # Auto Mount
103- if imageless_magisk; then
104- $SKIPMOUNT && touch $MODPATH /skip_mount
105- else
106- $SKIPMOUNT || touch $MODPATH /auto_mount
107- fi
108-
109- # prop files
110- $PROPFILE && cp -af $TMPDIR /system.prop $MODPATH /system.prop
111-
112- # Module info
113- cp -af $TMPDIR /module.prop $MODPATH /module.prop
114- if $BOOTMODE ; then
115- # Update info for Magisk Manager
116- if imageless_magisk; then
117- mktouch $NVBASE /modules/$MODID /update
118- cp -af $TMPDIR /module.prop $NVBASE /modules/$MODID /module.prop
119- else
120- mktouch /sbin/.magisk/img/$MODID /update
121- cp -af $TMPDIR /module.prop /sbin/.magisk/img/$MODID /module.prop
122- fi
123- fi
124-
125- # post-fs-data mode scripts
126- $POSTFSDATA && cp -af $TMPDIR /post-fs-data.sh $MODPATH /post-fs-data.sh
127-
128- # service mode scripts
129- $LATESTARTSERVICE && cp -af $TMPDIR /service.sh $MODPATH /service.sh
130-
131- on_install
132-
133- # Handle replace folders
134- for TARGET in $REPLACE ; do
135- mktouch $MODPATH$TARGET /.replace
136- done
137-
138- ui_print " - Setting permissions"
139- set_permissions
140-
141- # #########################################################################################
142- # Finalizing
143- # #########################################################################################
144-
145- cd /
146- imageless_magisk || unmount_magisk_img
147- $BOOTMODE || recovery_cleanup
148- rm -rf $TMPDIR $MOUNTPATH
28+ [ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk
29+ . /data/adb/magisk/util_functions.sh
30+ [ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk
14931
150- ui_print " - Done "
151- exit 0
32+ install_module
33+ exit 0
0 commit comments