OrangePi 5 编译 Android12 源码

OrangePi 5 编译 Android12 源码

材料准备

源码下载地址

Orange Pi - Orangepi

官方教程

编译环境

在以下环境的 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启动、选择固件、开始创建。

posted @ 2025-02-11 19:04  路合华  阅读(204)  评论(0)    收藏  举报