debian12搭建redroid~甲骨文arm搭建安卓
侧边栏壁纸
  • 累计撰写 27 篇文章
  • 累计收到 1 条评论

debian12搭建redroid~甲骨文arm搭建安卓

xiayikechun
2026-04-05 / 0 评论 / 0 阅读 / 正在检测是否收录...

甲骨文 ARM Debian 12 搭建 Magisk + Redroid + scrcpy-web 完整教程

本教程将指导你在甲骨文云(OCI)的 ARM Debian 12 实例上,通过 Docker 运行带 Magisk 的 Android 11 容器(Redroid),并配合 scrcpy-web 实现浏览器远程控制。整个过程全程可在 SSH 终端完成,适合云手机、自动化测试等场景。

准备工作

  • 甲骨文云 VM.Standard.A1.Flex 实例(ARM 架构,4核24G 免费额度最佳)
  • 系统已安装 Debian 12(可通过下方 DD 脚本快速重装)
  • 具备 SSH root 访问权限

一、快速安装 Debian 12(可选)

如果你的实例当前不是 Debian 12,可使用以下脚本一键重装:

# 下载重装脚本
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
# 或使用 wget
wget -O reinstall.sh https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh

# 安装 Debian 12(默认 root 密码随机,会显示在屏幕上)
bash reinstall.sh debian12

# 推荐:同时指定 SSH 公钥和端口(避免密码登录)
bash reinstall.sh debian12 --ssh-key github:你的GitHub用户名 --ssh-port 2222

重装后使用新的 SSH 端口和密钥重新连接。


二、安装 Docker 环境

如果你已有宝塔面板或其他环境,可跳过此步。否则执行:

# 安装 Docker(官方脚本)
curl -fsSL https://get.docker.com | bash

# 将当前用户加入 docker 组(避免每次 sudo)
usermod -aG docker $USER
newgrp docker

验证安装:docker --version


三、准备 Magisk 集成文件

Redroid 官方镜像不带 Magisk,我们需要手动提取 Magisk 二进制并注入容器。

3.1 创建工作目录

mkdir -p /www/wwwroot/anzhuo/MagiskOnRedroid
cd /www/wwwroot/anzhuo/MagiskOnRedroid

3.2 下载 Magisk Debug APK

cat > download_magisk.sh << 'EOF'
#!/bin/bash
find . -maxdepth 1 -iname "magisk*" -not -name "*.apk" -exec rm -rf {} \;

magisk_file="app-debug.apk"
if [ ! -f "$magisk_file" ]; then
    wget "https://cdn.jsdelivr.net/gh/topjohnwu/magisk-files@1cea72840fbf690f9a95512d03721f6a710fe02e/app-debug.apk"
fi

unzip -j "$magisk_file" "lib/arm64-v8a/libmagisk64.so" -d magisk
unzip -j "$magisk_file" "lib/arm64-v8a/libbusybox.so" -d magisk
mv magisk/libmagisk64.so magisk/magisk
mv magisk/libbusybox.so magisk/busybox
EOF

chmod +x download_magisk.sh
./download_magisk.sh

3.3 打包 Magisk 文件

tar --transform 's/.*\///g' -cf /www/wwwroot/anzhuo/magisk.tar \
    --absolute-names $(find /www/wwwroot/anzhuo/MagiskOnRedroid | grep -E "magisk/|app-debug.apk$")

3.4 创建 Android init 脚本(magisk.rc)

cat > /www/wwwroot/anzhuo/magisk.rc << 'EOF'
on early-init
    export PATH /sbin:/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin
    chmod 0700 /magisk.tar
    chown root root /magisk.tar
    chmod 0700 /setup.sh
    chown root root /setup.sh
    exec root root -- /setup.sh

service magisk-d /sbin/magisk --daemon
    user root
    oneshot

on boot
    start magisk-d

on post-fs-data
    start logd
    rm /dev/.magisk-unblock
    start s1
    wait /dev/.magisk-unblock 5
    rm /dev/.magisk-unblock

