-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
156 additions
and
197 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,154 +1,173 @@ | ||
#!/sbin/sh | ||
########################################################################################## | ||
# | ||
# Magisk Module Template Install Script | ||
# by topjohnwu | ||
# | ||
########################################################################################## | ||
|
||
# Detect whether in boot mode | ||
ps | grep zygote | grep -v grep >/dev/null && BOOTMODE=true || BOOTMODE=false | ||
$BOOTMODE || ps -A 2>/dev/null | grep zygote | grep -v grep >/dev/null && BOOTMODE=true | ||
|
||
# This path should work in any cases | ||
TMPDIR=/dev/tmp | ||
INSTALLER=$TMPDIR/install | ||
MAGISKBIN=/data/adb/magisk | ||
|
||
# Default permissions | ||
################# | ||
# Initialization | ||
################# | ||
|
||
umask 022 | ||
|
||
# Initial cleanup | ||
# Global vars | ||
TMPDIR=/dev/tmp | ||
PERSISTDIR=/sbin/.magisk/mirror/persist | ||
|
||
rm -rf $TMPDIR 2>/dev/null | ||
mkdir -p $INSTALLER | ||
mkdir -p $TMPDIR | ||
|
||
# echo before loading util_functions | ||
ui_print() { echo "$1"; } | ||
|
||
require_new_magisk() { | ||
ui_print "*******************************" | ||
ui_print " Please install Magisk v15.0+! " | ||
ui_print " Please install Magisk v19.0+! " | ||
ui_print "*******************************" | ||
exit 1 | ||
} | ||
|
||
########################################################################################## | ||
is_legacy_script() { | ||
unzip -l "$ZIPFILE" install.sh | grep -q install.sh | ||
return $? | ||
} | ||
|
||
print_modname() { | ||
local len | ||
len=`echo -n $MODNAME | wc -c` | ||
len=$((len + 2)) | ||
local pounds=`printf "%${len}s" | tr ' ' '*'` | ||
ui_print "$pounds" | ||
ui_print " $MODNAME " | ||
ui_print "$pounds" | ||
ui_print "*******************" | ||
ui_print " Powered by Magisk " | ||
ui_print "*******************" | ||
} | ||
|
||
############## | ||
# Environment | ||
########################################################################################## | ||
############## | ||
|
||
OUTFD=$2 | ||
ZIP=$3 | ||
ZIPFILE=$3 | ||
|
||
mount /data 2>/dev/null | ||
|
||
# Utility functions must exist | ||
[ -f $MAGISKBIN/util_functions.sh ] || require_new_magisk | ||
# Load utility fuctions | ||
. $MAGISKBIN/util_functions.sh | ||
|
||
# We can't alter magisk image live, use alternative image if required | ||
$BOOTMODE && IMG=/data/adb/magisk_merge.img | ||
# Always mount under tmp | ||
MOUNTPATH=$TMPDIR/magisk_img | ||
# 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 | ||
get_outfd | ||
setup_flashable | ||
|
||
# Mount partitions | ||
mount_partitions | ||
|
||
# Detect version and architecture | ||
api_level_arch_detect | ||
|
||
# You can get the Android API version from $API, the CPU architecture from $ARCH | ||
# Useful if you are creating Android version / platform dependent mods | ||
|
||
# Setup busybox and binaries | ||
$BOOTMODE && boot_actions || recovery_actions | ||
|
||
########################################################################################## | ||
############## | ||
# Preparation | ||
########################################################################################## | ||
############## | ||
|
||
# Extract common files | ||
unzip -o "$ZIP" module.prop config.sh 'common/*' -d $INSTALLER >&2 | ||
# Extract prop file | ||
unzip -o "$ZIPFILE" module.prop -d $TMPDIR >&2 | ||
[ ! -f $TMPDIR/module.prop ] && abort "! Unable to extract zip file!" | ||
|
||
[ ! -f $INSTALLER/config.sh ] && abort "! Unable to extract zip file!" | ||
# Load configurations | ||
. $INSTALLER/config.sh | ||
$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` | ||
|
||
# Check the installed magisk version | ||
MIN_VER=`grep_prop minMagisk $INSTALLER/module.prop` | ||
[ ! -z $MAGISK_VER_CODE -a $MAGISK_VER_CODE -ge $MIN_VER ] || require_new_magisk | ||
MODID=`grep_prop id $INSTALLER/module.prop` | ||
MODPATH=$MOUNTPATH/$MODID | ||
# Create mod paths | ||
rm -rf $MODPATH 2>/dev/null | ||
mkdir -p $MODPATH | ||
|
||
# Print mod name | ||
print_modname | ||
########## | ||
# Install | ||
########## | ||
|
||
# Please leave this message in your flashable zip for credits :) | ||
ui_print "******************************" | ||
ui_print "Powered by Magisk (@topjohnwu)" | ||
ui_print "******************************" | ||
if is_legacy_script; then | ||
unzip -oj "$ZIPFILE" module.prop install.sh uninstall.sh 'common/*' -d $TMPDIR >&2 | ||
|
||
########################################################################################## | ||
# Install | ||
########################################################################################## | ||
# Load install script | ||
. $TMPDIR/install.sh | ||
|
||
# Get the variable reqSizeM. Use your own method to determine reqSizeM if needed | ||
request_zip_size_check "$ZIP" | ||
# Callbacks | ||
print_modname | ||
on_install | ||
|
||
# This function will mount $IMG to $MOUNTPATH, and resize the image based on $reqSizeM | ||
mount_magisk_img | ||
# Custom uninstaller | ||
[ -f $TMPDIR/uninstall.sh ] && cp -af $TMPDIR/uninstall.sh $MODPATH/uninstall.sh | ||
|
||
# Create mod paths | ||
rm -rf $MODPATH 2>/dev/null | ||
mkdir -p $MODPATH | ||
# Skip mount | ||
$SKIPMOUNT && touch $MODPATH/skip_mount | ||
|
||
# prop file | ||
$PROPFILE && cp -af $TMPDIR/system.prop $MODPATH/system.prop | ||
|
||
# Module info | ||
cp -af $TMPDIR/module.prop $MODPATH/module.prop | ||
|
||
# post-fs-data scripts | ||
$POSTFSDATA && cp -af $TMPDIR/post-fs-data.sh $MODPATH/post-fs-data.sh | ||
|
||
# service scripts | ||
$LATESTARTSERVICE && cp -af $TMPDIR/service.sh $MODPATH/service.sh | ||
|
||
ui_print "- Setting permissions" | ||
set_permissions | ||
else | ||
print_modname | ||
|
||
unzip -o "$ZIPFILE" customize.sh -d $MODPATH >&2 | ||
|
||
# Extract files to system. Use your own method if needed | ||
ui_print "- Extracting module files" | ||
unzip -o "$ZIP" 'system/*' -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 | ||
|
||
# Remove placeholder | ||
rm -f $MODPATH/system/placeholder 2>/dev/null | ||
# 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 | ||
|
||
# Auto Mount | ||
$AUTOMOUNT && touch $MODPATH/auto_mount | ||
|
||
# prop files | ||
$PROPFILE && cp -af $INSTALLER/common/system.prop $MODPATH/system.prop | ||
|
||
# Module info | ||
cp -af $INSTALLER/module.prop $MODPATH/module.prop | ||
if $BOOTMODE; then | ||
# Update info for Magisk Manager | ||
mktouch /sbin/.core/img/$MODID/update | ||
cp -af $INSTALLER/module.prop /sbin/.core/img/$MODID/module.prop | ||
mktouch $NVBASE/modules/$MODID/update | ||
cp -af $MODPATH/module.prop $NVBASE/modules/$MODID/module.prop | ||
fi | ||
|
||
# post-fs-data mode scripts | ||
$POSTFSDATA && cp -af $INSTALLER/common/post-fs-data.sh $MODPATH/post-fs-data.sh | ||
|
||
# service mode scripts | ||
$LATESTARTSERVICE && cp -af $INSTALLER/common/service.sh $MODPATH/service.sh | ||
# 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 | ||
|
||
ui_print "- Setting permissions" | ||
set_permissions | ||
# Remove stuffs that don't belong to modules | ||
rm -rf \ | ||
$MODPATH/system/placeholder $MODPATH/customize.sh \ | ||
$MODPATH/README.md $MODPATH/.git* 2>/dev/null | ||
|
||
########################################################################################## | ||
############## | ||
# Finalizing | ||
########################################################################################## | ||
|
||
# Unmount magisk image and shrink if possible | ||
unmount_magisk_img | ||
############## | ||
|
||
cd / | ||
$BOOTMODE || recovery_cleanup | ||
rm -rf $TMPDIR | ||
|
||
ui_print "- Done" | ||
exit 0 | ||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
Unified icon disabler for MIUI (xiaomi.eu) | ||
========================================== | ||
This module disables all of the unified icons present in xiaomi.eu and other MIUI custom ROMs systemlessly. | ||
|
||
Requirements | ||
------------ | ||
* Magisk v19+ | ||
* MIUI based Custom ROM using it's own icon pack | ||
|
||
Credits | ||
------- | ||
* @topjohnwu for Magisk | ||
* Xiaomi.eu forum for the idea :D | ||
|
||
Links | ||
----- | ||
* [Telegram](https://www.t.me/Sap1k) | ||
|
||
Notes | ||
----- | ||
* You will need to reapply your current theme after flashing this module for the changes to apply. | ||
* Tested on Android 10, however should be fully compatible all the way to Android 5 | ||
|
||
Changelog | ||
--------- | ||
### v1.x | ||
- Initial release, obsolete, made using old templates | ||
|
||
### v2.0 | ||
- Initial **public** release | ||
- Compliant with Magisk documentation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.