前言
在此前的文章中,介绍了如何在 Docker 中配置 Redroid 并通过 Magisk 获取 Root 权限。随着部分开源模块对 Magisk 版本的要求提升,本文采用 ayasa520/redroid-script 进行镜像构建与 Root 方案更新,同时引入 AutoJS 以满足自启动与自动化点击等需求,记录从构建、编排到排障的完整流程。
合规与风险提示
本文仅用于学习与研究。涉及证书、Root、系统模块与网络重定向的操作可能触发合规与安全风险。任何生产或对第三方系统的操作需确保具备合法授权。文中出现的设备标识(如 IMEI)为示例值,请替换为自有、合规的虚构数据。
环境与准备
- Docker / Docker Compose
- 可运行 Redroid 的 Linux 主机
- ADB / Scrcpy(用于调试与投屏)
- 基础应用:MT 管理器、Termux、AutoJsPro、JustTrustMe
- Magisk 模块:LSPosed、AlwaysTrustUserCerts、Systemless Hosts
- 统一资源包(文末提供下载地址)
构建内置 Magisk 的 Redroid 镜像
获取脚本并安装依赖
1
2
3
4
5
|
git clone https://github.com/ayasa520/redroid-script
cd redroid-script
apt update && apt install -y lzip
pip install -r requirements.txt
|
扩展 Android 版本枚举(示例:14/15)
如需 Android 14/15,请在 redroid.py 中补全可选版本:
1
2
3
4
5
6
7
8
9
10
|
def main():
...
parser.add_argument('-a', '--android-version',
dest='android',
help='Specify the Android version to build',
default='11.0.0',
- choices=['13.0.0', '12.0.0', '12.0.0_64only', '11.0.0', '10.0.0', '9.0.0', '8.1.0'])
+ choices=['15.0.0_64only', '15.0.0', '14.0.0_64only', '14.0.0',
+ '13.0.0_64only', '13.0.0', '12.0.0', '12.0.0_64only',
+ '11.0.0', '10.0.0', '9.0.0', '8.1.0'])
|
构建内置 Magisk 的镜像
1
2
|
python3 redroid.py -a 15.0.0_64only -m
# 新镜像:redroid/redroid:15.0.0_64only_magisk
|
启动 Redroid
docker-compose.yaml 示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
name: android
services:
redroid_15_1:
image: redroid/redroid:15.0.0_64only_magisk
container_name: redroid_15_1
restart: unless-stopped
privileged: true
networks:
android:
ipv4_address: 172.18.0.252
ports:
- "45555:5555"
volumes:
- ./redroid_15_1:/data
command:
- androidboot.hardware=mt6891
- androidboot.hwc=CN
- androidboot.redroid_height=2400
- androidboot.redroid_width=1080
- ro.boot.hwc=CN
- ro.product.manufacturer=Xiaomi
- ro.product.brand=Xiaomi
- ro.product.model=2211133C
- ro.product.marketname=Xiaomi 13
- ro.product.device=fuxi
- ro.product.name=fuxi
- ro.build.product=fuxi
- ro.product.mod_device=fuxi
- ro.secure=0
- ro.product.locale=zh-CN
- ro.product.locale.language=zh
- ro.product.locale.region=CN
- persist.sys.locale=zh-CN
- persist.sys.locale_list=zh-CN,en-US
- persist.sys.timezone=Asia/Shanghai
- persist.sys.time_12_24=24
networks:
android:
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/16
|
启动与连接:
1
2
3
4
5
6
7
|
docker compose up -d
docker compose ps
docker compose logs -f redroid_15_1
adb connect 127.0.0.1:45555
adb devices
adb shell whoami
|
运行正常后可通过 45555 端口访问 ADB 服务。

