如何编写Shell脚本在Android模拟器自动安装Kitsune Mask与LsPosed?
自动化在多台Android模拟器安装Kitsune Mask(Magisk)与LsPosed的Shell脚本方案
当然可以实现,以下是基于ADB命令的Shell脚本方案,能自动完成多台模拟器上的安装、重启及等待流程。
前提条件
- 已安装ADB并配置到系统环境变量
PATH中 - 目标Android模拟器已启动,且能通过
adb devices被检测到 - 已下载最新版Kitsune Mask和LsPosed的APK安装包,本地路径已知
核心脚本示例
#!/bin/bash # 配置变量 - 请根据实际情况修改 KITSUNE_APK="/path/to/kitsune-mask.apk" LSPOSED_APK="/path/to/lsposed.apk" # 可选:指定目标设备列表,留空则自动获取所有在线模拟器 TARGET_DEVICES=() # 自动获取所有在线模拟器设备(如果TARGET_DEVICES为空) if [ ${#TARGET_DEVICES[@]} -eq 0 ]; then TARGET_DEVICES=($(adb devices | grep -v "List" | grep -v "offline" | awk '{print $1}')) fi # 等待设备重启完成的函数 wait_for_device() { local device=$1 echo "等待设备 $device 重启连接..." adb wait-for-device -s $device # 额外等待系统完全启动(可根据模拟器性能调整时长) sleep 30 } # 遍历所有目标设备执行安装流程 for device in "${TARGET_DEVICES[@]}"; do echo "===== 开始处理设备: $device =====" # 1. 推送并安装Kitsune Mask echo "推送Kitsune Mask到设备..." adb -s $device push "$KITSUNE_APK" /sdcard/ echo "安装Kitsune Mask..." adb -s $device install -r /sdcard/kitsune-mask.apk # 2. 触发设备重启 echo "重启设备 $device..." adb -s $device reboot wait_for_device $device # 3. 推送并安装LsPosed echo "推送LsPosed到设备..." adb -s $device push "$LSPOSED_APK" /sdcard/ echo "安装LsPosed..." adb -s $device install -r /sdcard/lsposed.apk # 4. 再次重启(根据LsPosed安装要求,部分场景需要) echo "再次重启设备 $device 以完成配置..." adb -s $device reboot wait_for_device $device # 5. 验证安装状态 echo "验证Kitsune Mask安装状态..." adb -s $device shell pm list packages | grep "com.kitsune.mask" echo "验证LsPosed安装状态..." adb -s $device shell pm list packages | grep "org.lsposed.lspd" echo "===== 设备 $device 处理完成 =====" done echo "所有设备安装流程执行完毕"
关键说明
- 变量配置:修改
KITSUNE_APK和LSPOSED_APK为本地实际文件路径;TARGET_DEVICES可指定特定设备ID,留空则自动处理所有在线模拟器 - 重启等待:
wait_for_device函数结合adb wait-for-device和固定休眠时长,可根据模拟器启动速度调整sleep的秒数 - 覆盖安装:使用
install -r参数实现覆盖安装,适合更新场景 - 错误处理:脚本未包含复杂错误捕获(如推送失败、安装失败),可根据需求添加
if判断及日志输出
扩展优化建议
- 添加日志输出到文件,方便后续排查问题
- 针对不同模拟器(如夜神、逍遥),可自动识别其ADB端口并连接
- 增加超时机制,避免无限等待设备重启
- 集成APK自动下载逻辑,从官方源拉取最新版本
内容的提问来源于stack exchange,提问作者ken
相关产品推荐
相关产品推荐

