我的眼睛看世界

2014年01月28日

修改系统文件后不重刷机安装ota

Filed under: 科普 — gcd0318 @ 02:45

一般情况下,android设备无论是否解锁是否刷过机是否更改了系统文件,只要系统主体架构还在,就能收到ota(当然每个设备的提醒时间不同,这取决于厂商的批次),下载完成后ota失败,往往因为修改了recovery或者boot,或者修改了系统文件,最常见的原因就是这两个。刷过recovery或者boot其实很好办,绝大多数ota包里都带有recovery和boot,只要解出来重刷一次就行,而更改过系统文件就比较麻烦,这个麻烦当然不是说难以恢复,大不了找个官方ruu或者网友备份直接刷就可以,但是这可能导致丢失个人的配置数据,麻烦也就麻烦在这
如果删了系统文件,比如/system/app的应用或者/system/lib的包,就会导致无法ota,更新期间会出现红三角叹号,然后死机,只能重启。刷机是最坏的选择,丢数据太麻烦了,还要安装所有的应用,而且其实根本也不需要
ota的包里有META-INF/com,下面有android和google/android,下面有更新的脚本,可以看到ota更新的过程就是先check一些系统文件,然后写入新文件,而且每check一个文件,刷进一个文件,都会set_progress进度条的状态。了解了这个过程,对应的解决方案也就是现成的了
解决的手段当然不是把被删掉的文件从check列表里删掉,因为ota包是要rsa签名的,所以只能保留ota,而是要对照脚本,找回丢掉的文件。这看似简单,只要找个老版本的刷机包解开就行了,其实也不然,ota脚本check的时候会计算文件的sha1,所以必须找对版本,apply_patch_check有三个参数,第一个是文件路径和文件名,第三个就是旧版本文件的sha1,一定要保证都是对的
余下的,就简单了,只要把文件复制回去即可。这肯定不是问题,虽然都是/system下的文件,但是……对root了的机器来说这都不叫事,否则当初怎么删掉的?呵呵
ota之后,再root一下,这就波澜不惊了。所以说,我一直建议,对于不喜欢的app,除非空间实在不足,只要取消权限禁用了就可以了,免得ota的时候麻烦,就算要删,也最好先备份

Advertisements

发表评论 »

还没有评论。

RSS feed for comments on this post. TrackBack URI

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: