首页 > 其他分享 >【RK3588】Android系统OTA升级详细流程(一)

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

时间:2024-06-23 13:59:28浏览次数:3  
标签:target zip RK3588 OTA ATK V1.0 DLRK3588 Android

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升级详细流程(二)

标签:target,zip,RK3588,OTA,ATK,V1.0,DLRK3588,Android
From: https://blog.csdn.net/weixin_40768997/article/details/139889866

相关文章

  • Android 事件分发机制详解(下)
    2.3View事件分发机制从上面ViewGroup事件分发机制知道,View事件分发机制从dispatchTouchEvent()开始源码分析/***源码分析:View.dispatchTouchEvent()*/publicbooleandispatchTouchEvent(MotionEventevent){if((mViewFlags&ENABLED_MASK)......
  • Android 14.0 Launcher3仿ios长按app图标实现拖拽抖动动画
    1.概述在14.0的系统rom定制化开发中,在对系统原生Launcher3的定制需求中,也有好多功能定制的,在ios等电子产品中的一些好用的功能,也是可以被拿来借用的,所以在最近的产品开发需求中,需求要求模仿ios的功能实现长按app图标实现抖动动画,接下来看如何分析该功能的实现.效果图如图:......
  • Android Studio 实现简单倒计时
    MainActivity代码:packagecom.example.time;importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;importandroid.os.CountDownTimer;importandroid.widget.TextView;publicclassMainActivityextendsAppCompatActivity{privateTex......
  • Android无障碍自动化结合opencv实现支付宝能量自动收集
    Android无障碍服务可以操作元素,手势模拟,实现基本的控制。opencv可以进行图像识别。两者结合在一起即可实现支付宝能量自动收集。opencv用于识别能量,无障碍服务用于模拟手势,即点击能量。当然这两者结合不单单只能实现这些,还能做很多自动化的程序,如芭芭农场自动施肥、蚂蚁庄园等等......
  • 桌面时钟APP的简单开发(Android开发)
    开发目的想打造个性化的私人闹钟APP,放到桌面上提示时间,但是感觉应用商店中的相关软件不好用,有些有广告,就难受。而且没有办法DIY自己想要的时钟样式。所以,开搞!(初学者入门,慢慢摸索呗)开发环境1、windows操作系统2、Android Studio20243、JDK1.8(已配置的jdk环境,因为Andro......
  • Android面试题:App性能优化之Java和Kotlin常见的数据结构
    本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点Java常见数据结构特点ArrayListArrayList底层是基于数组实现add、删除元素需要进行元素位移耗性能,但查找和修改块适合不需要频繁添加删除的链表LinkedList是双......
  • Rockchip RK3588 - Rockchip Linux Recovery升级
    ----------------------------------------------------------------------------------------------------------------------------开发板:ArmSoM-Sige7开发板eMMC:64GBLPDDR4:8GB显示屏:15.6英寸HDMI接口显示屏u-boot:2017.09linux:5.10-------------------------------......
  • Android14之java层:增加系统API(二百二十)
    简介:CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】......
  • Android 9.0 mtp模式下只显示指定文件夹功能实现
    1.前言在android9.0的系统定制化rom开发中,对于usb作为otg连接电脑时,在mtp模式下会作为一个存储器在电脑端显示,作为电脑的一个盘符,来显示设备的内部存储的文件,所以说如果要对设备内部的资料做保密处理的时候,需要在mtp模式下不显示某些文件夹,接下来就分析下相关源码来实现功......
  • Android开发系列(五)Jetpack Compose之Icon & Image
      Icon是用于在界面上显示矢量图标的组件。它提供了很多内置的矢量图标,也支持自定义图标。要使用Icon组件,可以通过指定图标资源的名称或引用来创建一个Icon对象。例如,使用Icons.Default.Home来创建一个默认风格的首页图标。可以通过设置图标的大小、颜色、和点击事件等属性......