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,用于多个产品间的兼容等。 修改方法:

  1. 找到(或指定)模板文件:

get_build_var PRODUCT_DTBO_TEMPLATE

例如:

PRODUCT_DTBO_TEMPLATE := $(LOCAL_PATH)/dt-overlay.in(device/rockchip/rk388/rk3588_s/dt-overlay.in)
  1. 添加或修改需要的节点: 例如:

/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产品为例,分以下步骤:

  1. 修改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 \
  1. 在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

Android 开发文档索引