474 字
2 分钟
在 Fedora 上运行 Redroid 容器

redroid 是一个开源的 AIC(Android in cloud) 解决方案,可以运行在 arm64 amd64 架构的平台上。加上 ARM 转译器可以运行大部分的 Android APP,本文记录在 fedore 37 的安装过程。

准备#

  1. fedora-37-6.2.8-200.fc37.x86_64
  2. docker 打开终端使用官方命令安装 :
Terminal window
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

3.scrcpy or QtScrcpy,我使用的是 QtScrcpy 4.安装 android-tools

Terminal window
sudo dnf install android-tools

5.关闭 SELinux (临时):

Terminal window
sudo setenforce 0

6.获取 ARM 转译器 libndk

使用 Droid-NDK-Extractor 脚本获取 :

Terminal window
sudo dnf install sleuthkit p7zip binwalk git
mkdir ~/workspace
cd ~/workspace/
git clone https://github.com/sickcodes/Droid-NDK-Extractor.git
chmod +x android-extract-ndk.sh
./android-extract-ndk.sh

然后等待一段时间(可能需要代理)在项目目录下的 working/extracted/ 文件夹里面找到名为 native-bridge.tar 的压缩文档, 然后进入 native-bridge.tar 所在的目录 :

Terminal window
cd ~/workspace/Droid-NDK-Extractor/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 ..
1. `workspace` 目录下新建一个目录 `redrooid`
2. `native-bridge.tar` 移动到 `redroid` 目录下
3. `redroid` 目录下新建一个名为 `dockerfile` 的文档,并编辑加入以下内容:
```config
FROM redroid/redroid:11.0.0-latest
ADD native-bridge.tar /

4.编译新的 docker 镜像:

Terminal window
cd ~/workspace/redroid/
sudo docker build . -t redroid-11-libndk

等待镜像制作完成。

运行#

  1. 启动 redroid
Terminal window
sudo docker run -itd --privileged \
-v ~/data11-libndk:/data \
-p 5555:5555 \
redroid-11-libndk \
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

2.使用 adb 连接

Terminal window
adb connect localhost:5555

3.使用 QtScrcpy 连接到桌面

QtScrcpy界面

Android

安装完成,音频好像串流不上,可能我的窗口管理系统是 wayland 的原因。(报错为:“wayland not support” 待解决)

4.安装 apk :

Terminal window
adb -s localhost:5555 install xxx.apk

5.启动或者关闭容器(开关机) :

Terminal window
sudo docker ps -a
sudo docker start <container id> ##开启容器
sudo docker stop <container id> ##关闭容器

总结#

个人配置,对于我来说这些功能够用了,其它的比如 GoogleService Magisk 等有需求的再添加吧。

在 Fedora 上运行 Redroid 容器
https://encorexin.online/posts/run-redroid-on-fedora/
作者
Encore Xin
发布于
2023-04-03
许可协议
CC BY-NC-SA 4.0

评论