基础软件与模块安装
软件(统一资源包,见文末)
- MT 管理器
- Termux
- AutoJsPro
- JustTrustMe
Magisk 模块
- LSPosed
- AlwaysTrustUserCerts
- Systemless Hosts
建议流程:先安装用户证书(见下文),再启用 AlwaysTrustUserCerts,随后按需安装/启用其他模块,以提升 Zygisk 生效的稳定性。
Root 授权与 su 路径
现象
- 在 Termux 中执行
su 可正常触发 Magisk 授权弹窗;
- 在 MT 管理器、Shizuku 中无法获取 Root;
logcat 无明显异常信息。
处置
说明
不同 App 的 Root 发现与调用路径存在差异,显式路径可避免环境变量或挂载策略导致的可见性问题。若自定义了 PATH、SELinux 或 overlayfs,也需同步评估其影响。
Zygisk 不生效的排查思路
症状
Magisk 中 Zygisk 始终提示“需要重启”,重启后依旧未生效,日志信息有限。
可复用操作
- 在系统设置中先安装用户证书;
- 通过 LSPosed/模块管理启用 AlwaysTrustUserCerts;
- 重启 Redroid,使 Zygisk 与相关模块完成初始化与挂载。

如仍不生效,可尝试清理模块缓存、核对 LSPosed 版本兼容性,并在必要时回退至稳定的 Magisk/Redroid 组合版本。
部署 AutoJS 自动化
适用场景
需要在特定 App 启动后执行自动点击、心跳或表单填充等动作。
合规说明
以下方法仅限自有环境与授权测试场景,请勿用于未授权的应用或服务。
准备 AutoJS 服务
1
2
3
4
5
6
7
|
# 解压资源包中的 autojserver.tar.gz 至编排目录
tar -zxvf autojserver.tar.gz
cd autojserver
chmod +x main.sh
bash main.sh
# 初始化后将生成自签证书等运行所需文件
|
Compose 编排
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
name: android
services:
redroid_15_1:
image: redroid/redroid:15.0.0_64only_magisk
container_name: redroid_15_1
restart: unless-stopped
privileged: true
networks:
android:
ipv4_address: 172.18.0.252
ports:
- "45555:5555"
volumes:
- ./redroid_15_1:/data
command:
- androidboot.hardware=mt6891
- androidboot.hwc=CN
- androidboot.redroid_height=2400
- androidboot.redroid_width=1080
- ro.boot.hwc=CN
- ro.product.manufacturer=Xiaomi
- ro.product.brand=Xiaomi
- ro.product.model=2211133C
- ro.product.marketname=Xiaomi 13
- ro.product.device=fuxi
- ro.product.name=fuxi
- ro.build.product=fuxi
- ro.product.mod_device=fuxi
- ro.secure=0
- ro.product.locale=zh-CN
- ro.product.locale.language=zh
- ro.product.locale.region=CN
- persist.sys.locale=zh-CN
- persist.sys.locale_list=zh-CN,en-US
- persist.sys.timezone=Asia/Shanghai
- persist.sys.time_12_24=24
autojserver:
image: autojserver:latest
build:
context: ./autojserver
dockerfile: Dockerfile
container_name: autojserver
restart: unless-stopped
working_dir: /data
networks:
android:
ipv4_address: 172.18.0.251
command: ["python", "/data/main.py"]
volumes:
- ./autojserver:/data
networks:
android:
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/16
|
启动与日志查看
1
2
3
|
docker compose up -d
docker compose ps
docker compose logs -f autojserver
|
证书与 hosts 注入
1
2
3
4
5
|
# 用户证书:用于系统设置中手动安装
cp ./autojserver/ca.crt ./redroid_15_1/media/0/Download/
# Systemless Hosts:需确保模块已安装
cp -rf ./autojserver/hosts ./redroid_15_1/adb/modules/hosts/system/etc/
|
随后在 系统设置 → 安全 → 加密与凭据(或证书管理)→ 从存储安装 中安装 ca.crt 用户证书,并在 JustTrustMe 作用域中勾选 AutoJS/目标 App。完成后重启 Redroid。
资源下载
统一资源包
- 软件:MT 管理器、Termux、AutoJsPro、JustTrustMe
- 模块:LSPosed、AlwaysTrustUserCerts、Systemless Hosts