6
6
# devs: triple hashtags (###) mark custom code
7
7
8
8
9
+ set +x
10
+
9
11
# override the official Magisk module installer
10
12
SKIPUNZIP=1
11
13
12
- set +x
13
14
echo
14
15
id=acc
15
16
umask 077
@@ -29,33 +30,34 @@ if [ -d /sbin/.magisk/busybox ]; then
29
30
* ) PATH=/sbin/.magisk/busybox:$PATH ;;
30
31
esac
31
32
else
32
- mkdir -p -m 700 /dev/.busybox
33
+ mkdir -p /dev/.busybox
34
+ chmod 700 /dev/.busybox
33
35
case $PATH in
34
36
/dev/.busybox:* ) : ;;
35
37
* ) PATH=/dev/busybox:$PATH ;;
36
38
esac
37
- if [ ! -x /dev/.busybox/busybox ]; then
39
+ [ -x /dev/.busybox/busybox ] || {
38
40
if [ -f /data/adb/magisk/busybox ]; then
39
- chmod 700 /data/adb/magisk/busybox
41
+ [ -x /data/adb/magisk/busybox ] || chmod 700 /data/adb/magisk/busybox
40
42
/data/adb/magisk/busybox --install -s /dev/.busybox
41
43
elif which busybox > /dev/null; then
42
44
busybox --install -s /dev/.busybox
43
45
elif [ -f /data/adb/busybox ]; then
44
- chmod 700 /data/adb/busybox
46
+ [ -x /data/adb/busybox ] || chmod 700 /data/adb/busybox
45
47
/data/adb/busybox --install -s /dev/.busybox
46
48
else
47
- echo " (!) Install busybox binary first "
49
+ echo " (!) Install busybox or simply place it in /data/adb/ "
48
50
exit 3
49
51
fi
50
- fi
52
+ }
51
53
fi
52
54
# /BB#
53
55
54
56
# root check
55
- if [ $( id -u) -ne 0 ]; then
57
+ [ $( id -u) -ne 0 ] && {
56
58
echo " (!) $0 must run as root (su)"
57
59
exit 4
58
- fi
60
+ }
59
61
60
62
get_prop () { sed -n " s|^$1 =||p" ${2:- $srcDir / module.prop} ; }
61
63
@@ -79,12 +81,12 @@ set -euo pipefail 2>/dev/null || :
79
81
srcDir=${srcDir/# " ${0##*/ } " / " ." }
80
82
81
83
# unzip flashable zip if source code is unavailable
82
- if [ ! -f $srcDir /module.prop ]; then
84
+ [ -f $srcDir /module.prop ] || {
83
85
srcDir=/dev/.tmp
84
86
rm -rf $srcDir 2> /dev/null || :
85
87
mkdir $srcDir
86
88
unzip ${ZIP:- ${3-} } -d $srcDir / >&2
87
- fi
89
+ }
88
90
89
91
name=$( get_prop name)
90
92
author=$( get_prop author)
@@ -108,7 +110,7 @@ License: GPLv3+
108
110
109
111
110
112
# install
111
- mv -f $config /data/.${id} -config-bkp 2> /dev/null || :
113
+ cp $config /data/.${id} -config-bkp 2> /dev/null || :
112
114
/system/bin/sh $srcDir /$id /uninstall.sh
113
115
mv /data/.${id} -config-bkp $config 2> /dev/null || :
114
116
cp -R $srcDir /$id / $installDir /
@@ -127,7 +129,7 @@ if [ $installDir != /sbin/.magisk/modules/$id ]; then
127
129
# enable upgrading through Magisk Manager
128
130
ln -s $installDir /sbin/.magisk/modules/$id 2> /dev/null || :
129
131
130
- if [ -d /data/adb/service.d ]; then
132
+ [ ! -d /data/adb/service.d ] || {
131
133
132
134
# alternate initialization script
133
135
echo " #!/system/bin/sh
@@ -152,7 +154,7 @@ exit 0 &) &
152
154
exit 0" > /data/adb/service.d/${id} -cleanup.sh
153
155
154
156
chmod 700 /data/adb/service.d/${id} -* .sh
155
- fi
157
+ }
156
158
157
159
else
158
160
# workaround for Magisk "forgetting service.sh" issue
@@ -167,21 +169,16 @@ touch /sbin/.magisk/modules/$id/skip_mount 2>/dev/null || :
167
169
[ -f $config ] || cp /data/media/0/.${id} -config-backup.txt $config 2> /dev/null || :
168
170
169
171
# patch/reset config ###
170
- if [ -f $config ]; then
172
+ [ ! -f $config ] || {
171
173
! grep -q ' =20200260$' $config \
172
174
|| sed -i ' s/=20200260$/=202002260/' $config # bugfix
173
175
configVer=$( get_prop configVerCode $config 2> /dev/null || :)
174
176
dConfVer=$( get_prop configVerCode $installDir /default-config.txt)
175
177
if [ ${configVer:- 0} -gt $dConfVer ] || [ ${configVer:- 0} -lt 202002220 ]; then
176
178
rm $config /sdcard/${id} -logs-* .tar.bz2 2> /dev/null || :
177
- # else
178
- # if [ $configVer -lt 201906290 ]; then
179
- # echo prioritizeBattIdleMode=false >> $config
180
- # sed -i '/^configVerCode=/s/=.*/=201906290/' $config
181
- # fi
182
179
fi
183
180
unset dConfVer
184
- fi
181
+ }
185
182
186
183
# flashable uninstaller
187
184
cp -f $srcDir /bin/${id} -uninstaller.zip /data/media/0/
@@ -206,32 +203,18 @@ set +euo pipefail 2>/dev/null || :
206
203
207
204
echo " - Done
208
205
209
- LATEST CHANGES
210
206
211
207
"
212
208
213
209
214
- # print changelog
215
- sed -n " \|\($versionCode \)|,\$ s|^| |p" ${config%/* } /info/README.md
210
+ # print links and changelog
211
+ sed -En " \|## LINKS|,\$ p" ${config%/* } /info/README.md \
212
+ | grep -v ' ^---' | sed ' s/^## //'
216
213
217
214
218
215
# ##
219
216
echo "
220
- LINKS
221
- - ACC app: GitHub.com/MatteCarra/AccA/
222
- - Battery University: batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries/
223
- - Daily Job Scheduler: GitHub.com/VR-25/djs/
224
- - Facebook page: fb.me/vr25xda/
225
- - Git repository: GitHub.com/VR-25/$id /
226
- - Liberapay: liberapay.com/VR25/
227
- - Patreon: patreon.com/vr25/
228
- - PayPal: paypal.me/vr25xda/
229
- - Telegram channel: t.me/vr25_xda/
230
- - Telegram group: t.me/${id} _group/
231
- - Telegram profile: t.me/vr25xda/
232
- - XDA thread: forum.xda-developers.com/apps/magisk/module-magic-charging-switch-cs-v2017-9-t3668427/
233
-
234
- (i) Power supply logs (help needed): https://bit.ly/2TRqRz0
217
+
235
218
236
219
(i) Rebooting is unnecessary.
237
220
- $id can be used right now.
@@ -244,14 +227,14 @@ echo
244
227
trap - EXIT
245
228
246
229
# initialize $id
247
- if grep -q /storage/emulated /proc/mounts; then
248
- if [ -f $installDir /service.sh ]; then
249
- $installDir /service.sh --override
250
- else
251
- $installDir /${id} -init.sh --override
252
- fi
230
+ if [ -f $installDir /service.sh ]; then
231
+ $installDir /service.sh --override
232
+ else
233
+ $installDir /${id} -init.sh --override
253
234
fi
254
235
255
236
e=$?
256
237
[ $e -eq 0 ] || { echo ; exit $e ; }
238
+ rm /sbin/.$id /.ghost-charging 2> /dev/null # ##
239
+ /sbin/acca --daemon > /dev/null || /sbin/accd # ## workaround, Magisk 20.4+
257
240
exit 0
0 commit comments