OrangePi 5 编译 Android12 源码
OrangePi 5 编译 Android12 源码
材料准备
源码下载地址
官方教程
编译环境
在以下环境的 Ubuntu 虚拟机编译通过,基于 VMware® Workstation 17 Pro.
- 系统版本:ubuntu-18.04.6-lts-desktop-amd64;
- CPU:i5-8400,为 VM 分配 4 核;
- 内存:8G RAM + 16G swap(在ssd中);
- 硬盘:500G (编译完成后磁盘空间总占用约250G,建议至少分配300G);
编译过程记录
1.下载和解压
首先将源码下载到 Ubuntu,并按照官方教程解压:
2.安装依赖
1、首先按照官方教程安装以下软件包:
$ sudo apt-get update
$ sudo apt-get install -y git gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip
$ sudo apt-get install -y u-boot-tools
2、根据编译过程中的报错信息,还需要安装以下两个软件:
$ sudo apt-get install libssl-dev
# 这里使用 snap 安装lz4, 可能是由于版本的关系使用 apt 安装的 lz4 在 Android 编译过程中会报参数错误。
$ sudo snap install lz4
# 编译过程中需要用到 Python2 环境
$ sudo apt install python-minimal
3.修改配置
1、添加一个足够大的 swap 分区:
$ sudo swapon --show
$ sudo fallocate -l 16G /swapfile2
$ sudo chmod 600 /swapfile2
$ sudo mkswap /swapfile2
$ sudo swapon /swapfile2
$ sudo swapon --show
2、调整 soong 编译文件
编辑 build/soong/java/droidstubs.go 文件,在 Flag(config.JavacVmFlags). 后换行追加 Flag("-J-Xmx6114m"). :
4.尝试编译
按照官方教程编译支持 LCD 显示的镜像 (编译 uboot、kernel、android 并打包成 update.img):
$ cd Android_12
$ export DUAL_LCD=true
$ source build/envsetup.sh
$ lunch rk3588s_s-userdebug
$ ./build.sh -AUKu
请耐心等待,编译需要很长时间......
编译成功的话生成的镜像文件会放在 rockdev/Image-rk3588s_s 目录下,其中 update.img 是 TF 卡启动镜像。
烧录镜像
为提高成功率,向 TF 卡烧录镜像时推荐按以下步骤操作:
1、使用官方提供的 SD_Firmware_Tool v1.7.2 进行烧录。
2、在开始烧录之前对 TF 卡进行以下处理 (使用 Diskgenius):
- 删除所有分区;
- (如果当前不是)转换分区表类型为
GUID格式。
3、以管理员身份运行 SD_Firmware_Tool, 选择设备、勾选SD启动、选择固件、开始创建。

浙公网安备 33010602011771号