RK3576 Android 14.0 SDK开发指南(第一集)
RK3576 Android 14.0 SDK代码编译
SDK下载到本地后大概70多个G
下载后要做个校验
解压后内核源码
kernel代码路径说明
Android14支持6.1 版本的kernel,kernel源码在工程中kernel-6.1目录下
Lunch项说明
一键编译命令
./build.sh -UKAupSoc
RK3576 SDK默认没有开启GKI,如需要开启GKI功能可以按如下修改:(以RK3576平台为例说明)
BOARD_BUILD_GKI := true后会自动开启AB功能。
关于GKI的kernel编译、ko更新等说明可以参考文档
RKDocs/android/《Rockchip_Developer_Guide_Android14_GKI_CN》
其他编译说明
Android14.0不能直接烧写kernel.img和resource.img
( 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 jobs
------------大家可以按需使用,不用记录uboot/kernel编译命令了------------------
============================================================
请注意使用一键编译命令之前需要设置环境变量,选择好自己需要编译的平台,举例:
source build/envsetup.sh
lunch rk3576_u-userdebug
============================================================
单独编译kernel生成boot.img
编译的原理:在kernel目录下将编译生成的 kernel.img 和 resource.img 替换到旧的 boot.img 中。
以 RK3576 样机为例,编译时替换对应的boot.img及dts:
其中 BOOT_IMG=../rockdev/Image-rk3576_u/boot.img 这里指定的是旧的boot.img的路径,命令如
下:
导clang到环境
编译后可以直接烧写kernel-6.1目录下的boot.img到机器的boot位置,烧写时请先加载分区表
(parameter.txt),以免烧写位置错误。
固件烧写
固件烧写工具
Android14的USB驱动DriverAssitant需要更新到V5.1.1版本,可以参考下面的工具章节进行更新。
Windows烧写工具:(工具是时刻更新,请及时同步更新)
RK3576平台windows固件烧写工具必现使用V3.28及以上版本
固件说明
完整编译后会生成如下文件:
rockdev/Image-rk3576_u/
├── boot-debug.img
├── boot.img
├── config.cfg
├── dtbo.img
├── MiniLoaderAll.bin
├── misc.img
├── parameter.txt
├── PCBa_small_misc.img
├── pcba_whole_misc.img
├── recovery.img
├── resource.img
├── super.img
├── uboot.img
├── update.img
└── vbmeta.img
工具烧写如下文件即可:
rockdev/Image-rk3576_u/
├── boot.img
├── dtbo.img
├── MiniLoaderAll.bin
├── misc.img
├── parameter.txt
├── recovery.img
├── super.img
├── uboot.img
└── vbmeta.img
也可以直接烧写 update.img
固件说明
以上是针对RK3576内核开发的详细介绍,
下面我们针对新创云RK3576_Dev_Board开发板做了内核脚本改写,使得编译和调式变得更方便,具体如下:
#单编译kernel
cd kernel-6.1
export PATH=../prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH
alias msk='make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1'
msk ARCH=arm64 rockchip_defconfig android-14.config rk3576.config && msk ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3576_u/boot.img rk3576-evb1-v10.img -j32
总结以上是RK3576 Android 14.0 SDK代码编译及内核开发的关键流程说明,核心要点如下:
- 环境准备
- 设置编译环境变量(source build/envsetup.sh && lunch rk3576_u-userdebug)。
- 配置编译工具链(如Clang路径导出)。
- 一键编译
- 使用./build.sh -UKAupSoc完成全编译,关键参数按需调整(如-U=UBoot,-K=Kernel)。
- 注意:Android 14.0的kernel.img和resource.img需通过boot.img间接更新,不能直接烧写。
- 单独编译Kernel生成boot.img
- 在kernel-6.1目录下,通过自定义脚本msk编译并替换原有boot.img的kernel.img和resource.img,需指定旧版boot.img路径。
- 固件烧写
- 推荐使用V3.28+版本的Windows烧写工具,并搭配更新后的USB驱动(DriverAssitant V5.1.1)。
- 烧写文件需包含boot.img、dtbo.img、MiniLoaderAll.bin等核心镜像(可打包为update.img一键烧写)。
- 调试优化
- 新创云开发板已改写内核脚本(如多核编译-j32、自定义配置文件),提升编译效率及兼容性。
关键提示:
- 如需启用GKI(通用内核镜像),需设置BOARD_BUILD_GKI := true,详细方案参考《Rockchip_Developer_Guide_Android14_GKI_CN》。
- 编译时需根据需求添加参数(如调试模式v=userdebug、分区表parameter.txt)。
建议首次编译前完整阅读官方文档,确保环境与配置无误。