FOTA
文章平均质量分 90
主要介绍下android升级流程,以及差分包,整包打包流程等
高桐@BILL
校园到职场,做过室内设计;WEB前后端,APP,嵌入式,LinuxAndroid,ChromiumOS,YunOS,智舱OS等开发。
行业遍及互联网,手机,IOT,汽车。
合作品牌如华为,中兴,OV,小米,三星,谷歌,联想,诺基亚,魅族,上汽,大众,腾讯,百度,网易,LG、HTC,沃达丰,AT&T,中移动,中国电信。
职业规划为操作系统方向,涉及不同框架、方案架构设计开发,可维可测,全维度的工程化;
目前主要涉及Android产品从App、FWK、HAL、Kernel、QNX全链路的垂直工程化,以及跨域产/研/测/项目/互联网产品的横向工程化;
展开
-
Android OTA升级包制作脚本详解(五,升级脚本updater-script的执行<1>)
写在前面: 首先当我们执行升级脚本updater-script的时候,就表示我们已经进入了升级安装状态。那么在我们就从实际的安装作为入口开始分析。也就是说我们从install.cpp中的install_package函数开始一步步来分析。 这里主要分析与脚本相关的部分,其他的请参考这位朋友的博文http://blog.chinaunix.net/uid-22028566-id-原创 2015-03-04 20:30:44 · 4652 阅读 · 0 评论 -
Android 5.x OTA Update官方文档(一,关于OTA 升级)
写在前面:Android设备可以接受和安装基于系统和应用的更新。在设备中有一个特殊recovery分区,在这个分区中有一套特殊的恢复系统可以将下载的更新包进行解压并应用到系统中去。本节主要描述了更新包的组织架构,并且概述了如何使用更新包打包工具制作系统升级的更新包。OTA 的存在是用来对潜在系统的升级,或者在系统分区安装只读(不可卸载)的应用程序,因此在升级过程中不会影响到用于已经安装翻译 2015-04-02 17:20:47 · 6520 阅读 · 1 评论 -
Android本地升级原理及流程(一,上层)
1.首先,我们了解一下进入进入系统更新的操作步骤;设置-->关于手机-->系统更新 ①设置界面进入系统更新的设置界面为设置模块下DeviceInfoSettings.java类,所对应preference为Device_info_settings.xml中如下: android:title="@string/system_update_settin原创 2014-12-12 17:42:19 · 8549 阅读 · 2 评论 -
Android 5.x OTA Update官方文档(五、Recovery系统下分区映射)
Recovery系统包含了很多钩子程序,因此OAT更新除了可以更新Android系统也可以更新设备的其他部分。(如基带、无线电处理器)。分区映射从Android2.3起,平台开始支持eMMC存储设备和ext4文件系统。它同样支持MTD设备和yaffs2文件系统。分区映射文件TARGET_RECOVERY_FSTAB一般会被recovery二进制程序和打包工具所使用,我们可以在Board翻译 2015-04-04 20:56:42 · 3662 阅读 · 0 评论 -
Android 5.x OTA Update官方文档(三、模块式OTA)
OTA是原始制造商用来远程升级系统分区的一种机制,在Android5.0的设备上我们可以使用模块式OTA来更新我们的设备。.Android5.x及其之后的版本都可以使用模块式OTA来保证每个设备使用相同的分区。模块式OTA把整个分区作为一个文件并且生成一个二进制补丁,而不是对比每个文件生成对应的很多个补丁。.Android4.4及其早起的版本使用文件式OTA的方式来确保设备包含相同的文件内翻译 2015-04-04 10:48:37 · 8980 阅读 · 1 评论 -
Android 5.x OTA Update官方文档(四、OTA更新包解读)
写在前面:系统创建通过“bootable/recovery/updater”创建一个二进制更新程序并在OTA包中使用进行更新的安装。更新包实际上也就是一个.zip格式的压缩文件(如我们之前提到过的ota_update.zip,incremental_ota_update.zip)。在这个压缩包中包含了一个可执行的二进制程序-EMTA-INF/com/google/android/updat翻译 2015-04-04 16:24:13 · 4989 阅读 · 0 评论 -
Android 5.x OTA Update官方文档(八、图说Recovery UI)
写在前面: 若能直译,不会意译,意译不成,为了选择不误导他人也会漏译无伤大雅的部分,英语是硬伤,如果有误译,请路过的朋友帮忙指正,以免误导更多的朋友。RecoveryUI除了之前提到的标题、选项菜单、提示性文字还有另外的一个重要的成员图片。在正常的更新过程中,用户看到的仅仅是图片(这里指的标准的OTA升级流程,如开机进入recovery模式、安装更新时进度条发生变化,最后再开翻译 2015-04-05 18:12:58 · 8279 阅读 · 0 评论 -
Android 5.x OTA Update官方文档(七、构建设备)
我们通过调用recovery_ui.cpp中make_device()函数来创建一个Device的实例,如下:class TardisDevice : public Device { // ... all the above methods ...};Device* make_device() { return new TardisDevice();}编译reco翻译 2015-04-05 11:13:42 · 2661 阅读 · 2 评论 -
Android OTA升级包制作脚本详解(三,打包)
这是在ota_from_target_files中mian函数中打包的主要流程语句:第一步:打包#抽象一个新的临时文件 temp_zip_file = tempfile.NamedTemporaryFile() #创建一个zip包用来进行打包 output_zip = zipfile.ZipFile(temp_zip_file, "w",原创 2015-02-27 10:04:31 · 11730 阅读 · 1 评论 -
Android 5.x OTA Update官方文档(二,OTA 打包工具ota_from_target_files)
写在前面:OTA打包工具ota_from_target_files(build/tools/releasetools/目录下)可以为我们创建两种类型的更新包:整包和增量包。打包工具一般来说会对我们称之为目标文件(target-files.zip)进行打包,该目标文件是有Android编译系统产生,通常可在终端下使用make otapackage生成。 一、整包升级一个整包包含了An翻译 2015-04-02 22:05:25 · 8658 阅读 · 0 评论 -
Android OTA升级包制作脚本详解(五,升级脚本updater-script的执行<2>)
写在前面: 从前面一篇博文我们知道recovery下安装更新的主要内容就是去执行更新脚本程序update-binary,而update-binary的主要任务就是去解析执行updater-script,那update-binary是如何去解释执行updater-script的呢。我们下面一起来学习一下。 源码位于android目录下/bootable/recovery/update原创 2015-03-05 11:09:31 · 3540 阅读 · 0 评论 -
Android 5.x OTA Update官方文档(十、版本签名)
在Android中,一般来说有两个地方使用加密签名。1.每个.apk文件必须进行签名。Android的程序包管理器通过两种方式使用签名:当一个应用程序被替换时,只有相同签名的应用才能操作旧版本的数据。两个应用如果签名一致,那么这两个应用可以共享User ID,翻译 2015-04-06 21:10:46 · 7210 阅读 · 0 评论 -
Android 5.x OTA Update官方文档(六、Recovery UI)
recovery界面 为了支持不同的硬件设备(物理按键、显示、LEDs等),你可以定制recovery界面进行可视化显示,并进行相关的操作。那么你可以通过重写bootable/recovery/defalust_device.cpp来为你的设备进行可视化定制。首先介绍如下:device/yoyodyne/tardis/recovery/recovery_ui.cpp#includ翻译 2015-04-05 10:35:14 · 4071 阅读 · 2 评论 -
Android OTA升级包制作脚本详解(四,生成升级脚本updater-script)
updater-script简介: updater-script是我们升级时所具体使用到的脚本文件,它主要用以控制升级流程的主要逻辑。具体位置位于更新包中/META-INFO/com/google/android/目录下,在我们制作升级包的时候产生。updater-script生成: 那么升级脚本updater-script是如何产生的呢,我们来看ota_from_target原创 2015-02-27 14:14:36 · 19878 阅读 · 2 评论 -
Android OTA升级包制作脚本详解(一,参数解析)
写在前面: “build/tools/releasetools/ota_from_target_files -u lk.bin -n target.zip update.zip”这是制作整包的命令,很显然这里支持lk升级。本系列博文主要对该命令的执行流程及原理进行一个系统的分析,涉及到/build/tools/releasetools/目录下多个模块如ota_from_target_原创 2015-02-11 15:07:43 · 7693 阅读 · 2 评论 -
Android OTA升级包制作脚本详解(二,解压缩)
第一步:解压缩(ota_from_target_files) print "unzipping target target-files..." OPTIONS.input_tmp, input_zip = common.UnzipTemp(args[0])上面的代码是开始进行解压缩的入口def UnzipTemp(filename, pattern=None): """Unzip原创 2015-02-12 21:57:00 · 6775 阅读 · 1 评论