【RK3588】Android系统OTA升级详细流程(一)

OTA(over the air)升级是Android系统提供的标准软件升级方式。它功能强大,提供了完全升级(完整包)、增量升级模式(差异包),既可以通过本地升级,也可以通过网络升级。

本文我们将编译三个版本的Android镜像,分别为V1.0.0版本、V1.0.1版本以及V1.0.2版本,其中V1.0.0版本作为基础版本直接烧录到RK3588开发板上;V1.0.0版本升级到V1.0.1版本采用完全升级的方式进行升级,测试OTA完全升级功能;V1.0.1版本升级到V1.0.2版本将采用增量升级方式进行升级,测试OTA增量升级功能。

测试平台:正点原子的RK3588开发板(ATK-DLRK3588)

1.编译V1.0.0版本镜像

在RK3588 Android SDK根目录下,打开device/rockchip/rk3588/device.mk文件,添加如下两行内容:

ro.product.ota.host = 192.168.6.67:8888 \
ro.product.version = 1.0.0 \

设置当前版本号为V1.0.0,同时将ro.product.ota.host修改为OTA升级服务器的IP地址(你需要将其修改为你的OTA升级服务器的IP地址),8888为端口号(Android系统OTA升级详细流程(三)这篇文章将会介绍如何搭建OTA升级服务器)。

在SDK根目录下执行如下命令编译U-Boot、Linux内核以及Android源码:

source build/envsetup.sh

lunch ATK_DLRK3588-userdebug

./build.sh -UCKAu -J20

编译完成后,会在rockdev/Image-ATK_DLRK3588/目录下生成所需镜像,如下所示:

将update.img烧录到开发板上,同时将update.img做个备份,以免在后续的编译过程中被覆盖。

2.编译V1.0.1版本完整升级包

打开device/rockchip/rk3588/device.mk文件,将当前版本号修改为V1.0.1,如下图所示:

修改完成后保存退出。执行如下命令编译OTA升级包:

source build/envsetup.sh

lunch ATK_DLRK3588-userdebug

./build.sh -UCKAuo -J20

编译完成后,会在rockdev/Image-ATK_DLRK3588/目录下生成OTA完整升级包ATK_DLRK3588-ota-eng.dengtao.zip(名字当中的“dengtao”对应Ubuntu当前用户,你如果用xxxx用户去编译,对应的文件名便是ATK_DLRK3588-ota-eng.xxxx.zip),如下图所示:

将ATK_DLRK3588-ota-eng.dengtao.zip重命名为update.zip即可拷贝到TF卡进行升级。

除此之外,rockdev/Image-ATK_DLRK3588/目录下生成的ATK_DLRK3588-target_files-eng.dengtao.zip将作为V1.0.1版本的基础素材包,制作V1.0.2版本增量升级包时将会使用到。将上面两个文件进行备份保存:

mv rockdev/Image-ATK_DLRK3588/ATK_DLRK3588-ota-eng.dengtao.zip ./update.zip

mv rockdev/Image-ATK_DLRK3588/ATK_DLRK3588-target_files-eng.dengtao.zip \

./target_files-v1.0.1.zip

3.编译V1.0.2版本增量升级包

打开device/rockchip/rk3588/device.mk文件,将当前版本号修改为V1.0.2,如下图所示:

修改完成后保存退出。执行如下命令编译OTA升级包:

source build/envsetup.sh

lunch ATK_DLRK3588-userdebug

./build.sh -UCKAuo -J20

编译完成后,会在rockdev/Image-ATK_DLRK3588/目录下生成V1.0.2版本的基础素材包ATK_DLRK3588-target_files-eng.dengtao.zip,如下图所示:

将该文件进行备份保存:

mv rockdev/Image-ATK_DLRK3588/ATK_DLRK3588-target_files-eng.dengtao.zip \

./target_files-v1.0.2.zip

接下来执行如下命令生成V1.0.1-V1.0.2的差异升级包(也就是增量升级包):

# 制作OTA差异包,需要安装python protobuf库,注意Ubuntu默认的python版本应为python2

sudo apt-get update

sudo apt-get install python3-pip python-protobuf

# 接着执行如下命令制作OTA差异包

./build/tools/releasetools/ota_from_target_files --block -v -i target_files-v1.0.1.zip \

-p out/host/linux-x86 -k build/target/product/security/testkey \

target_files-v1.0.2.zip rk3588_v1-v2.zip

命令参数说明:

ota_from_target_files

--block   使用block方式进行OTA升级,Android版本>=7.1时需要加上这个参数;

-v -i        用于比较的前一个target file;

-p           host主机编译环境;

-k           打包密钥

target_files-v1.0.2.zip   这是用于比较的后一个target file;

rk3588_v1-v2.zip           这是生成的OTA差异包。

命令执行完后,将会生成OTA差异包rk3588_v1-v2.zip,如下所示:

接下来请阅读:Android系统OTA升级详细流程(二)

  • 48
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值