Files
Zygisk-MyInjector/module/service.sh
2025-10-25 17:28:47 +08:00

136 lines
3.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/system/bin/sh
MODDIR=${0%/*}
# 确保路径定义
export PATH=/system/bin:/system/xbin:$PATH
# 定义日志函数
log() {
echo "[MyInjector] $(date '+%Y-%m-%d %H:%M:%S') $1" >> /data/local/tmp/myinjector_install.log
}
# APK 文件路径
APK_PATH="$MODDIR/configapp.apk"
# 检查 APK 是否存在
if [ ! -f "$APK_PATH" ]; then
log "APK 文件不存在: $APK_PATH"
exit 1
fi
# 等待系统完全启动
log "等待系统启动完成"
while [ "$(getprop sys.boot_completed)" != "1" ]; do
sleep 1
done
sleep 5 # 额外等待,确保服务启动完成
# 检查 pm 是否可用
log "检查 pm 命令状态"
while ! pm list packages >/dev/null 2>&1; do
sleep 1
done
# 检查是否已安装
INSTALLED=$(pm list packages com.jiqiu.configapp 2>/dev/null)
if [ -n "$INSTALLED" ]; then
log "ConfigApp 已安装,检查版本"
# 可以在这里添加版本检查逻辑
else
log "ConfigApp 未安装,开始安装"
fi
# 获取系统版本
SDK_VERSION=$(getprop ro.build.version.sdk)
log "检测到系统版本: SDK $SDK_VERSION"
# 根据系统版本选择安装方法
if [ "$SDK_VERSION" -ge 29 ]; then
# 高版本 AndroidSDK >= 29
log "使用高版本安装逻辑"
{
INSTALL_SESSION=$(pm install-create -r)
if [ $? -ne 0 ]; then
log "创建安装会话失败"
exit 1
fi
log "安装会话创建成功: $INSTALL_SESSION"
pm install-write "$INSTALL_SESSION" 0 "$APK_PATH"
if [ $? -ne 0 ]; then
log "写入 APK 文件失败"
log "降级,使用低版本安装逻辑"
pm install -r "$APK_PATH" >> /data/local/tmp/myinjector_install.log 2>&1
if [ $? -ne 0 ]; then
log "APK 安装失败"
exit 1
fi
log "APK 安装完成"
exit 0
fi
log "APK 写入成功"
pm install-commit "$INSTALL_SESSION"
if [ $? -ne 0 ]; then
log "提交安装会话失败"
exit 1
fi
log "APK 安装完成"
} >> /data/local/tmp/myinjector_install.log 2>&1
else
# 低版本 AndroidSDK < 29
log "使用低版本安装逻辑"
pm install -r "$APK_PATH" >> /data/local/tmp/myinjector_install.log 2>&1
if [ $? -ne 0 ]; then
log "APK 安装失败"
exit 1
fi
log "APK 安装完成"
fi
# 确保模块目录权限正确
chmod -R 755 /data/adb/modules/zygisk-myinjector
chown -R root:root /data/adb/modules/zygisk-myinjector
log "ConfigApp 安装脚本执行完成"
# ==================== KPM 模块加载 ====================
# KPM 模块路径
KPM_MODULE="$MODDIR/injectHide.kpm"
KPM_CONFIG="$MODDIR/kpm_hide_config.txt"
log "开始加载 KPM 内核模块"
# 检查 KPM 模块文件是否存在
if [ ! -f "$KPM_MODULE" ]; then
log "KPM 模块文件不存在: $KPM_MODULE"
else
log "找到 KPM 模块文件: $KPM_MODULE"
# 创建初始配置文件(如果不存在)
if [ ! -f "$KPM_CONFIG" ]; then
log "创建初始 KPM 配置文件"
echo "libmyinjector.so" > "$KPM_CONFIG"
chmod 644 "$KPM_CONFIG"
fi
# 等待一段时间确保系统稳定
sleep 3
# 加载 KPM 模块
log "正在加载 KPM 模块..."
insmod "$KPM_MODULE" 2>&1 | while read line; do
log "insmod: $line"
done
# 检查模块是否加载成功
if lsmod | grep -q "hideInject"; then
log "KPM 模块加载成功!"
else
log "KPM 模块加载失败,请检查日志"
fi
fi
# 脚本完成
exit 0