service s1 /sbin/magisk --post-fs-data
    user root
    oneshot

service s2 /sbin/magisk --service
    class late_start
    user root
    oneshot

on property:sys.boot_completed=1
    exec /sbin/magisk --boot-complete

on property:init.svc.zygote=restarting
    exec /sbin/magisk --zygote-restart

on property:init.svc.zygote=stopped
    exec /sbin/magisk --zygote-restart
EOF

chmod 644 /www/wwwroot/anzhuo/magisk.rc
chown root:root /www/wwwroot/anzhuo/magisk.rc

3.5 创建 setup 脚本(setup.sh)

cat > /www/wwwroot/anzhuo/setup.sh << 'EOF'
#!/system/bin/sh

tmpPushed=/magisk
rm -rf $tmpPushed
mkdir $tmpPushed
tar -xvf /magisk.tar --no-same-owner -C $tmpPushed
rm -f /magisk.tar

mkdir /sbin
chown root:root /sbin
chmod 0751 /sbin
cp $tmpPushed/magisk /sbin/
cp $tmpPushed/app-debug.apk /sbin/stub.apk
chmod 0755 /sbin/magisk /sbin/stub.apk

ln -sf /sbin/magisk /system/xbin/su
mkdir /product/bin
chmod 751 /product/bin
ln -sf /sbin/magisk /product/bin/su

mkdir -p /data/adb/magisk
chmod 700 /data/adb
mv $tmpPushed/busybox /data/adb/magisk/
chmod 755 /data/adb/magisk/busybox
chown -R root:root /data/adb/magisk

rm -rf $tmpPushed
EOF

chmod 700 /www/wwwroot/anzhuo/setup.sh
chown root:root /www/wwwroot/anzhuo/setup.sh

四、加载 Android 内核模块

modprobe binder_linux devices=binder1,binder2,binder3,binder4,binder5,binder6
chmod 666 /dev/binder*

五、运行带 Magisk 的 Redroid 容器

docker run -itd --privileged \
  --name a11 \
  -v /dev/binder1:/dev/binder \
  -v /dev/binder2:/dev/hwbinder \
  -v /dev/binder3:/dev/vndbinder \
  -v /www/wwwroot/anzhuo/setup.sh:/setup.sh \
  -v /www/wwwroot/anzhuo/magisk.tar:/magisk.tar \
  -v /www/wwwroot/anzhuo/magisk.rc:/vendor/etc/init/magisk.rc \
  -v /www/wwwroot/anzhuo/redroid:/data \
  -p 5555:5555 \
  redroid/redroid:11.0.0-latest \
  ro.secure=0 \
  androidboot.redroid_gpu_mode=guest \
  androidboot.hardware=mt6891 \
  ro.boot.hwc=GLOBAL \
  ro.ril.oem.imei=861503068361145 \
  ro.ril.oem.imei1=861503068361145 \
  ro.ril.oem.imei2=861503068361148 \
  ro.ril.miui.imei0=861503068361148 \
  ro.product.manufacturer=Xiaomi \
  ro.build.product=chopin

六、运行 scrcpy-web 实现浏览器远程控制

docker run -d --privileged \
  -v /www/wwwroot/anzhuo/scrcpy:/data \
  --name scrcpy-web \
  -p 8015:8000/tcp \
  --link a11:myphone1 \
  emptysuns/scrcpy-web:v0.1

docker exec scrcpy-web adb connect myphone1:5555

访问 http://你的服务器公网IP:8015 即可。


七、验证 Magisk

docker exec a11 su -c "magisk -c"

八、常见问题

· 容器退出:检查 ls -l /dev/binder 和 chmod 666 /dev/binder
· adb 连接失败:放行端口 5557(安全组 + ufw)
· Magisk 未生效:检查 /vendor/etc/init/magisk.rc 挂载是否正确


九、总结

本教程已在甲骨文 ARM Debian 12 上成功运行带 Magisk 的 Android 11 容器,并可通过浏览器远程控制。可用于云手机、自动化测试等场景。

0

评论 (0)

取消