首页
社区
课程
招聘
7
[原创]安卓容器化部署方案
发表于: 2024-1-29 18:36 16192

[原创]安卓容器化部署方案

2024-1-29 18:36
16192

前言

业务需要大量模拟器场景进行测试,单纯的在windows开模拟器不现实,本想着拉取AOSP源码进行编译然后制作镜像,后来发现开源redroid有现成镜像,于是拿来直接使用并在debian11下成功实现多开
系统版本:debian11
内核:5.10.0-26-amd64
docker 24.0.7

1.方案选择

1.1.方案一k8s集群部署(开源镜像为基础)

测试结论:需要在宿主机上配置binder或BinderFS即可。注意直接用k8s可以直接测通。如果你有自己的构建机以及统一维护的发布系统可以使用这套。(测试通过)

1.2.方案二物理机docker部署发布

测试结论:新物理机 配置docker、binder或BinderFS就可使用。轻量级适合独立维护。(测试通过)

2.环境配置(物理机上执行)

2.1开启binder(只能开启一个模拟器)

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

2.2开启BinderFS(可以开启多个模拟器)

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
# 1.安装必要的工具
sudo apt-get update
sudo apt-get install build-essential libncurses5-dev flex bison libssl-dev libelf-dev bc
 
# 2.下载当前Debian内核版本的源代码
sudo apt-get source linux-source
# 3.进入内核源码目录
cd linux-*
 
# 4.配置内核,运行配置工具以启用BinderFS支持。使用 make menuconfig 或 make nconfig:
make menuconfig
# 出现选项就按这个流程走 General setup -> Pseudo filesystems -> Binder IPC and BinderFS file system 启用这些选项,然后保存并退出
 
# 也可以检查下源码目录下.config文件,并设置一下内容
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
CONFIG_ANDROID_BINDER_IPC_SELFTEST=y
 
 
# 5.编译内核
make -j$(nproc)
 
# 6.安装新内核
sudo make modules_install
sudo make install
 
# 7.重新启动
sudo reboot

2.3配置Magisk(android root,如有需要)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#下载magisk 并拆解出libmagisk64.so与libbusybox.so
mkdir ~/MagiskOnRedroid
cd ~/MagiskOnRedroid
 
find -maxdepth 1 -iname "magisk*" -not -name "*.apk" -exec rm -r {} \;
magisk_file="app-debug.apk"
 
# download Magisk 9b61bdfc(25201) debug as you did i guess
# 下载magisk apk
if [ ! -f $magisk_file ]; then
  wget "https://cdn.jsdelivr.net/gh/topjohnwu/magisk-files@1cea72840fbf690f9a95512d03721f6a710fe02e/app-debug.apk"
fi
# because my machine x64 i will choose x86_64
# 解压并提取两个so,根据系统镜像位数来提取
unzip -j $magisk_file "lib/x86_64/libmagisk64.so" -d magisk
unzip -j $magisk_file "lib/x86_64/libbusybox.so" -d magisk
# 重命名
mv -v magisk/libmagisk64.so magisk/magisk
mv -v magisk/libbusybox.so magisk/busybo
 
# 压缩,将magisk app 和依赖so都放到一起,供后续脚本使用
tar --transform 's/.*\///g' -cf ~/magisk.tar --absolute-names $( find ~/MagiskOnRedroid | grep -E "magisk/|app-debug.apk$" )

2.3.1.配置magisk所需脚本-remove.rc


[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

最后于 2024-3-1 17:47 被XJ。编辑 ,原因:
收藏
免费 7
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2024-5-20 01:01
zhczf
为你点赞~
2024-2-22 17:57
slcn
为你点赞~
2024-2-19 09:39
XJ。
为你点赞~
2024-1-31 16:30
atom_007
为你点赞~
2024-1-31 11:50
st0ne
为你点赞~
2024-1-31 09:49
mancong
为你点赞~
2024-1-30 08:54
最新回复 (7)
雪    币: 1109
活跃值: (3626)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
开着 privileged,装上 magisk,再交付给客户使用,会特别刺激
2024-1-30 18:09
0
雪    币: 3995
活跃值: (31436)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2024-1-31 09:32
1
雪    币: 2116
活跃值: (4417)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2024-1-31 09:50
0
雪    币:
活跃值: (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2024-2-15 20:50
0
雪    币: 235
活跃值: (620)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
大佬,这个mac上能部署不?
2024-2-22 11:39
0
雪    币: 240
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
alds 大佬,这个mac上能部署不?
docker直接run就行
2024-2-22 13:05
0
雪    币: 136
活跃值: (4966)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
magisk 的办法,arm64 也可以这么做吗
2024-9-30 17:16
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册