├── MMControl.sh ├── MMExtract.sh ├── MMPack.sh ├── Pack.sh ├── README.md ├── Runtime ├── Pack.sh ├── Runtime.sh └── version ├── _config.yml └── version /MMControl.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeRainStarSky/MMPack/39064d14adc37c44f6d68bf8945dee254be3207b/MMControl.sh -------------------------------------------------------------------------------- /MMExtract.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeRainStarSky/MMPack/39064d14adc37c44f6d68bf8945dee254be3207b/MMExtract.sh -------------------------------------------------------------------------------- /MMPack.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeRainStarSky/MMPack/39064d14adc37c44f6d68bf8945dee254be3207b/MMPack.sh -------------------------------------------------------------------------------- /Pack.sh: -------------------------------------------------------------------------------- 1 | R="";G="";Y="";C="";B="";O="";abort(){ echo " 2 | $R! $@$O";exit 1;};echo "$B————————————————————————— 3 | $R Shell$Y Script$G Pack$C Tools$O 4 | ————————————————————————— 5 | ${G}作者:${C}时雨🌌星空$O";[ -d "${1}Pack" ]&&[ -f "${1}Pack.sh" ]&&INPUT="$(realpath "$1")"||abort "输入文件不存在";[ -n "$2" ]&&OUTPUT="$(realpath "$2")"&&DIROUTPUT="$(dirname "$OUTPUT")"&&BASEOUTPUT="$(basename "$OUTPUT")"||abort "输出文件不存在";command -v shc>/dev/null||abort "shc编译器不存在";echo " 6 | $Y- 正在使用shc编译脚本$O 7 | ";shc -vrBf "${1}Pack.sh"&&shc -vrBf "${1}Control.sh"||abort "脚本编译失败";echo " 8 | $Y- 正在打包为自释放脚本$O 9 | ";echo '#脚本已经过编译,需要源代码请联系作者:时雨🌌星空 10 | [ "$(id -u)" = 0 ]||{ echo "'"$Y"'- 正在获取root权限'"$O"'";exec su -c "sh \"$0\" \"$1\" \"$2\" \"$3\" \"$4\"";};runtime(){ RUNTIME="/data/adb/TimeRainStarSky/Runtime";export PATH="/data/adb/magisk:$PATH";[ -d "$RUNTIME" ]&&[ -f "$RUNTIME/verify" ]&&[ "$(ls "$RUNTIME")" = "$(cat "$RUNTIME/verify")" ]||{ echo "'"$Y"'- 正在配置运行环境'"$O"'";abort(){ rm -rf "$RUNTIME";echo "'"$R"'! $@'"$O"'";exit 1;};rm -rf "$RUNTIME";mkdir -p "$RUNTIME";setcmd(){ CMDPATH="$(command -v "$1")"&&cp "$CMDPATH" "$RUNTIME"&&"$RUNTIME/$@"|tr " " "\n"|while read i;do [ -z "$i" ]&&continue;ln -sf "$1" "$RUNTIME/$i";done||abort "找不到$1,请安装运行环境后重试";};setcmd busybox --list;setcmd toybox;ls "$RUNTIME">"$RUNTIME/verify";};export PATH="$DIR:$RUNTIME:$PATH";export LD_LIBRARY_PATH="$DIR:$RUNTIME:$LD_LIBRARY_PATH";};DIR="/data/adb/TimeRainStarSky/MMPack";runtime;FILE="$(realpath "$0")";cd "$(dirname "$FILE")";EXEC="$DIR/'"${BASEOUTPUT}Pack.sh"'.x";abort(){ rm -rf "$EXEC";echo "'"$R"'! $@'"$O"'";exit 1;};output_file(){ echo "'"$Y"'- 正在释放脚本'"$O"'";mkdir -p "$(dirname "$EXEC")";tail -n "+$(awk "/$(echo "5a6a5L2N56ym"|base64 -d)/{print NR+1}" "$FILE"|head -n 1)" "$FILE"|xzcat>"$EXEC"||abort "脚本释放失败";chmod 555 "$EXEC"||abort "脚本权限修改失败";OUTPUTED=1;};check_exec(){ if [ -x "$EXEC" ]&&[ "$(md5sum "$EXEC"|head -c 32)" = "'"$(md5sum "${INPUT}Pack.sh.x"|head -c 32)"'" ];then echo "'"$G"'- 脚本校验成功,开始执行'"$O"'";"$EXEC" "$@"||abort "脚本执行失败";elif [ "$OUTPUTED" != 1 ];then output_file;check_exec "$@";else abort "脚本释放失败";fi;};check_exec "$@";exit;定位符'>"${OUTPUT}Pack.sh"||abort "脚本打包失败";xz -9cev "${INPUT}Pack.sh.x">>"${OUTPUT}Pack.sh"||abort "脚本打包失败";echo '#脚本已经过编译,需要源代码请联系作者:时雨🌌星空 11 | [ "$(id -u)" = 0 ]||{ echo "'"$Y"'- 正在获取root权限'"$O"'";exec su -c "sh \"$0\" \"$@\"";};runtime(){ RUNTIME="/data/adb/TimeRainStarSky/Runtime";export PATH="/data/adb/magisk:$PATH";[ -d "$RUNTIME" ]&&[ -f "$RUNTIME/verify" ]&&[ "$(ls "$RUNTIME")" = "$(cat "$RUNTIME/verify")" ]||{ echo "'"$Y"'- 正在配置运行环境'"$O"'";abort(){ rm -rf "$RUNTIME";echo "'"$R"'! $@'"$O"'";exit 1;};rm -rf "$RUNTIME";mkdir -p "$RUNTIME";setcmd(){ CMDPATH="$(command -v "$1")"&&cp "$CMDPATH" "$RUNTIME"&&"$RUNTIME/$@"|tr " " "\n"|while read i;do [ -z "$i" ]&&continue;ln -sf "$1" "$RUNTIME/$i";done||abort "找不到$1,请安装运行环境后重试";};setcmd busybox --list;setcmd toybox;ls "$RUNTIME">"$RUNTIME/verify";};export PATH="$DIR:$RUNTIME:$PATH";export LD_LIBRARY_PATH="$DIR:$RUNTIME:$LD_LIBRARY_PATH";};DIR="/data/adb/TimeRainStarSky/MMPack";runtime;FILE="$(realpath "$0")";cd "$(dirname "$FILE")";EXEC="$DIR/'"${BASEOUTPUT}Control.sh"'.x";abort(){ rm -rf "$EXEC";echo "'"$R"'! $@'"$O"'";exit 1;};output_file(){ echo "'"$Y"'- 正在释放脚本'"$O"'";mkdir -p "$(dirname "$EXEC")";tail -n "+$(awk "/$(echo "5a6a5L2N56ym"|base64 -d)/{print NR+1}" "$FILE"|head -n 1)" "$FILE"|xzcat>"$EXEC"||abort "脚本释放失败";chmod 555 "$EXEC"||abort "脚本权限修改失败";OUTPUTED=1;};check_exec(){ if [ -x "$EXEC" ]&&[ "$(md5sum "$EXEC"|head -c 32)" = "'"$(md5sum "${INPUT}Control.sh.x"|head -c 32)"'" ];then echo "'"$G"'- 脚本校验成功,开始执行'"$O"'";"$EXEC" "$@"||abort "脚本执行失败";elif [ "$OUTPUTED" != 1 ];then output_file;check_exec "$@";else abort "脚本释放失败";fi;};check_exec "$@";exit;定位符'>"${OUTPUT}Control.sh"||abort "脚本打包失败";xz -9cev "${INPUT}Control.sh.x">>"${OUTPUT}Control.sh"||abort "脚本打包失败" 12 | Standalone(){ echo '#脚本已经过编译,需要源代码请联系作者:时雨🌌星空 13 | [ "$(id -u)" = 0 ]||{ echo "'"$Y"'- 正在获取root权限'"$O"'";exec su -c "sh \"$0\" \"$1\" \"$2\" \"$3\" \"$4\"";};runtime(){ RUNTIME="/data/adb/TimeRainStarSky/Runtime";export PATH="/data/adb/magisk:$PATH";[ -d "$RUNTIME" ]&&[ -f "$RUNTIME/verify" ]&&[ "$(ls "$RUNTIME")" = "$(cat "$RUNTIME/verify")" ]||{ echo "'"$Y"'- 正在配置运行环境'"$O"'";abort(){ rm -rf "$RUNTIME";echo "'"$R"'! $@'"$O"'";exit 1;};rm -rf "$RUNTIME";mkdir -p "$RUNTIME";setcmd(){ CMDPATH="$(command -v "$1")"&&cp "$CMDPATH" "$RUNTIME"&&"$RUNTIME/$@"|tr " " "\n"|while read i;do [ -z "$i" ]&&continue;ln -sf "$1" "$RUNTIME/$i";done||abort "找不到$1,请安装运行环境后重试";};setcmd busybox --list;setcmd toybox;ls "$RUNTIME">"$RUNTIME/verify";};export PATH="$DIR:$RUNTIME:$PATH";export LD_LIBRARY_PATH="$DIR:$RUNTIME:$LD_LIBRARY_PATH";};DIR="/data/adb/TimeRainStarSky/MMPack";runtime;FILE="$(realpath "$0")";cd "$(dirname "$FILE")";EXEC="$DIR/'"${BASEOUTPUT}Pack.sh"'.x";abort(){ rm -rf "$DIR";echo "'"$R"'! $@'"$O"'";exit 1;};mktmp(){ TMP="${DIR}_tmp"&&rm -rf "$TMP"&&mkdir -p "$TMP"||abort "创建缓存文件夹失败";};output_file(){ echo "'"$Y"'- 正在释放脚本'"$O"'";mktmp;tail -n "+$(awk "/$(echo "5a6a5L2N56ym"|base64 -d)/{print NR+1}" "$FILE"|head -n 1)" "$FILE"|xzcat|tar -xvC "$TMP"||abort "脚本释放失败";rm -rf "$DIR";mv -f "$TMP" "$DIR"||abort "脚本移动失败";OUTPUTED=1;};check_exec(){ if [ -x "$EXEC" ]&&[ "$(md5sum "$EXEC"|head -c 32)" = "'"$(md5sum "${INPUT}Pack.sh.x"|head -c 32)"'" ];then echo "'"$G"'- 脚本校验成功,开始执行'"$O"'";"$EXEC" "$@"||abort "脚本执行失败";elif [ "$OUTPUTED" != 1 ];then output_file;check_exec "$@";else abort "脚本释放失败";fi;};check_exec "$@";exit;定位符'>"${OUTPUT}Pack_Standalone.sh"||abort "脚本打包失败";mv -f "${INPUT}Pack.sh.x" "${INPUT}Pack";cd "${INPUT}Pack";tar -cv *|xz -9cev>>"${OUTPUT}Pack_Standalone.sh"||abort "脚本打包失败";} 14 | cd "$DIROUTPUT";echo '#脚本已经过编译,需要源代码请联系作者:时雨🌌星空 15 | [ "$(id -u)" = 0 ]||{ echo "'"$Y"'- 正在获取root权限'"$O"'";exec su -c "sh \"$0\" \"$@\"";};runtime(){ RUNTIME="/data/adb/TimeRainStarSky/Runtime";export PATH="/data/adb/magisk:$PATH";[ -d "$RUNTIME" ]&&[ -f "$RUNTIME/verify" ]&&[ "$(ls "$RUNTIME")" = "$(cat "$RUNTIME/verify")" ]||{ echo "'"$Y"'- 正在配置运行环境'"$O"'";abort(){ rm -rf "$RUNTIME";echo "'"$R"'! $@'"$O"'";exit 1;};rm -rf "$RUNTIME";mkdir -p "$RUNTIME";setcmd(){ CMDPATH="$(command -v "$1")"&&cp "$CMDPATH" "$RUNTIME"&&"$RUNTIME/$@"|tr " " "\n"|while read i;do [ -z "$i" ]&&continue;ln -sf "$1" "$RUNTIME/$i";done||abort "找不到$1,请安装运行环境后重试";};setcmd busybox --list;setcmd toybox;ls "$RUNTIME">"$RUNTIME/verify";};export PATH="$DIR:$RUNTIME:$PATH";export LD_LIBRARY_PATH="$DIR:$RUNTIME:$LD_LIBRARY_PATH";};DIR="/data/adb/TimeRainStarSky/MMPack";runtime;DIR="$(dirname "$0")";abort(){ echo "'"$R"'! $@'"$O"'";exit 1;};echo "'"$Y"'- 正在释放脚本'"$O"'";for i in "'"${BASEOUTPUT}Pack.sh"'" "'"${BASEOUTPUT}Control.sh"'";do if [ -f "$DIR/$i" ];then cp -vf "$DIR/$i" "$DIR/$i.bak"||abort "重命名原脚本失败";fi;done;tail -n "+$(awk "/$(echo "5a6a5L2N56ym"|base64 -d)/{print NR+1}" "$0"|head -n 1)" "$0"|xzcat|tar -xvC "$DIR"||abort "脚本释放失败";rm -rf "$0"||abort "删除释放脚本失败";echo "'"$G"'- 脚本释放完成'"$O"'";exit;定位符'>"${OUTPUT}Extract.sh"||abort "脚本打包失败";tar -cv "${BASEOUTPUT}Pack.sh" "${BASEOUTPUT}Control.sh"|xz -9cev>>"${OUTPUT}Extract.sh";echo -n "$(sed -n 2p "${INPUT}Pack.sh"|tr "[A-Z]" "[a-z]"|tr ";" "\n") 16 | md5=$(md5sum "${OUTPUT}Extract.sh"|head -c 32)">"$DIROUTPUT/version"||abort "脚本版本文件生成失败";echo;cat "$DIROUTPUT/version"||abort "脚本版本文件生成失败";echo " 17 | 18 | $G- 打包完成$O" -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Magisk 模块 打包脚本 2 | [![Stars](https://img.shields.io/github/stars/TimeRainStarSky/MMPack?color=yellow&label=收藏)](../../stargazers) 3 | [![Downloads](https://img.shields.io/github/downloads/TimeRainStarSky/MMPack/total?color=blue&label=下载)](MMControl.sh) 4 | [![Releases](https://img.shields.io/github/v/release/TimeRainStarSky/MMPack?color=green&label=发行版)](../../releases/latest) 5 | [![访问量](https://profile-counter.glitch.me/TimeRainStarSky-MMPack/count.svg)](https://timerainstarsky.github.io/MMPack) 6 | 7 | ## 使用教程 8 | 1. 准备: 9 | ① 脚本 [MMControl.sh](MMControl.sh) 文件 10 | ② 终端:[MT管理器](https://www.coolapk.com/apk/bin.mt.plus) | [ZeroTermux](https://github.com/hanxinhao000/ZeroTermux) 11 | ③ Magisk 模块 文件(夹) 12 | 13 | 2. 运行脚本: 14 | ① MT管理器:打开方式 ➞ Linux脚本 ➞ 执行 15 | [![MT管理器运行脚本.gif](../../../Boot_Tools/raw/main/Guide/MT管理器运行脚本.gif)](https://www.coolapk.com/apk/bin.mt.plus) 16 | ② 终端:输入 sh [脚本路径] 并 回车 执行 17 | [![终端运行脚本.gif](../../../Boot_Tools/raw/main/Guide/终端运行脚本.gif)](https://github.com/hanxinhao000/ZeroTermux) 18 | 19 | ## 使用说明 20 | - 咕咕咕 21 | 22 | ## 联系方式 23 | - QQ群组:[211414032](https://jq.qq.com/?k=QU1xGLEB) 24 | ### 时雨🌌星空 25 | - GitHub:[TimeRainStarSky](https://github.com/TimeRainStarSky) 26 | - 酷安:[时雨丶星空](http://www.coolapk.com/u/2650948) 27 | - QQ:[2536554304](https://qm.qq.com/cgi-bin/qm/qr?k=x8LtlP8vwZs7qLwmsbCsyLoAHy7Et1Pj) 28 | - Telegram:[TimeRainStarSky](https://t.me/TimeRainStarSky) 29 | 30 | ## 赞助支持 31 | - 爱发电: 32 | - Partme: -------------------------------------------------------------------------------- /Runtime/Pack.sh: -------------------------------------------------------------------------------- 1 | R="";G="";Y="";C="";B="";O="";abort(){ echo " 2 | $R! $@$O";exit 1;};echo "$B—————————————————————————— 3 | $R Shell$Y Runtime$G Pack$C Tools$O 4 | —————————————————————————— 5 | ${G}作者:${C}时雨🌌星空$O";[ -d "$1" ]&&INPUT="$(realpath "$1")"&&BASEINPUT="$(basename "$INPUT")"||abort "输入文件夹不存在";[ -n "$2" ]&&OUTPUT="$(realpath "$2")"||abort "输出文件不存在";echo " 6 | $Y- 正在生成校验脚本$O 7 | ";[ -f "$INPUT/verify.sh" ]&&rm -rf "$INPUT/verify.sh";cd "$INPUT"&&FIND="$(find * ! -type d)";echo "$FIND 8 | "|while read VFILE;do [ -f "$VFILE" ]||{ echo -n 'VERIFY="$1";verify(){ [ "$(md5sum "$VERIFY/$1"|head -c 32)" = "$2" ]&&echo "校验成功 $1"||{ echo "校验失败 $1";exit 1;};}'"$VERIFY"';rm -rf "$0"'>"$INPUT/verify.sh";break;};MD5SUM="$(md5sum "$VFILE"|head -c 32)";echo "$MD5SUM $C$VFILE$O";VERIFY="$VERIFY;verify '$VFILE' '$MD5SUM'";done;echo " 9 | $Y- 正在打包为自释放脚本$O 10 | ";echo '#运行环境已经过编译,需要源代码请联系作者:时雨🌌星空 11 | R="'"$R"'";G="'"$G"'";Y="'"$Y"'";C="'"$C"'";B="'"$B"'";O="'"$O"'" 12 | [ "$(id -u)" = 0 ]||{ echo "$Y- 正在获取root权限$O";exec su -c "sh \"$0\" \"$@\"";};echo "$B———————————————————————————————— 13 | $R Shell$Y Runtime$G Configure$C Script$O 14 | ———————————————————————————————— 15 | ${G}作者:${C}时雨🌌星空$O";DIR="/data/adb/TimeRainStarSky/'"$BASEINPUT"'";FILE="$(realpath "$0")";cd "$(dirname "$FILE")";abort(){ rm -rf "$DIR";echo " 16 | $R! $@$O";exit 1;};mktmp(){ TMP="${DIR}_tmp"&&rm -rf "$TMP"&&mkdir -p "$TMP"||abort "创建缓存文件夹失败";};output_file(){ echo " 17 | $Y- 正在释放运行环境$O 18 | ";mktmp;tail -n "+$(awk "/$(echo "5a6a5L2N56ym"|base64 -d)/{print NR+1}" "$FILE"|head -n 1)" "$FILE"|gzip -d|tar -xvC "$TMP"||abort "运行环境释放失败";rm -rf "$DIR";mv -f "$TMP" "$DIR"||abort "运行环境移动失败";OUTPUTED=1;};check_exec(){ if [ -f "$DIR/verify.sh" ]&&[ "$(md5sum "$DIR/verify.sh"|head -c 32)" = "'"$(md5sum "$INPUT/verify.sh"|head -c 32)"'" ]&&echo " 19 | $Y- 正在校验运行环境$O 20 | "&&sh "$DIR/verify.sh" "$DIR";then RUNTIME="$DIR";echo " 21 | $Y- 正在配置运行环境$O 22 | ";setcmd(){ "$RUNTIME/$@"|tr " " "\n"|while read i;do [ -z "$i" ]&&continue;ln -sf "$1" "$RUNTIME/$i";echo -n "$i ";done||abort "找不到$1,请安装运行环境后重试";};setcmd busybox --list;setcmd toybox;ls "$RUNTIME/Extra"|while read i;do mv -f "$RUNTIME/Extra/$i" "$RUNTIME";echo -n "$i ";done;rm -rf "$RUNTIME/Extra";ls "$RUNTIME">"$RUNTIME/verify";echo " 23 | 24 | $Y- 正在检查运行环境$O";export PATH="$RUNTIME:$PATH";export LD_LIBRARY_PATH="$RUNTIME:$LD_LIBRARY_PATH";[ -d "$RUNTIME" ]&&[ -f "$RUNTIME/verify" ]&&[ "$(ls "$RUNTIME")" = "$(cat "$RUNTIME/verify")" ]||abort "运行环境验证失败";echo " 25 | $B命令:$C$PATH$O 26 | $B依赖:$C$LD_LIBRARY_PATH$O 27 | $B数量:$C$(ls "$RUNTIME"|wc -l)$O 28 | ${Y}busybox$O 29 | $B路径:$C$(command -v busybox||echo "$R找不到")$O 30 | $B版本:$C$({ busybox||echo "$R执行失败";}|head -n 1)$O 31 | ${Y}toybox$O 32 | $B路径:$C$(command -v toybox||echo "$R找不到")$O 33 | $B版本:$C$(toybox --version||echo "$R执行失败")$O 34 | ${Y}curl$O 35 | $B路径:$C$(command -v curl||echo "$R找不到")$O 36 | $B版本:$C$({ curl --version||echo "$R执行失败";}|head -n 1)$O 37 | ${Y}tar$O 38 | $B路径:$C$(command -v tar||echo "$R找不到")$O 39 | $B版本:$C$({ tar --version||echo "$R执行失败";}|head -n 1)$O 40 | ${Y}zip$O 41 | $B路径:$C$(command -v zip||echo "$R找不到")$O 42 | $B版本:$C$({ zip --version||echo "$R执行失败";}|head -n 2|tail -n 1)$O 43 | ${Y}xz$O 44 | $B路径:$C$(command -v xz||echo "$R找不到")$O 45 | $B版本:$C$({ xz --version||echo "$R执行失败";}|head -n 1)$O 46 | 47 | $G- 运行环境配置完成$O";elif [ "$OUTPUTED" != 1 ];then output_file;check_exec;else abort "运行环境释放失败";fi;};check_exec;exit;定位符'>"$OUTPUT"||abort "脚本打包失败";cd "$INPUT";tar -c *|gzip -9cv>>"$OUTPUT"||abort "脚本打包失败";echo -n "name=v1.0.0 48 | version=$(date '+%4Y%m%d')0 49 | md5=$(md5sum "$OUTPUT"|head -c 32)">"$(dirname "$OUTPUT")/version"||abort "脚本版本文件生成失败";cat "$(dirname "$OUTPUT")/version"||abort "脚本版本文件生成失败";echo " 50 | 51 | $G- 打包完成$O" -------------------------------------------------------------------------------- /Runtime/Runtime.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TimeRainStarSky/MMPack/39064d14adc37c44f6d68bf8945dee254be3207b/Runtime/Runtime.sh -------------------------------------------------------------------------------- /Runtime/version: -------------------------------------------------------------------------------- 1 | name=v1.0.0 2 | version=202206260 3 | md5=22a0aabd21e0f36a606515dada615d14 -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /version: -------------------------------------------------------------------------------- 1 | name=v1.0.0 2 | version=202208240 3 | md5=1d0a4be52fd90c0ced15099473b6538c --------------------------------------------------------------------------------