android 正在升级包,Android OTA 升级(一): 编译升级包

RECOVERY$ tree -L 2

├── kernel

├── ramdisk

└── RAMDISK

├── advanced_meta_init.rc

├── data

├── default.prop

├── dev

├── etc

├── init

├── init.factory.rc

├── init.goldfish.rc

├── init.mt6516.rc

├── init.rc

├── meta_init.rc

├── proc

├── res

├── sbin

├── sys

├── system

└── tmp

L1109-1125, 填充 FACTORY 子目录的内容, 没有用到,包括:kernel 的image

L1126-1143, 填充 BOOT子目录的内容,用于生成boot.img。和 RECOVERY目录类似,包括:kernel 的image,根文件系统的 image,根文件系统的内容:

BOOT$ tree -L 2

.

├── kernel

├── ramdisk

└── RAMDISK

├── advanced_meta_init.rc

├── data

├── default.prop

├── dev

├── init

├── init.factory.rc

├── init.goldfish.rc

├── init.mt6516.rc

├── init.rc

├── meta_init.rc

├── proc

├── res -> /system/res

├── sbin

├── sys

└── system

L1144-1146, 填充 RADIO子目录的内容, 没有用到。

L1147-1149, 填充 SYSTEM子目录的内容。 这是升级的主要内容。

L1150-1152, 填充 DATA子目录的内容。缺省没有用到。

L1153-1156, 填充 OTA/bin子目录的内容,这是OTA升级自己使用的程序。后面会遇到。

OTA/bin$ tree

.

├── applypatch

├── applypatch_static

├── check_prereq

└── updater

L1159-1169, 填充 META子目录的内容,这里包含了OTA脚本需要的一些附加信息。

L1170-1171,将所有内容打包。供下一阶段使用。

L1173-1174,生成 META/filesystem_config.txt 并将其加入到 zip 包中。该文件保存了 system 目录下各目录、文件的权限及 owner.

$ head META/filesystem_config.txt

system 0 0 755

system/usr 0 0 755

system/usr/srec 0 0 755

system/usr/srec/config 0 0 755

system/usr/srec/config/en.us 0 0 755

system/usr/srec/config/en.us/grammars 0 0 755

system/usr/srec/config/en.us/grammars/phone_type_choice.g2g 0 0 644

system/usr/srec/config/en.us/grammars/VoiceDialer.g2g 0 0 644

system/usr/srec/config/en.us/grammars/boolean.g2g 0 0 644

system/usr/srec/config/en.us/g2p 0 0 755

这里,目录由 zipinfo –l 提供, 而权限则由 fs_config 设定。此程序的源码位于:build/tools/fs_config, 其中fs_config 包含了一个头文件:

54 #include "private/android_filesystem_config.h"

这个文件(system/core/include/private/android_filesystem_config.h)以hardcoding 的方式设定了 system 下各目录、文件的权限、属主。比如:

152     { 00440, AID_ROOT,      AID_SHELL,     "system/etc/init.goldfish.rc" },

153     { 00550, AID_ROOT,      AID_SHELL,     "system/etc/init.goldfish.sh" },

154     { 00440, AID_ROOT,      AID_SHELL,     "system/etc/init.trout.rc" },

155     { 00550, AID_ROOT,      AID_SHELL,     "system/etc/init.ril" },

如果需要升级其它内容,比如 bootloader, 则可以在这里加入。2) 步骤二编译脚本如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值