福州瑞芯微电子股份有限公司
密级状态:绝密( ) 秘密( ) 内部( ) 公开(√ )
RK3288(W_Version)_ANDROID9.0_
MID_SDK 发布说明
(技术部,第二系统产品部)
文件状态:
当前版本:
V1.0.0
[ ] 正在修改
作 者:
陈锦森
[√] 正式发布
完成日期:
2019-04-10
审 核:
黄祖芳、吴良清、陈海燕
完成日期:
2019-04-10
福州瑞芯微电子股份有限公司
Fuzhou Rockchips Electronics Co . , Ltd
(版本所有,翻版必究)
福州瑞芯微电子股份有限公司
版 本 历 史
版本号
作者
修改日期
修改说明
备注
V1.0.0
陈锦森
2019.04.10 V1.0.0 正式版
福州瑞芯微电子股份有限公司
目 录
1 概述 ........................................................................................................ 1
2 主要支持功能 ............................................................................................. 1
3 SDK 获取说明 ............................................................................................. 1
3.1 获取 SDK ......................................................................................... 1
3.2 补充说明 ........................................................................................... 2
4 SDK 编译说明 ............................................................................................. 2
4.1 JDK 安装........................................................................................... 2
4.2 编译模式 ........................................................................................... 3
4.3 代码编译 ........................................................................................... 3
4.3.1 uboot 编译步骤 .......................................................................... 3
4.3.2 kernel 编译步骤 .......................................................................... 3
4.3.3 Android 编译及固件生成步骤 .......................................................... 3
4.3.4 自动化编译脚本 .......................................................................... 4
4.4 刷机说明 ........................................................................................... 5
附录 A 编译开发环境搭建 ................................................................................. 7
附录 B SSH 公钥操作说明 ............................................................................... 11
附录 B-1 SSH 公钥生成 ............................................................................ 11
附录 B-2 使用 key-chain 管理密钥 .............................................................. 11
附录 B-3 多台机器使用相同 ssh 公钥 ............................................................ 12
附录 B-4 一台机器切换不同 ssh 公钥 ............................................................ 13
附录 B-5 密钥权限管理 ............................................................................. 14
附录 B-6 Git 权限申请说明 ......................................................................... 14
福州瑞芯微电子股份有限公司
1 概述
本 SDK 基于谷歌 Android 9.0 最新系统,只适配瑞芯微 RK3288(W_Version),只适用于
RK3288(W_Version) MID 平台及基于其上开发的产品。
注: 本 SDK 软件包仅支持 RK3288(W_Version),不支持旧 RK3288 芯片。
2 主要支持功能
参数
模块名
数据通信
Wi-Fi、USB 以太网卡、USB、SDCARD
应用程序
Launcher3、APK 安装器、浏览器、计算器、日历、相机、闹钟、下载、
电子邮件、资源管理器、GMS 应用、音乐、录音、设置、视频播放器
3 SDK 获取说明
3.1 获取 SDK
SDK 通过瑞芯微代码服务器对外发布。其编译开发环境,参考附录 A 编译开发环境搭建。
客户向瑞芯微技术窗口申请 SDK,需同步提供 SSH 公钥进行服务器认证授权,获得授权后
即可同步代码。关于瑞芯微代码服务器 SSH 公钥授权,请参考附录 B SSH 公钥操作说明。
RK3288(W_Version)_ANDROID9.0_MID_SDK 下载地址如下:
$ repo init --repo-url=ssh://git@www.rockchip.com.cn:2222/repo-release/tools/
repo.git -u ssh://git@www.rockchip.com.cn:2222/Android_pie_stable/platform/rk3
288/manifests.git -m RK3288_Android_Pie_release.xml
如果需要包含 GMS 包的 SDK(需要开通权限),使用如下地址:
$ repo init --repo-url=ssh://git@www.rockchip.com.cn:2222/repo-release/tools/
repo.git -u ssh://git@www.rockchip.com.cn:2222/Android_pie_stable/platform/rk3
288/manifests.git -m RK3288_Android_Pie_Express_release.xml
1
福州瑞芯微电子股份有限公司
注: Repo 是 Google 用 Python 脚本写的调用 Git 的一个脚本,主要是用来下载、管理
Android 项目的软件仓库,其下载地址如下:
$ git clone ssh:// git@www.rockchip.com.cn:2222/repo-release/tools/repo
为方便客户快速获取 SDK 源码,瑞芯微技术窗口通常会提供对应版本的 SDK 初始压缩包。
以 RK3288(W_Version)_ANDROID9.0_MID_SDK_V1.0.0_20190410.tar.gz 为例,拷贝
到该初始化包后,通过如下命令可检出源码:
$ mkdir RK3288
$ tar zxvf RK3288(W_Version)_ANDROID9.0_MID_SDK_V1.0.0_20190410.tar.gz
-C RK3288
$ cd RK3288
$ .repo/repo/repo sync -l
$ .repo/repo/repo sync
3.2 补充说明
Android 9.0 SDK 已不再支持 UMS 功能,平台设备皆使用合并分区;
Android 9.0 SDK 已支持全盘加密功能;
Android 9.0 SDK 已支持 Verified boot 2.0 (avb)的功能。
4 SDK 编译说明
4.1 JDK 安装
Android 9.0 系统编译依赖于 JAVA 8。编译之前需安装 OpenJDK。
安装命令如下:
sudo apt-get install openjdk-8-jdk
配置 JAVA 环境变量,例如,安装路径为/usr/lib/jvm/java-8-openjdk-amd64,可在终
端执行如下命令配置环境变量:
$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
$ export PATH=$JAVA_HOME/bin:$PATH
2
福州瑞芯微电子股份有限公司
$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
4.2 编译模式
SDK 默认以 userdebug 模式编译。
使用 adb 时,需要先执行 adb root 使 shell 获取 root 权限,进而执行其它像 adb remount、
adb push 等操作,其中 adb remount 前要先 disable-verity,执行 adb disable-verity。
4.3 代码编译
4.3.1 uboot 编译步骤
$ cd u-boot
$ make clean
$ make mrproper
$ ./make.sh rk3288
编译完成,会生成 rk3288_loader_vx_xx_xxx.bin、trust.img、uboot.img 三个文件。
4.3.2 kernel 编译步骤
RK3288(W_Version) EVB 样机配置和编译命令如下:
$ cd kernel
$ make ARCH=arm rockchip_defconfig
$ make ARCH=arm rk3288-evb-android-rk808-edp-avb.img -j8
4.3.3 Android 编译及固件生成步骤
客户按实际编译环境配置好 JDK 环境变量后,按照以下步骤配置完后,执行 make 即可。
$ source build/envsetup.sh
$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
3
福州瑞芯微电子股份有限公司
6. aosp_x86_64-eng
7. rk3288-userdebug
8. rk3288-user
选择 rk3288-userdebug,输入对应序号 7。
$ make -j8
Android 编译成功后,执行 SDK 根目录下的 mkimage.sh 脚本生成固件,所有烧写所需的
镜像将都会拷贝于 rockdev/Image-rk3288xxx 目录。
rockdev/Image-rk3288xxx
├── boot.img
├── kernel.img
├── MiniLoaderAll.bin
├── vbmeta.img
├── dtbo.img
├── misc.img
├── oem.img
├── parameter.txt
├── pcba_small_misc.img
├── pcba_whole_misc.img
├── recovery.img
├── resource.img
├── system.img
├── trust.img
├── uboot.img
└── vendor.img
得到所有镜像文件后,为了方便烧写及量产,通常可手动将这些单独的镜像通过脚本打包成
为 update.img。
4.3.4 自动化编译脚本
SDK 中集成了全自动化编译脚本。方便固件编译及备份。
1) 该全自动化编译脚本原始文件存放于:
device/rockchip/RK3288/build.sh
2) 在 repo sync 的时候,通过 manifest 中的 copy 选项拷贝至工程根目录下:
4
福州瑞芯微电子股份有限公司
3) 修改 build.sh 脚本中的特定变量以编出对应产品固件。
KERNEL_DTS=rk3288-evb-android-rk808-avb
变量请按实际项目情况,对应修改:
KERNEL_DTS 变量指定编译 kernel 的产品板极配置;
Android 编译需要指定对应的 lunch 选项,请在执行 build.sh 之前执行 lunch 操作,确保
使用了正确的 lunch 选项,例如:
lunch rk3288-userdebug
4) 执行自动编译脚本:
./build.sh -U -K -A -u -p -v userdebug
该脚本会自动配置 JDK 环境变量,编译 u-boot,编译 kernel,编译 Android,继而生成固
件和版本信息,并打包成 update.img。
5) 脚本生成内容:
脚本会将编译生成的固件拷贝至: IMAGE/RK3288 *****_RELEASE_TEST/IMAGES 目
录下,具体路径以实际生成为准。每次编译都会新建目录保存,自动备份调试开发过程的固件版
本,并存放固件版本的各类信息。建议在每次大版本编译的时候 ,使用这个编译脚本生成固件,
里面包含了很多的版本信息,便于追查问题的时候定位代码的状态。
该目录下的 update.img 可直接用于 Android 开发工具及工厂烧写工具下载更新。
4.4 刷机说明
SDK 提供烧写工具,如下图所示,版本为 2.63。编译生成相应的固件后,进入 loader 模式,
即可进行刷机。对于已烧过其它固件的机器,请选择低格设备,擦除 idb,然后进行刷机。
5