编译NanoPi R5S Android 12 (RK3568)

最近,入手了一部 NanoPi R5S ,官方是提供了 Anroid 12 的系统镜像,但是却没有给出相应的源代码2023年10月12日,NanoPi 官方已经给出了Android 12的源代码,整个共享目录大约130GB左右,建议直接使用官方源代码进行编译)。尝试用官方提供的 Anroid 11 编译,结果编译出的系统镜像无法正常运行。

凑巧看到 研华科技 放出了 RSB-4810 开发板的 Anroid 12 编译指南,两者的配置差不多,试了一下,竟然可以正常运行!!

系统要求,内存不低于 32GB,否则编译过程中可能会由于内存不足,造成编译失败。

研华科技 官方文档是通过 docker 利用 ubuntu 18.04 进行编译的,如下:

1. 配置 docker 运行环境

$ sudo apt-get install docker

$ sudo docker pull advrisc/u18.04-rk3399abv10:latest;

# 注意,创建的目录必须是home的子目录,否则会在挂载的时候报错
# docker: Error response from daemon: error while creating mount source path '/data/r5s': mkdir /data: read-only file system.

$ mkdir r5s

$ sudo docker run --privileged -it --name android_S12 -v ~/r5s:/home/adv/BSP:rw advrisc/u18.04-rk3399abv10 /bin/bash

$ sudo chown adv:adv -R BSP

2. 下载源代码并进行编译

$ cd ~/BSP

$ git clone https://github.com/ADVANTECH-Rockchip/repo.git

$ mkdir rk3568_android_S12

$ cd rk3568_android_S12

$ git config --global user.name 'Your Name'

$ git config --global user.email you@example.com

$ git config --global http.postBuffer 52428800000

$ git config --global http.maxRequestBuffer 100M

$ git config --global core.compression 0

$ ../repo/repo init -u https://dev.azure.com/AIM-Linux/RISC-RK3568-Android/_git/android-manifest -b rk3568-androidS12 -m RK3568_S12_AIV0001.xml

$ ../repo/repo sync -c -f --no-clone-bundle -j16

3. 下载并解压缩编译工具( prebuilts.tar.gz 密码: 1234)

Exit docker and copy the file to /home/your-name/myandroid
$ cp prebuilts.tar.gz ~/r5s/rk3568_android_S12/android

In container and Unzip file
$ docker attach android_S12

$ tar zxvf ~/BSP/rk3568_android_S12/android/prebuilts.tar.gz

4. 编译代码

$ source build/envsetup.sh;lunch rsb4810_s-userdebug;

$./build.sh -AUCKu

5. 核对编译后的文件

编译完成后的产物在 rockdev/Image-rsb4810_s/ 目录下,具体的文件列表如下:

MiniLoaderAll.bin
baseparameter.img
boot-debug.img
boot.img
config.cfg
dtbo.img
misc.img
parameter.txt
pcba_small_misc.img
pcba_whole_misc.img
recovery.img
resource.img
super.img
uboot.img
update.img
vbmeta.img

5. 刷机

按照正常的流程刷机,整个流程走起来会比较繁琐,此处给相对简单的做法。

    1. NanoPi R5S官方WIKI 去下载已经编译好的镜像
    2. 如果是需要SD卡刷机,则直接把下载到的镜像文件写入准备好的数据卡
    3. 用刚刚编译出的文件替换SD卡上的android12目录下的同名文件,注意,只替换同名文件,里面的配置文件不要删除
    4. 插上SD卡,重启即可完成刷机
    5. 如果使用USB刷机,则也可以通过替换文件的方式达到相同的目的

参考链接