移动叔叔

标题: 基础教程贴——安卓系统刷机 浅解!!!变砖的基本成因及刷机浅谈 [打印本页]

作者: muscle    时间: 2011-3-27 13:22
标题: 基础教程贴——安卓系统刷机 浅解!!!变砖的基本成因及刷机浅谈
安卓系统 浅谈,由此可以大概分析刷机变砖的形成
*****************系统的基本启动过程************************
本帖隐藏的内容需要回复才可以浏览(2周后自动解除隐藏)#1,整个系统的引导是从boot.bin开始的

#2,boot完成必要的初始化以后,通过pit信息找到sbl分区

#3,sbl在引导过程中,检测是否存在满足要求的按键组合,如果满足进入download模式(俗称挖煤)的条件,就进入download,如果是进入recovery模式的按键组合,就传递参数给kernel,也就是zImage分区,进入recovery模式,如果都没有,就传递参数给kernel,正常启动系统。


*****************变砖的基本成因***************************


*****************Recovery模式刷机分析***************************

我们的机器还支持在recovery模式下刷机,由于官方的recovery程序功能有限,现在流行使用ClockworkMod Recovery,新版的Cognition 就是用这个刷的。
至于和官方的版本有什么功能增强,我没有查到相关资料,望高人补充。
这个方式下刷机使用的rom格式是一个zip包,在META-INF\com\google\android目录下有一个脚本update-script,recovery程序如何处理zip,是由这个脚本决定的。
现将Cog包里的脚本摘几句看看
format SYSTEM:
format CACHE:
format DATA:
//格式化三个分区
delete SDCARD:update.zip
copy_dir PACKAGE:sdcard SDCARD://sdcard目录下文件复制到sdcard

删除了sdcard上两个目录
delete_recursive SDCARD:Voodoo
delete_recursive SDCARD:Android

copy_dir PACKAGE:system SYSTEM://system目录下所有内容拷贝到system分区
copy_dir PACKAGE:updates TMP:/updates
format SYSTEM:
…….
…….        
//设置文件权限
set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp
set_perm_recursive 0 0 0755 0755 SYSTEM:etc/init.d
set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluetooth
set_perm 0 0 0755 SYSTEM:etc/bluetooth
set_perm 3002 3002 0444 SYSTEM:etc/bluetooth/blacklist.conf
set_perm 0 0 755 TMP:/updates/bmlwrite

run_program /system/bin/busybox --install -s /system/xbin
//用bmlwrite直接克隆分区,其实和odin刷机一个道理。
run_program /tmp/updates/bmlwrite /tmp/updates/modem.bin /dev/block/bml12
run_program /tmp/updates/bmlwrite /tmp/updates/Sbl.bin /dev/block/bml4
run_program /tmp/updates/bmlwrite /tmp/updates/zImage /dev/block/bml7

注意上面的那个Sbl.bin,很多人变砖就是因为这个!原因前面已经说了。


此文为网友发过来的WORD文档,我略做修改,具体来源不明,在此发表感谢作者




欢迎光临 移动叔叔 (http://bbs.ydss.cn/) Powered by Discuz! X3.2