# redroid-multi **Repository Path**: cyberant/redroid-multi ## Basic Information - **Project Name**: redroid-multi - **Description**: linux-redroid - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Redroid 安卓双开方案 在 Linux 8核16G 机器上,用 Docker + Redroid 创建 2 个独立安卓实例。 ## 特性 - ✅ 2个完全独立的 Android 11 系统 - ✅ 独立 ADB 端口(5555、5556) - ✅ 资源占用低(每个安卓约 2-3GB 内存) - ✅ 支持 scrcpy 屏幕投射 - ✅ npm 命令管理 ## 端口规划 | 实例 | ADB 端口 | 说明 | |-------|----------|------------| | 安卓1 | 5555 | 主实例 | | 安卓2 | 5556 | 次实例 | ## 环境要求 - Linux 系统(Ubuntu 20.04+ 推荐) - Docker + docker-compose - 内核支持 binder 和 ashmem 模块 - 8核16G 可开 2-3 个实例(每个分配 2-3G 内存) ## 快速开始 ### 第一步:安装 Docker ```bash # 安装 Docker curl -fsSL https://get.docker.com | sh # 添加用户到 docker 组 sudo usermod -aG docker $USER # 重新登录(或执行下面命令使权限生效) newgrp docker # 安装 docker-compose sudo apt update && sudo apt install docker-compose -y ``` ### 第二步:安装内核模块 ```bash # 安装额外内核模块 sudo apt install linux-modules-extra-$(uname -r) -y # 加载所需模块 sudo modprobe binder_linux devices="binder,hwbinder,vndbinder" sudo modprobe ashmem_linux # 验证模块加载 lsmod | grep binder lsmod | grep ashmem ``` ### 第三步:下载本项目 ```bash cd ~/redroid-multi ``` ### 第四步:创建环境 ```bash npm run create ``` 这一步会: - 检查 Docker 环境 - 加载内核模块 - 拉取 Redroid 镜像 ### 第五步:启动安卓 ```bash npm run start ``` 首次启动需要 1-2 分钟初始化系统。 ### 第六步:连接 ADB ```bash # 安装 adb sudo apt install adb -y # 连接两个安卓 adb connect localhost:5555 adb connect localhost:5556 # 查看设备 adb devices ``` 输出示例: ``` List of devices attached localhost:5555 device localhost:5556 device ``` ### 第七步:查看屏幕(scrcpy) ```bash # 安装 scrcpy sudo apt install scrcpy -y # 连接安卓1 scrcpy --serial localhost:5555 # 连接安卓2(新开终端) scrcpy --serial localhost:5556 ``` ## npm 命令 | 命令 | 说明 | |----------------|--------------------| | `npm run create` | 检查环境、拉取镜像 | | `npm run start` | 启动两个安卓 | | `npm run stop` | 停止两个安卓 | | `npm run rm` | 删除容器和数据 | | `npm run status` | 查看容器状态 | | `npm run logs:1` | 查看安卓1日志 | | `npm run logs:2` | 查看安卓2日志 | ## 文件结构 ``` redroid-multi/ ├── package.json # npm 脚本 ├── docker-compose.yml # 容器配置 ├── scripts/ │ ├── create.sh # 创建脚本 │ ├── start.sh # 启动脚本 │ ├── stop.sh # 停止脚本 │ └── rm.sh # 删除脚本 ├── data/ │ ├── redroid1/ # 安卓1数据 │ └── redroid2/ # 安卓2数据 └── README.md # 本教程 ``` ## 常用操作 ### ADB 操作 ```bash # 进入安卓1 shell adb -s localhost:5555 shell # 安装 APK 到安卓1 adb -s localhost:5555 install app.apk # 截图 adb -s localhost:5555 shell screencap /sdcard/screen.png adb -s localhost:5555 pull /sdcard/screen.png # 查看日志 adb -s localhost:5555 logcat ``` ### Docker 操作 ```bash # 查看运行中的容器 docker ps # 查看容器日志 docker logs -f redroid1 docker logs -f redroid2 # 重启容器 docker restart redroid1 # 进入容器内部 docker exec -it redroid1 sh ``` ## 故障排除 ### 1. 容器启动失败 检查内核模块: ```bash lsmod | grep binder lsmod | grep ashmem ``` 如果没有输出,重新加载: ```bash sudo modprobe binder_linux devices="binder,hwbinder,vndbinder" sudo modprobe ashmem_linux ``` ### 2. ADB 连接失败 ```bash # 重启 ADB 服务 adb kill-server adb start-server # 重新连接 adb connect localhost:5555 ``` ### 3. 安卓系统卡住 ```bash # 重启容器 npm run stop npm run start ``` ### 4. 清理重建 ```bash # 彻底删除重建 npm run rm npm run create npm run start ``` ## 资源占用参考 8核16G 机器: | 配置 | 可开数量 | 每个安卓分配 | |----------|----------|--------------| | 保守模式 | 2个 | 2核3G | | 标准模式 | 3个 | 2核3G | | 极限模式 | 4个 | 1.5核2G | 建议开 2 个,预留资源给宿主机和其他服务。 ## 进阶配置 如需修改安卓参数,编辑 `docker-compose.yml`: ```yaml redroid1: image: redroid/redroid:11.0.0-latest # 添加更多参数 environment: - ANDROID_EMULATOR_MAKE_FAKE_DEVICES=yes - RO_PRODUCT_MANUFACTURER=Samsung # 伪装厂商 - RO_PRODUCT_MODEL=SM-G991B # 伪装型号 ``` ## 卸载 ```bash cd ~/redroid-multi npm run rm cd ~ rm -rf redroid-multi ``` ## 参考 - [Redroid GitHub](https://github.com/remote-android/redroid-doc) - [Redroid 文档](https://github.com/remote-android/redroid-doc#redroid)