安装工具
首先得要安装需要的一些工具:docker、adb、scrcpy 等。
Docker
Docker 是一种打包、传输和运行任何程序作为轻量级容器的实用工具.
1 2 3 4 5 6 7 8 9 10 11 12
| sudo pacman -S docker docker-compose
sudo systemctl start docker.service
sudo systemctl enable docker.service
sudo usermod -aG docker ${USER}
reboot
docker run hello-world
|
ADB
Android 调试桥(ADB)是一种命令行工具,可用于安装、卸载和调试应用程序,传输文件和访问设备的 shell。
1 2
| sudo pacman -S android-tools
|
scrcpy
scrcpy 是一个免费的开源屏幕镜像程序,它允许以 Windows 、 macOS 或 Linux 台式计算机查看并控制 Android 设备,可轻松实现快速的屏幕镜像。
1 2 3 4
| sudo pacman -S scrcpy
yay -S qtscrcpy guiscrcpy
|
内核
其他的发行版可能需要解决内核问题,Manjaro 实测不需要管。
部署云手机
这里要使用一个叫做 Redroid 的镜像,我们使用 docker-compose 基于这个镜像构建容器。
使用转译器
参考:ReDroid 教學:用 Docker 跑 Android 系統,在 x86 電腦玩 ARM 手機遊戲
普通的镜像是无法运行 arm 架构的程序的,所幸碧蓝航线支持 X86_64 架构,所以无需使用转译器,对于需要转译器的同学,以下是一点点参考(就玩几个特定游戏的并且支持 X86 的建议别上转译器,吃的内存多了一倍):
先找一个目录,新建一个文件,名为dockerfile
,内容如下:
1 2 3 4
| FROM redroid/redroid:11.0.0-latest
ADD git/Droid-NDK-Extractor/working/extracted/native-bridge.tar /
|
然后在这个目录下执行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| git clone https://github.com/sickcodes/Droid-NDK-Extractor.git cd Droid-NDK-Extractor chmod +x android-extract-ndk.sh ./android-extract-ndk.sh x86_64 cd working/extracted mkdir native-bridge cd native-bridge sudo tar -xpf ../native-bridge.tar sudo chmod 0644 system/etc/init/ndk_translation_arm64.rc sudo chmod 0755 system/bin/arm sudo chmod 0755 system/bin/arm64 sudo chmod 0755 system/lib/arm sudo chmod 0755 system/lib64/arm64 sudo chmod 0644 system/etc/binfmt_misc/* sudo tar -cpf native-bridge.tar system mv native-bridge.tar .. cd .. sudo rm -r native-bridge
|
这样一来就得到 ARM 转译器native-bridge.tar
了。
使用这个转译器与redroid:11.0.0-latest
镜像构建出一个新的镜像。
回到dockerfile
存在的目录,将 native-bridge.tar 复制到此处,运行
1
| sudo docker build . -t redroid-11-nb
|
然后编辑 docker-compose.yaml
文件,填入 docker 启动参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| services: redroid: privileged: true volumes: - ./data:/data ports: - 5555:5555 command: - androidboot.redroid_gpu_mode=host - ro.product.cpu.abilist=x86_64,arm64-v8a,x86,armeabi-v7a,armeabi - ro.product.cpu.abilist64=x86_64,arm64-v8a - ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi - ro.dalvik.vm.isa.arm=x86 - ro.dalvik.vm.isa.arm64=x86_64 - ro.enable.native.bridge.exec=1 - ro.dalvik.vm.native.bridge=libndk_translation.so - ro.ndk_translation.version=0.2.2 - ro.secure=0 container_name: redroid image: 'redroid/redroid:11.0.0-latest' network_mode: bridge
|
启动容器
显示
1 2 3 4
| adb connect localhost:5555
scrcpy -s localhost:5555
|
部署 Alas 脚本
参考:Alas Wiki for Docker
安装
1 2
| git clone https://github.com/LmeSzinc/AzurLaneAutoScript cd AzurLaneAutoScript
|
然后运行
1 2 3 4 5 6 7
|
podman-compose up
docker compose up -d
|
等很长时间。。。
启动好后记得去修改config/deploy.yaml
文件,把一些路径和代理改了。
至此,全部完成。
一些方便的工具
安装 podman-desktop-bin
方便一键打开/关闭容器
1
| yay -S podman-desktop-bin
|
当然也可以用 vscode 的 Docker 插件,但是 podman 起的容器不会被管理到。