-
Notifications
You must be signed in to change notification settings - Fork 2
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
5 changed files
with
252 additions
and
0 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 |
---|---|---|
@@ -0,0 +1,196 @@ | ||
#!/sbin/sh | ||
|
||
################# | ||
# Initialization | ||
################# | ||
|
||
umask 022 | ||
|
||
# echo before loading util_functions | ||
ui_print() { echo "$1"; } | ||
|
||
require_new_magisk() { | ||
ui_print "*******************************" | ||
ui_print " Please install Magisk v20.0+! " | ||
ui_print "*******************************" | ||
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 20000 ] && 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 | ||
################# | ||
|
||
TMPDIR=/dev/tmp | ||
PERSISTDIR=/sbin/.magisk/mirror/persist | ||
|
||
is_legacy_script() { | ||
unzip -l "$ZIPFILE" install.sh | grep -q install.sh | ||
return $? | ||
} | ||
|
||
print_modname() { | ||
local authlen len namelen pounds | ||
namelen=`echo -n $MODNAME | wc -c` | ||
authlen=$((`echo -n $MODAUTH | wc -c` + 3)) | ||
[ $namelen -gt $authlen ] && len=$namelen || len=$authlen | ||
len=$((len + 2)) | ||
pounds=$(printf "%${len}s" | tr ' ' '*') | ||
ui_print "$pounds" | ||
ui_print " $MODNAME " | ||
ui_print " by $MODAUTH " | ||
ui_print "$pounds" | ||
ui_print "*******************" | ||
ui_print " Powered by Magisk " | ||
ui_print "*******************" | ||
} | ||
|
||
# Override abort as old scripts have some issues | ||
abort() { | ||
ui_print "$1" | ||
$BOOTMODE || recovery_cleanup | ||
[ -n $MODPATH ] && rm -rf $MODPATH | ||
rm -rf $TMPDIR | ||
exit 1 | ||
} | ||
|
||
rm -rf $TMPDIR 2>/dev/null | ||
mkdir -p $TMPDIR | ||
|
||
# Preperation for flashable zips | ||
setup_flashable | ||
|
||
# Mount partitions | ||
mount_partitions | ||
|
||
# Detect version and architecture | ||
api_level_arch_detect | ||
|
||
# Setup busybox and binaries | ||
$BOOTMODE && boot_actions || recovery_actions | ||
|
||
############## | ||
# Preparation | ||
############## | ||
|
||
# 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` | ||
MODNAME=`grep_prop name $TMPDIR/module.prop` | ||
MODAUTH=`grep_prop author $TMPDIR/module.prop` | ||
MODPATH=$MODULEROOT/$MODID | ||
|
||
# Create mod paths | ||
rm -rf $MODPATH 2>/dev/null | ||
mkdir -p $MODPATH | ||
|
||
########## | ||
# Install | ||
########## | ||
|
||
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 | ||
|
||
# Custom uninstaller | ||
[ -f $TMPDIR/uninstall.sh ] && cp -af $TMPDIR/uninstall.sh $MODPATH/uninstall.sh | ||
|
||
# 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 | ||
|
||
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" | ||
# Remove old recovery logs (which may be filling partition) to make room | ||
rm -f $PERSISTDIR/cache/recovery/* | ||
PERSISTMOD=$PERSISTDIR/magisk/$MODID | ||
mkdir -p $PERSISTMOD | ||
cp -af $MODPATH/sepolicy.rule $PERSISTMOD/sepolicy.rule || abort "! Insufficient partition size" | ||
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 | ||
|
||
############# | ||
# Finalizing | ||
############# | ||
|
||
cd / | ||
$BOOTMODE || recovery_cleanup | ||
rm -rf $TMPDIR | ||
|
||
ui_print "- Done" | ||
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 @@ | ||
#MAGISK |
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 @@ | ||
# English | ||
This is a Magisk module to delete the leak of IMEI, MEID, UUID and FP.UID in some devices' props. | ||
|
||
## How to use | ||
Just install it in Magisk Manager | ||
## Is there a leak in my device | ||
Use terminal application (such as Termux) run `getprop | grep imei` | ||
## How it works | ||
Use `resetprop` powered by Magisk | ||
## Delete at an earlier time | ||
change `"$(getprop sys.boot_completed)" != "1"` to others, such as `"$(getprop gsm.sim.operator.iso-country)" != "cn"` | ||
## Credits | ||
[Magisk](https://github.com/topjohnwu/Magisk) | ||
[Source code](https://t.me/CodeOfMeowCat/255710) | ||
|
||
|
||
# 中文 | ||
这是一个 Magisk 模块,用来删除部分设备的 prop 泄漏的 IMEI、MEID、UUID 和 FP.UID。 | ||
|
||
## 如何使用 | ||
在 Magisk Manager 中安装即可。 | ||
## 我的设备是否有泄漏 | ||
使用终端软件(例如 Termux)运行 `getprop | grep imei` | ||
## 它是如何工作的? | ||
借助 Magisk 提供的工具 `resetprop` | ||
## 在更早的时间删除 | ||
把 `"$(getprop sys.boot_completed)" != "1"` 替换成别的。比如 `"$(getprop gsm.sim.operator.iso-country)" != "cn"` | ||
## 感谢 | ||
[Magisk](https://github.com/topjohnwu/Magisk) | ||
[源码](https://t.me/CodeOfMeowCat/255710) | ||
|
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,6 @@ | ||
id=deleteprops | ||
name=DeleteProps | ||
version=v1 | ||
versionCode=1 | ||
author=RiwiHow | ||
description=This is a Magisk module to delete the leak of IMEI, MEID, UUID and FP.UID in some devices' props. |
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,18 @@ | ||
#!/system/bin/sh | ||
|
||
MODDIR=${0%/*} | ||
|
||
while [ "$(getprop sys.boot_completed)" != "1" ]; do | ||
PROP_IMEI=$(getprop|grep imei) | ||
PROP_MEID=$(getprop|grep meid) | ||
PROP_UUID=$(getprop|grep uuid) | ||
PROP_FPUID=$(getprop|grep fp.uid) | ||
PROPS=${PROP_IMEI}" "${PROP_MEID}" "${PROP_UUID}" "${PROP_FPUID} | ||
done | ||
|
||
for TARGET in ${PROPS}; do | ||
TARGET=$(echo ${TARGET}|grep :) | ||
TARGET=${TARGET#*[} | ||
TARGET=${TARGET%]*} | ||
resetprop --delete ${TARGET} | ||
done |