Android SDK 软件开发指南
Android SDK 开发环境搭建
略,待补充!
Android SDK 工程目录
略
Android SDK 下载编译
固件说明
完成编译后会生成如下文件:
rockdev/Image-rk3588_s/
├── 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-rk3588_s/
├── boot.img
├── dtbo.img
├── MiniLoaderAll.bin
├── misc.img
├── parameter.txt
├── recovery.img
├── super.img
├── uboot.img
└── vbmeta.img
也可以直接烧写 update.img
固件 | 说明 |
---|---|
boot.img | 包含ramdis、kernel、dtb |
boot-debug.img | 与boot.img的差别是user固件可以烧写这个boot.img进行root权限操作 |
dtbo.img | Device Tree Overlays 参考下面的dtbo章节说明 |
config.cfg | 烧写工具的配置文件,可以直接导入烧写工具显示需要烧写的选项 |
MiniLoaderAll.bin | 包含一级loader |
misc.img | 包含recovery-wipe开机标识信息,烧写后会进行recovery |
parameter.txt | 包含分区信息 |
pcba_small_misc.img | 包含pcba开机标识信息,烧写后会进入简易版pcba模式 |
pcba_whole_misc.img | 包含pcba开机标识信息,烧写后会进入完整版pcba模式 |
recovery.img | 包含recovery-ramdis、kernel、dtb |
super.img | 包含odm、product、vendor、system、system_ext分区分区内容 |
trust.img | 包含BL31、BL32 RK3566/RK3568没有生成这个固件,不需要烧写 |
uboot.img | 包含uboot固件 |
vbmeta.img | 包含avb校验信息,用于AVB校验 |
update.img | 包含以上需要烧写的img文件,可以用于工具直接烧写整个固件包 |
固件烧录
Android12的USB驱动DriverAssitant需要更新到V5.1.1版本,可以参考下面的工具章节进行更新。Windows烧写工具:(工具是时刻更新,请及时同步更新)
RKTools/windows/AndroidTool/AndroidTool_Release_v2.90
RKTools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool_v1.65
使用DTBO功能
Android 10.0及以上支持Device Tree Overlays功能,开发过程体现在需要烧写dtbo.img,用于多个产品间的兼容等。 修改方法:
找到(或指定)模板文件:
get_build_var PRODUCT_DTBO_TEMPLATE
例如:
PRODUCT_DTBO_TEMPLATE := $(LOCAL_PATH)/dt-overlay.in(device/rockchip/rk388/rk3588_s/dt-overlay.in)
添加或修改需要的节点: 例如:
/dts-v1/;
/plugin/;
&chosen {
bootargs_ext = "androidboot.boot_devices=${_boot_device}";
};
&firmware_android {
vbmeta {
status = "disabled";
};
fstab {
status = "disabled";
};
};
&reboot_mode {
mode-bootloader = <0x5242C309>;
mode-charge = <0x5242C30B>;
mode-fastboot = <0x5242C303>;
mode-loader = <0x5242C301>;
mode-normal = <0x5242C300>;
mode-recovery = <0x5242C303>;
};
注: 使用dtbo时一定要确保dts中存在alias,否则无法成功overlay
Android 常用配置
新建产品lunch
以RK3588平台新建rk3588s_s产品为例,分以下步骤:
修改device/rockchip/rk3588/AndroidProducts.mk增加rk3588s_s的lunch
--- a/AndroidProducts.mk
+++ b/AndroidProducts.mk
@@ -17,10 +17,14 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/rk3566_s/rk3588_s.mk \
+ $(LOCAL_DIR)/rk3588_s/rk3588s_s.mk \
COMMON_LUNCH_CHOICES := \
rk3588_s-userdebug \
rk3588_s-user \
+ rk3588s_s-userdebug \
+ rk3588s_s-user \
在device/rockchip/rk3588目录下新建rk3588s_s目录
参考device/rockchip/rk3588下已有的rk3588_s产品目录新建,可以先直接拷贝rk3588_s为rk3588s_s,然后将rk3588s_s目录下的所有 rk3588_s 字符改为 rk3588s_s
Andoroid DTS说明
产品新建dts可以根据下表的配置选择对应的dts作为参考。
Soc |
PMIC |
开发板类型 |
机型 |
DTS |
---|---|---|---|---|
RK3588 |
双PMIC: RK806 * 2 |
开发板 |
RK3588 EVB1官方开发板 |
rk3588-evb1-lp4-v10 |
RK3588 |
单PMIC: RK806+RK860 |
开发板 |
RK3588硬件参考设计对应的软件配置 |
rk3588-evb7-lp4-v10 |
RK3588 |
单PMIC: RK806+RK860 |
开发板 |
RK3588 EVB7-V11 官方开发板 |
rk3588-evb7-v11 |
RK3588S |
双PMIC: RK806 * 2 |
开发板 |
RK3588S EVB1 |
rk3588s-evb1-lp4x-v10 |
RK3588S |
单PMIC: RK806+RK860 |
平板 |
RK3588S平板硬件设计参考图对应的软件配置 |
rk3588s-tablet-v11 |
RK3588S |
双PMIC: RK806 * 2 |
平板 |
样机 |
rk3588s-tablet-v10 |
RK3588 |
单PMIC: RK860 |
box开发板 |
RK3588_NVR_DEMO1_LP4X |
rk3588-nvr-demo-v10-android |