宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

转自: http://www.Xue buyuan.com/631753.html

这篇文章的页面很好。 参考: http://LHC 180.blog.51cto.com/316940/757378

这篇报道的页面写得很好。 http://blog.csdn.net/mu 0206 mu/article/details/7399822

安卓操作系统介绍

OTA全名over the air,OTA升级是安卓系统提供的标准软件升级方式。

提供完全升级、增量升级模式,可以使用SD卡升级,也可以在中升级

网络升级。

在此,首先说明SD卡的升级。 网络升级的原理和SD卡差不多。 这里介绍一下这个过程。

在升级之前,准备一个升级包。 所有编译的软件包都名为update.zip

即使是增量升级

是完全的升级。

1 .生成完整的升级包。

./mk prj new

./mk prj otapackage

编译完成后,将在\out\target\product\prj\目录中生成prj-ota-eng.root.zip。 这是

zip将是我们升级的软件包。 我们将他改名为update.zip,并将其复制到SD卡的根目录下。

执行上述命令的同时

out\target\product\prj\obj\packaging\target _ files _ intermediates

在目录中生成名为prj-target_files-eng.root.zip的文件非常重要,我们将他另存为old.zip

这是我们制作增量包的基础文件。

2 .生成增量包。

到时候更新新代码。 同样执行。 /mk prj otapackage将在代码更改后生成完整的升级包。

同样,在out\target\product\prj\obj\packaging\target _ files _ intermediates \目录中生成

将prj-target_files-eng.root.zip重命名为new.zip,然后完成生成增量包的最后一步。

./build/tools/release tools/OTA _ from _ target _ files -运行iold.zip new.zip diff.zip并生成new.zip

您可以前往old.zip增量包diff.zip,同样将其命名为update.zip,然后将其复制到SD卡的更目录中进行增量

使用公式升级。

备注如果对:升级有特殊要求,例如,格式化数据分区、更新分区如uboot )需要修改脚本ota_from_target_files.py )

以上内容介绍了如何准备update.zip升级文件。 接下来介绍升级过程。 首先说明通常的启动过程

按power键打开电源时,uboot运行后将boot分区的内容boot.img文件加载到内存中,然后跳转到boot

linux内核的开始位置,运行linux内核代码,在内核末尾运行正常启动时的init.rc

文件,装载系统分区

在/system目录下,将data分区挂载到/data目录下。 启动虚拟机等相关服务。

要升级,必须在打开电源时按电源键和vol键,然后uboot在运行后加载恢复分区

的recovery.img文件发送到内存中。 现在,我们来看看recovery.img

这个镜像里有什么内容? 详细内容是我们

可以查看build/core/makefile文件。 在此文件中查找恢复图像。 接下来的内容主要是

这是将recovery.img打包的内容。 关于recovery.img的具体内容,简而言之,就是linux内核和将来\out\target\

product\prj\recovery目录打包在ramdisk的镜像集合中。 与通常启动的boot.img镜像相比,区别于boot.img

中的ramdisk镜像已用out\target\product\prj\root打包。 那个内核文件是同一个文件. recovery.img

镜像的ramdisk文件系统包含与数据升级如gzip和恢复)相关的lyy文件的重要程序。

计算机加载recovery.img并运行内核后,在bootable\recovery\etc\上运行恢复模式的init.rc文件

在目录下,与成功启动的init.rc文件进行比较。 recovery模式的init.rc只是创建了几个包含sd卡的新目录。

SD卡的挂载点。 启动了两个服务、一个事件和一个恢复的主菜单程序恢复。 此文件是用bootable\recovery\recovery.c编程的。 内容非常简单。 在恢复主界面上

解压缩update.zip文件,然后运行\ meta-INF\com\Google\Android\updater-script。 recovery解析脚本。

以下是这个脚本的摘录。

show _ progress 0.500000,0 );

格式yaffs2)、MTD )、system );

mountyaffs2)、MTD )、system )、)/system );

ack age _ extract _ dir “恢复”,“/系统”);

package_extract_dir’system ‘,’/system ‘ );

symlink 工具箱)、/system/lyy/cat )、)/system/lyy/chmod )、

‘/system/lyy/chown ‘,’/system/lyy/cmp ‘,’/system/lyy/date ‘,

.

‘/system/lyy/wipe ‘;

set _ perm _ recursive 0,0,0755,0644,’/system ‘;

.

show _ progress 0.200000,10 );

assert package _ extract _ file boot.img,)/tmp/boot.img )、

write_raw_image’/tmp/boot.img ‘,’ boot ‘ )、

delete/tmp/boot.img ) );

show _ progress 0.100000,0 );

unmount )/system );

上述脚本是系统的自动生成)

从脚本中可以看到,首先设置系统分区的格式,然后将updata.zip中系统目录的内容解压缩到系统中

分区.然后更改system分区下文件的权限。 最后,将boot.img镜像写回boot分区。

通过以上介绍,可以看到android的功能非常强大,在恢复模式下linux完全运行

起床了。 除了apk、jar不能执行以外,你可以做任何想做的事情。 在上例中,我们更新了系统分区

也可以更新和boot分区,如有必要,还可以更新uboot分区、徽标分区、格式数据分区等。

对于OTA的网络实现,实际上是检查网络上的更新,或者网络通知更新。 将更新包update.zip )添加到

本地下载,在用户选择下重新启动计算机并自动进入恢复模式,然后执行上述过程。

极速赛车五码稳赢技巧脚本。

以下是这个脚本的摘录。

show _ progress 0.500000,0 );

格式yaffs2)、MTD )、system );

mountyaffs2)、MTD )、system )、)/system );

ack age _ extract _ dir “恢复”,“/系统”);

package_extract_dir’system ‘,’/system ‘ );

symlink 工具箱)、/system/lyy/cat )、)/system/lyy/chmod )、

‘/system/lyy/chown ‘,’/system/lyy/cmp ‘,’/system/lyy/date ‘,

.

‘/system/lyy/wipe ‘;

set _ perm _ recursive 0,0,0755,0644,’/system ‘;

.

show _ progress 0.200000,10 );

assert package _ extract _ file boot.img,)/tmp/boot.img )、

write_raw_image’/tmp/boot.img ‘,’ boot ‘ )、

delete/tmp/boot.img ) );

show _ progress 0.100000,0 );

unmount )/system );

上述脚本是系统的自动生成)

从脚本中可以看到,首先设置系统分区的格式,然后将updata.zip中系统目录的内容解压缩到系统中

分区.然后更改system分区下文件的权限。 最后,将boot.img镜像写回boot分区。

通过以上介绍,可以看到android的功能非常强大,在恢复模式下linux完全运行

起床了。 除了apk、jar不能执行以外,你可以做任何想做的事情。 在上例中,我们更新了系统分区

也可以更新和boot分区,如有必要,还可以更新uboot分区、徽标分区、格式数据分区等。

对于OTA的网络实现,实际上是检查网络上的更新,或者网络通知更新。 将更新包update.zip )添加到

本地下载,在用户选择下重新启动计算机并自动进入恢复模式,然后执行上述过程。