ARM云手机的搭建步骤(最新2023.09.07):
- 好多年了闲来逛了下csdn发现还有这么多人想玩这个行业 瞎写写 内行看笑话就好
1. 源码准备
- 下载AOSP的安卓源码,推荐使用清华大学镜像站。
2. 源码定制
2.1 Framework层定制:
- PackageManagerService: 控制应用的安装、卸载和更新。
- ActivityManagerService: 控制应用生命周期、进程管理。
- SystemService: 添加或修改系统服务。
- UI/UX: 调整系统界面、通知中心、锁屏等。
2.2 C层 (Native层)定制:
-
HAL (Hardware Abstraction Layer): 对硬件进行抽象,如相机、传感器等。
-
Libraries: 如libc, libm等进行底层调用和操作。
-
ART: Android runtime, 进行虚拟机或编译器的调整。
-
替换
mesa
、llvm
和libdrm
源码以满足特定需求。 -
编译相应的库。
3. 改机参数定制:
- IMEI
- Android ID
- Device Serial Number
- Mac Address
- SIM Serial
- Advertisements ID
4. 内核与模块准备
- Android与Linux的通信主要依赖于binder和ashmem两个模块。
- 编译
ashmem_linux.ko
和binder_linux.ko
模块。 - 在Kernel源码中合入改造适配
vmalloc
代码。 - 编译并安装上述模块到新内核。
5. ROM定制与Hook技术应用
- 根据业务定制好ROM。
- 如需动态调整,可以考虑使用hook技术。
- 如需要集成代理等功能,进行相应的测试。决定是否需要屏蔽UDP。
6. 容器部署与云控制
- 使用anbox -> robox 路线。
- 确保容器内部有
dri
,input
,binder
, 和ashmem
的映射。 - 集成
minicap
和minitouch
。 - 提供REST API为容器,方便外部服务或应用进行控制。
- 为每个云手机提供一个Web控制台。
- 使用如Kubernetes等工具进行统一管理和调度。
- 使用如Ansible、Puppet等自动化工具进行配置管理。
7. 转码处理
- 如果目标平台是32位的,进行相应的转码处理。
8. 容器控制与数据传输
- 使用任意编程语言调用脚本控制容器的启动、停止、重启等。
- 利用ADB和docker cp进行数据传输。
- 若有个性化需求,可以考虑在hook脚本中进行修改。
- 源码准备
|
v - 替换及编译依赖库
|
v - 源码定制
|
v - 内核与模块准备
|
v - ROM定制
|
v - 容器部署
|
v - 转码处理
|
v - 容器控制与数据传输