Android13 SDK 系统编译
说明
编译 Android13 系统,最低的主机电脑配置要求为:
32核的CPU32GB的内存400GB的存储空间
更低的配置我这里没有进行实验,低于这个配置可能会出现各种各样莫名奇妙的错误。
- 主机系统:
Ubuntu22.04
SDK说明
- Linux内核版本:
5.10 - 设备树:
tspi-rk3566-user-v10-linux - 内核配置文件:
rockchip_defconfigandroid-13.configrk356x.config
安装编译环境
shell
sudo apt-get update && sudo apt-get install -y git python make openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libgl1-mesa-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libxml2-utils xsltproc unzip python bc imagemagick ccache schedtool libssl-dev libncursesw5-dbg libncursesw5-dev libncurses5 libncursesw5 libncursesada5-dev libncurses5-dbg libncurses5-dev libncursesada-doc libncursesada5 libncurses-dev libncurses-gst libncurses5-dev clang1
编译镜像
进入SDK根目录下:
bash
liguoyi@wucaicheng-X99:~/EX_DISK_2T/tspi-1f-android13-sdk$ ls
Android.bp bootable BUILD dalvik device hardware kernel-5.10 mkcombinedroot packages prebuilts RKDocs sdk toolchain vendor
art bootstrap.bash build.sh developers external javaenv.sh libcore mkimage_ab.sh pdk restore_patches.sh rkst system tools WORKSPACE
bionic build cts development frameworks kernel libnativehelper mkimage.sh platform_testing rkbin RKTools test u-boot1
2
3
4
2
3
4
1⃣. 设置环境变量:
bash
source build/envsetup.sh1
作用说明
envsetup.sh 脚本会初始化 Android 编译环境,主要完成以下工作:
- 加载编译工具: 将 Android 编译所需的各种工具和函数加载到当前 Shell 环境中
- 设置环境变量: 配置
PATH、TARGET_PRODUCT... 等关键环境变量 - 提供便捷命令: 提供
lunch、mm... 等常用编译命令 - 初始化构建系统: 准备 Android 的构建系统框架
每次打开新的终端窗口进行编译时,都需要先执行这个命令来初始化编译环境。
2⃣. 选择配置文件:
bash
lunch rk3566_tspi_1f-userdebug1
lunch 项配置说明
rk3566_tspi_1f-userdebug:适用于 Android13 的产品,硬件适配泰山派-1F-金手指核心板+全功能底板,默认对应的dts文件是tspi-3m-rk3576.dts,编译的是 userdebug 版本,开发调试时使用。(最终生成的镜像体积会大一些)rk3566_tspi_1f-user:适用于 Android13 的产品,硬件适配泰山派-1F-金手指核心板+全功能底板,默认对应的 dts 文件是 tspi-rk3566-user-v10-linux.dts,编译的是 user 版本,生产时使用时使用。(最终生成的镜像体积比userdebug版本小一点)
3⃣. 一键开始编译:
bash
./build.sh -AUCKu -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
bash
liguoyi@wucaicheng-X99:~/EX_DISK_2T/tspi-1f-android13-sdk$ ./build.sh --help
./build.sh: illegal option -- -
USAGE: [-U] [-CK] [-A] [-p] [-o] [-u] [-v VERSION_NAME]
No ARGS means use default build option
WHERE: -U = build uboot
-C = build kernel with Clang
-K = build kernel
-A = build android
-p = will build packaging in IMAGE
-o = build OTA package
-u = build update.img
-v = build android with 'user' or 'userdebug'
-d = huild kernel dts name
-V = build version
-J = build jobs1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
4⃣. 编译成功:
编译完成之后,可以在 SDK 目录下的 rockdev/ 文件夹下找到生成的 update.img 镜像之后,根据 成品镜像烧录 章节中的方式烧录 update.img 镜像就可以看到系统启动了。