说明
编译 Android14 系统,最低的主机电脑配置要求为:
32核的CPU32GB的内存400GB的存储空间
更低的配置我这里没有进行实验,低于这个配置可能会出现各种各样莫名奇妙的错误。
- 主机系统:
Ubuntu22.04
SDK说明
- Linux内核版本:
6.1.99 - 设备树:
tspi-3m-rk3576 - 内核配置文件:
rk3576_defconfigandroid-14.configrk3576.config
编译镜像
0⃣. 进入SDK根目录下:
bash
lckfb@leenixp:~/workspace/build/TaishanPi-3-Android14$ ls
Android.bp RKTools bootable cts device javaenv.sh libnativehelper packages restore_patches.sh system tspi-sdk-init.sh
BUILD WORKSPACE bootstrap.bash dalvik external kernel mkcombinedroot pdk rkbin test u-boot
Copyright_Statement.pdf art build developers frameworks kernel-6.1 mkimage.sh platform_testing rkst toolchain vendor
RKDocs bionic build.sh development hardware libcore mkimage_ab.sh prebuilts sdk1
2
3
4
5
2
3
4
5
1⃣. 设置环境变量:
bash
source build/envsetup.sh1
作用说明
envsetup.sh 脚本会初始化 Android 编译环境,主要完成以下工作:
- 加载编译工具: 将 Android 编译所需的各种工具和函数加载到当前 Shell 环境中
- 设置环境变量: 配置
PATH、TARGET_PRODUCT... 等关键环境变量 - 提供便捷命令: 提供
lunch、mm... 等常用编译命令 - 初始化构建系统: 准备 Android 的构建系统框架
每次打开新的终端窗口进行编译时,都需要先执行这个命令来初始化编译环境。
2⃣. 选择配置文件:
bash
lunch tspi_3m-userdebug1
lunch 项配置说明
tspi_3m-userdebug:适用于Android14的产品,硬件适配泰山派3M-RK3576开发板,默认对应的dts文件是tspi-3m-rk3576.dts,编译的是userdebug版本,开发调试时使用。(最终生成的镜像体积会大一些)tspi_3m-user:适用于Android14的产品,硬件适配泰山派3M-RK3576开发板,默认对应的dts文件是tspi-3m-rk3576.dts,编译的是user版本,生产时使用时使用。(最终生成的镜像体积比userdebug版本小一点)
3⃣. 一键开始编译:
bash
./build.sh -UKAup -J$(nproc)1
命令讲解
-U:编译 u-boot-K:编译 Kernel-A:编译 android-u:生成 update.img-p:编译 packages 并将包安装至镜像中-J:指定多核编译,$(nproc)会自动检测当前主机能使用的最大核心线程数量
其他命令:
-C:build kernel with Clang-o:build OTA package-v:build android with 'user' or 'userdebug'-d:huild kernel dts name-V:build version-S:spl-new
4⃣. 编译成功:
编译完成之后,可以在 rockdev/ 目录找到生成的 update.img 镜像之后,根据 成品镜像烧录🚀 章节中的方式烧录 update.img 镜像就可以看到系统启动了。