宝塔服务器面板,一键全能部署及管理,送你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 )添加到
本地下载,在用户选择下重新启动计算机并自动进入恢复模式,然后执行上述过程。