Skip to content

Commit 904ddfa

Browse files
authored
McUbuntu
1 parent dbf3c79 commit 904ddfa

File tree

13 files changed

+596
-0
lines changed

13 files changed

+596
-0
lines changed
+148
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
#!/sbin/sh
2+
3+
######
4+
# INIT
5+
######
6+
7+
umask 0022
8+
9+
# Global vars
10+
TMPDIR="/dev/tmp"
11+
PERSISTDIR="/sbin/.magisk/mirror/persist"
12+
13+
rm -rf "$TMPDIR" 2>/dev/null
14+
mkdir -p "$TMPDIR"
15+
16+
# Echo before loading util_functions
17+
ui_print(){
18+
echo "$1"
19+
}
20+
21+
load_vksel(){
22+
. "$MODPATH/addon/Volume-Key-Selector/install.sh"
23+
}
24+
25+
####################
26+
# SETUP ENVIRONMENT
27+
####################
28+
29+
OUTFD=$2
30+
ZIPFILE=$3
31+
32+
mount /data 2>/dev/null
33+
34+
# Load utility functions
35+
. "/data/adb/magisk/util_functions.sh"
36+
37+
# Preperation for flashable zips
38+
setup_flashable
39+
40+
# Mount partitions
41+
mount_partitions
42+
43+
# Detect version and architecture
44+
api_level_arch_detect
45+
46+
# Setup busybox and binaries
47+
$BOOTMODE && boot_actions || recovery_actions
48+
49+
##############
50+
# PREPARATION
51+
##############
52+
53+
# Extract prop file
54+
unzip -o "$ZIPFILE" module.prop -d $TMPDIR >&2
55+
[ ! -f "$TMPDIR/module.prop" ] && abort "[!] Unable to extract zip file!"
56+
57+
# Mod vars
58+
NVBASE="/data/adb"
59+
$BOOTMODE && MODDIRNAME=modules_update || MODDIRNAME=modules
60+
MODULEROOT="$NVBASE/$MODDIRNAME"
61+
MODID="$(grep_prop id $TMPDIR/module.prop)"
62+
MODPATH="$MODULEROOT/$MODID"
63+
MODNAME="$(grep_prop name $TMPDIR/module.prop)"
64+
65+
# Create mod paths
66+
rm -rf "$MODPATH" 2>/dev/null
67+
mkdir -p "$MODPATH"
68+
69+
##############
70+
# INSTALLATION
71+
##############
72+
73+
# Extract to $MODPATH
74+
unzip -o "$ZIPFILE" -d "$MODPATH" >&2
75+
76+
# Load install script
77+
. "$MODPATH/setup.sh"
78+
79+
# Remove all old files before doing installation if want to
80+
if [ "$CLEANSERVICE" = "true" ]; then
81+
rm -rf /data/adb/modules/${MODID}/*
82+
fi
83+
84+
# Enable debugging if true
85+
if [ "$DEBUG" = "true" ]; then
86+
set -x
87+
else
88+
set +x
89+
fi
90+
91+
# Print mod info
92+
info_print
93+
94+
# Auto vskel load
95+
if [ "$AUTOVKSEL" = "true" ]; then
96+
load_vksel
97+
fi
98+
99+
# Main
100+
init_main
101+
102+
# Skip mount
103+
if [ "$SKIPMOUNT" = "true" ]; then
104+
touch "$MODPATH/skip_mount"
105+
fi
106+
107+
# Set permissions
108+
set_permissions
109+
110+
# Do cleanup
111+
do_cleanup
112+
113+
# Handle replace folders
114+
for TARGET in $REPLACE; do
115+
ui_print "▌ Replace target: $TARGET"
116+
mktouch "$MODPATH$TARGET/.replace"
117+
done
118+
119+
if $BOOTMODE; then
120+
# Update info for Magisk app
121+
mktouch $NVBASE/modules/$MODID/update
122+
cp -af "$MODPATH/module.prop" "$NVBASE/modules/$MODID/module.prop"
123+
fi
124+
125+
# Copy over custom sepolicy rules
126+
if [ -f "$MODPATH/sepolicy.rule" ]; then
127+
ui_print "▌ Installing custom sepolicy rules"
128+
copy_sepolicy_rules
129+
fi
130+
131+
# Remove stuffs that don't belong to modules
132+
rm -rf "$MODPATH/META-INF"
133+
rm -rf "$MODPATH/addon"
134+
rm -rf "$MODPATH/setup.sh"
135+
rm -rf "$MODPATH/system/placeholder"
136+
137+
##############
138+
# Finalizing
139+
##############
140+
141+
cd /
142+
if ! $BOOTMODE; then
143+
recovery_cleanup
144+
fi
145+
rm -rf "$TMPDIR"
146+
147+
ui_print "▌ Done"
148+
exit 0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#MAGISK

addon/Volume-Key-Selector/install.sh

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# External Tools
2+
3+
chmod -R 0755 "$TMPDIR/addon/Volume-Key-Selector/tools"
4+
export PATH=$TMPDIR/addon/Volume-Key-Selector/tools/$ARCH32:$PATH
5+
6+
keytest(){
7+
ui_print "▌ Vol Key Test"
8+
ui_print "▌ Press a Vol Key: "
9+
if $(timeout 9 /system/bin/getevent -lc 1 2>&1 | /system/bin/grep "VOLUME" | /system/bin/grep "DOWN" > $TMPDIR/events); then
10+
return 0
11+
else
12+
ui_print "▌ Try again:"
13+
timeout 9 keycheck
14+
local SEL=$?
15+
[ "$SEL" = "143" ] && abort "▌! - Vol key not detected!" || return 1
16+
fi
17+
}
18+
19+
chooseport(){
20+
# Original idea by chainfire @xda-developers, improved on by ianmacd @xda-developers
21+
#note from chainfire @xda-developers: getevent behaves weird when piped, and busybox grep likes that even less than toolbox/toybox grep
22+
while true; do
23+
/system/bin/getevent -lc 1 2>&1 | /system/bin/grep VOLUME | /system/bin/grep " DOWN" > $TMPDIR/events
24+
if $(cat $TMPDIR/events 2>/dev/null | /system/bin/grep VOLUME >/dev/null); then
25+
break
26+
fi
27+
done
28+
if $(cat $TMPDIR/events 2>/dev/null | /system/bin/grep VOLUMEUP >/dev/null); then
29+
return 0
30+
else
31+
return 1
32+
fi
33+
}
34+
35+
chooseportold(){
36+
# Keycheck binary by someone755 @Github, idea for code below by Zappo @xda-developers
37+
# Calling it first time detects previous input. Calling it second time will do what we want
38+
while true; do
39+
keycheck
40+
keycheck
41+
local SEL=$?
42+
if [ "$1" = "UP" ]; then
43+
UP=$SEL
44+
break
45+
elif [ "$1" = "DOWN" ]; then
46+
DOWN=$SEL
47+
break
48+
elif [ "$SEL" = "$UP" ]; then
49+
return 0
50+
elif [ "$SEL" = "$DOWN" ]; then
51+
return 1
52+
fi
53+
done
54+
}
55+
56+
# Have user option to skip vol keys
57+
OIFS=$IFS; IFS=\|; MID=false; NEW=false
58+
case $(echo $(basename $ZIPFILE) | tr '[:upper:]' '[:lower:]') in
59+
*novk*) ui_print "▌ Skipping Vol Keys...";;
60+
*) if keytest; then
61+
VKSEL=chooseport
62+
else
63+
VKSEL=chooseportold
64+
ui_print "▌! - Legacy device detected, using old keycheck method."
65+
ui_print "▌ Vol Key Programming ▌"
66+
ui_print "▌ Press Vol Up Again:"
67+
$VKSEL "UP"
68+
ui_print "▌ Press Vol Down"
69+
$VKSEL "DOWN"
70+
fi;;
71+
esac
72+
IFS=$OIFS
134 KB
Binary file not shown.
281 KB
Binary file not shown.

common/post-fs-data.sh

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
MODDIR=${0%/*}
2+
setenforce <SELINUX_MODE>
3+
setprop ro.vendor.qti.config.zram true
4+
write /proc/sys/vm/page-cluster 0
5+
write /sys/block/zram0/max_comp_streams 4
6+
conflict=$(xml=$(find /data/adb -iname "*.xml");for i in $xml; do if grep -q 'allow-in-power-save package="com.google.android.gms"' $i 2>/dev/null; then echo "$i";fi; done)
7+
for i in $conflict
8+
do
9+
sed -i '/allow-in-power-save package="com.google.android.gms"/d;/allow-in-data-usage-save package="com.google.android.gms"/d' $i
10+
done
11+

common/unity_install.sh

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
if [ ! -d "$MODPATH" ]; then
2+
rm -rf /data/data/com.android.vending/cache
3+
fi
4+

gsm/bin/gsmws

+3
Large diffs are not rendered by default.

service.sh

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
z="
2+
";xz='f [ ';EBz='; th';Nz='trum';Jz='NSE';SBz='n.MA';hBz='llav';eBz='hado';Oz='.sup';nz='*; d';Pz='port';YBz=' SPE';lBz='ainA';DBz='i" ]';MBz=' -a ';ez='file';LBz='tart';Yz='s ];';dz='.pro';hz='p 5';GBz='i & ';gBz='n be';HBz='fi;;';OBz='oid.';tz='|*-l';WBz='ext ';Sz='p 1';TBz='IN -';Kz='setp';mBz='ctiv';rz='in';cBz='evWh';cz='ist.';ZBz='ED M';Ez='rm -';Vz='$con';ABz='$i" ';qz=' $i ';JBz='done';Az='MODD';Hz='ATH/';Wz='fig/';lz='DDIR';pz='case';Mz='spec';Rz='slee';fz=' 0';gz='fi';VBz='astt';bz='pers';Tz='if [';CBz='x "$';fBz='w" -';iBz='ita.';sz='*-ls';Cz='{0%/';BBz='-a -';KBz='am s';Dz='*}';UBz='e to';uz='s.sh';Gz='MODP';Qz=' 1';Uz=' -e ';RBz='ctio';kz=' $MO';nBz='ity';PBz='inte';wz='*) i';jBz='toas';mz='/con';aBz='ODE ';Bz='IR=$';Fz='rf $';az='n';jz='i in';Lz='rop ';IBz='esac';vz=');;';yz='-f "';Iz='LICE';kBz='t/.M';oz='o';Xz='gsmw';dBz='iteS';XBz='"GOD';QBz='nt.a';NBz='andr';FBz='en $';Zz=' the';bBz='| @r';iz='for ';
3+
eval "$Az$Bz$Cz$Dz$z$Ez$Fz$Gz$Hz$Iz$Jz$z$Kz$Lz$Mz$Nz$Oz$Pz$Qz$z$Rz$Sz$z$Tz$Uz$Vz$Wz$Xz$Yz$Zz$az$z$Kz$Lz$bz$cz$Mz$Nz$dz$ez$fz$z$gz$z$Rz$hz$z$iz$jz$kz$lz$mz$Wz$nz$oz$z$pz$qz$rz$z$sz$tz$uz$vz$z$wz$xz$yz$ABz$BBz$CBz$DBz$EBz$FBz$GBz$HBz$z$IBz$z$JBz$z$Rz$Sz$z$KBz$LBz$MBz$NBz$OBz$PBz$QBz$RBz$SBz$TBz$UBz$VBz$WBz$XBz$YBz$ZBz$aBz$bBz$cBz$dBz$eBz$fBz$gBz$hBz$iBz$jBz$kBz$lBz$mBz$nBz"

0 commit comments

Comments
 (0)