Click here to Close
 
打印

[原创] 对iPhone破解现状的综述和未来的展望(附ZiPhone 2.5降级警告)

对iPhone破解现状的综述和未来的展望(附ZiPhone 2.5降级警告)

众所周知,iPhone的破解世界在十一月时因为苹果公司固件1.1.2的发布,一时间阴云密布,山雨欲来;又因为两周前George Hotz(网名Geohot)发布的1.1.2/1.1.3软件破解和Zibri的ZiPhone,晴空万里。那么iPhone破解的现状如何,将来的发展形势又怎么样呢?我发现很多weiphone论坛里有的iPhone朋友有误解,我在这篇原创文章中说说我自己仔细研究后的观点,希望对准备将来购买iPhone的朋友有所帮助。鉴于这篇文章是对大局的综述和展望,我就不详细解释破解的细节,这方面的细节很多其他weiphone论坛里的帖子都讨论过了。

iPhone的破解分为三部分:激活(activate),越狱(jailbreak),和软件破解(software unlock)。激活是为了可以开始使用iPhone,越狱是为了可以安装第三方软件,软件破解是为了可以使用AT&T之外的移动运行商,比如国内的中国移动,或者美国的T-mobile。这三部分中,软件破解是最难的,但也是最必要的。

为什么软件破解很难呢?iPhone破解需要考虑的软件分三部分。

Bootloader(也就是常说的BL)是开机后第一个运行的程序,一旦破坏就无法恢复,是很基本又修改风险最高的程序。修改Bootloader的风险虽高,回报也非常高:如果能够改写bootloader,那么不但可以软件破解,而且可以使得该破解适用于将来任何的固件和基带(baseband)的升级,不需要再重新破解。因为iPhone固件升级的速度很快,这种稳定的破解是很有价值的。现在iPhone在固件1.1.2之前的Bootloader是3.9版,之后是4.6版。3.9版有一些漏洞,4.6版补上了3.9版的漏洞,但又有一个新的漏洞,Geohot正是利用这个漏洞最近实现了对Baseband的降级和软件破解,也是利用了同一个漏洞实现了对Bootloader的降级。

Baseband(也就是常说的基带或BB)是用来控制手机通讯的程序,控制电话通讯,WiFi无线通讯,还有蓝牙通讯。修改Baseband是没有风险的,因为可以在任何时候方便的进入DFU模式用iTunes来恢复最初的版本。但是官方的4.6版bootloader不允许修改baseband,只允许升级,使得去年十一月后的破解世界阴云密布。两周前Geohot破天荒的在十二小时之内找到了4.6版bootloader的漏洞,成功把Baseband从4.13_03_G版本降级至4.02_13_G版本,实现软件破解,使得最近的ZiPhone成为可能。在此之前,连Geohot本人都发表了4.6版Bootloader没有希望软件破解的悲观论调,可见其中的难度。

Firmware(也就是常说的固件)包括苹果官方运行于iPhone之上的操作系统。它的版本也就是平常讨论时常说的1.1.2,1.1.3,或者1.1.4。激活和越狱是对固件的修改,因为固件很复杂,也很难没有漏洞,激活和越狱就相对简单一些。但是因为苹果公司的OS X用的是BSD UNIX操作系统,几乎完美,即使这样相对简单的工作也会越来越难。时下最常用的ZiPhone,是利用一个固件的漏洞(叫做ramdisk exploit)来完成激活和越狱。这个漏洞是pumpkin和bgm两个人共同发现的,又由Zibri封装到ZiPhone之中,是现在最好也是最快的激活越狱方法,因为这个漏洞存在于包括1.1.4的所有固件版本里,可以用同样方法成功对所有的iPhone进行激活越狱。

因为Geohot的软件破解和Zibri的激活越狱都集成在ZiPhone中,随着新版的发布,ZiPhone的用户界面不断更新成熟,使用的问题也不断解决,我预计将来ZiPhone将是Bootloader 3.9版和4.6版iPhone的最好破解集成平台和最方便最权威的工具。

但是,ZiPhone中的一个选项是降级Bootloader,它是借用了Geohot发布的叫做gbootloader的源码,利用同样一个Bootloader 4.6的漏洞对Bootloader本身成功改写。但是,Booloader改写的风险是高的,因为一旦改写错误,iPhone就无法修复了。即使降级Bootloader成功(至3.9版),因为gbootloader只能从BL 4.6开始改bootloader的版本,一但降到3.9之后,就再也不能软件升级至4.6或任何其他版本了。唯一的升级办法是硬件升级。

为什么不推荐降级bootloader至3.9版呢?Geohot 正在改写BL 4.6 并加入对软件破解的支持(BL 4.6_GEOMOD),一旦出来将成为软件破解的里程碑。现在最好的策略是在BL 4.6等待BL 4.6_GEOMOD的发布。因为Bootloader的特殊和重要地位(开机第一个运行的汇编程序),这样在Bootloader的软件破解可以在不改Baseband的情况下彻底破解iPhone任何将来的Baseband 和Firmware的升级版本。因为苹果公司已经意识到4.6版的漏洞,我预计在不久的将来,所有新生产的iPhone将会预装新版的Bootloader,使得BL 4.6 的Geohot 破解程序在新版Bootloader失效。因为官方iTunes在升级时是绝对不会升级Bootloader的版本的,将来BL 4.6将成为iPhone 所有Bootloader版本中最有价值的版本,因为它不但可以用来修改Baseband,还可以用来修改Bootloader本身,这是BL 3.9所不具备的优势。

降级至3.9 BL的唯一意义是在固件1.1.3下可以升级04.03.13_G Baseband。 用4.6BL你只能升到最多Firmware 1.1.3 和 04.02.13_G Baseband(Geohot的unlock)。因为只有04.03.13_G版的Baseband 支持Google Map Locate Me的新功能,降至3.9 BL 才可使用这些功能。如果你对Google Map Locate Me不感兴趣的话,维持4.6 BL的好处是显而易见的。

因为未来的iPhone一定会升级Bootloader,我认为现在正在观望等待的用户可以考虑在升级前购买一部Bootloader为4.6版的iPhone。因为Bootloader的漏洞十分难找,即使象Geohot这样的破解大师也会最终放弃。苹果公司的赢面很大,到时候4.6 BL的iPhone的价格将会因为市场的供需关系不平衡而水涨船高,就好象BL 3.9的iPhone价格在Geohot的破解发布之前在ebay上涨到700美元的原因。因为BL 4.6的对baseband和bootloader可以同时改写的特殊地位,它的价值只会更高。

这就象当天气再度阴云密布的时候,人们都会期盼晴空万里的心情一样。

Ulysses

后记 1:

ZiPhone 2.5版(包括GUI 的Do It All按钮)开始实现了-Z Y 和 -Z N两个“傻瓜”选项。关键问题在于,这两个选项的任何一个都会对Bootloader降级至3.9版。这使得新手不知不觉中降级的概率大大增加。不希望降级的用户请谨慎使用-a -j -u,而不是新加入的-Z 选项。新手建议使用2.3版。懂C语言的朋友请参考以下节选自ZiPhone的源代码:

if (argv[i+1][0]=='Y') {
Z=1;
return true;
} else if (argv[i+1][0]=='N') {
Z=2;
return true;

if (Z==1) {
    unlock=true;
    jailbreak=true;
    activate=true;
    chimei=false;
    ierase=false;
    bl39=true;
    dfu=false;
  }

else if (Z==2) {
    unlock=true;
    jailbreak=true;
    activate=false;
    chimei=false;
    ierase=false;
    bl39=true;
    dfu=false;
  }

后记 2: 关于降级3.9版bootloader后没有手机信号或WiFi的问题

ZiPhone 2.5版降级3.9版bootloader之后,会同时将baseband升级成用Anysim 1.4破解过的4.04_05_G版本。问题在于,有很多国内和国外的用户反映,这个版本有可能会产生没有手机信号(所谓的No Service)或者没有WiFi(图标变成灰色)的问题。因为iTunes在恢复时不会覆盖也不会降级修改过的 4.04_05_G 的baseband版本,这个问题非常棘手,极难解决。唯一可能有用的办法是用ZiPhone先清除(erase)baseband,再利用iTunes降级至1.1.2版的固件,再用ZiPhone直接破解1.1.2固件,这时ZiPhone会使用4.02_13_G的Anysim 1.21u破解过版本。希望对已经降级bootloader又没有手机或WiFi信号的朋友有一定帮助。

后记 3:iPhone Dev/Elite Team发布3.9-fakeblank Bootloader (零八年三月三日)

iPhone Dev/Elite Team昨天最新发布了一个修改过的可以软件升级的3.9 bootloader版本。既然是3.9的bootloader,它的功能和以前最初原装的3.9 bootloader是一样的,一共只改动了几十个字节。那么,这个稍微改动过的3.9 bootloader意义何在呢?

显然,如本文正文所述,如果bootloader降级成为原装的3.9 bootloader版本,是无法软件升级到4.6或任何其他将来的bootloader版本的。这就是原装3.9 bootloader版本的不可逆性。

昨天发布的改动过的3.9版,叫做3.9-fakeblank Bootloader。它的bootrom位置(四个字节)是空的。它的重大意义在于它可以用geohot 的 gbootloader 软件升级任何其他bootloader,包括原装的4.6 bootloader。因为它同时具备3.9 bootloader 和 4.6 bootloader的好处,我预计将来它成熟之后,可能会进入新版的ZiPhone或iNdependence (Mac),成为新一代的bootloader选择。已经有人测试用gbootloader升级3.9-fakeblank至4.6完全成功。

已经降级成为原装3.9版bootloader的朋友,对不起,您的iPhone不能软件升级bootloader。现在来说没有任何区别,如果将来iPhone Dev/Elite Team或geohot成功发布新的bootloader破解iPhone,那么只有4.6 bootloader或3.9-fakeblank bootloader可以软件改写bootloader。

还没有降级成原装3.9版bootloader的朋友,我建议使用iPlus或iphone-tools等工具降级至3.9-fakeblank bootloader,您的bootloader即可随时软件改写。不建议使用ZiPhone 2.5。以下我排序一下现在可行的组合:


3.9 Fakeblank Bootloader + 4.04.05_G baseband (iPlus 1.2, iphone-tools) 最好
4.6 Original Bootloader + 4.02.13_G  baseband (iNdependence 1.4 Beta 5) 其次
3.9 Original Bootloader + 4.04.05_G baseband (ZiPhone 2.5) 不推荐,无法改变bootloader

看得懂英文的朋友,请详见:

http://acujo.com/bootloaders/the-39-bootloader-with-the-bootrom-locations-blank/
http://www.iphone-dev.org/sgold_bootrom:fakeblank
this hackint0sh.org thread




[ 本帖最后由 Ulysses 于 2008-3-10 00:09 编辑 ]
本帖最近评分记录
  • rozx 人气 +1 精品文章~很不错哦~支持!! 2008-2-24 13:59
  • Nicholas 经验 +18 原创内容 2008-2-23 12:11
  • Nicholas 人气 +18 原创内容 2008-2-23 12:11
  • Nicholas we券 +18 原创内容 2008-2-23 12:11
  • alexair 人气 +1 好久没看到这么有价值的文章了 ... 2008-2-22 04:20
  • horsepower 人气 +3 精品文章 2008-2-22 01:22
  • tch888 人气 +3 值得敬佩的技术文章 2008-2-20 15:08
  • azaman 人气 +3 精品文章 2008-2-19 13:24

TOP

虽然看不太懂,还是支持楼主发这样有技术含量的文章

TOP

写的不错,估计现在iphone跌价只是暂时现象,1.1.4出来后估计有时一轮新的涨价。老乔和黑客之间的角力啊~~

TOP

说了半天好像就想告诉大家4.6 BL的iPhone很好很牛比...大家快点抢以后就没了~~~js可以高价抛

[ 本帖最后由 TOM 于 2008-2-18 22:44 编辑 ]

TOP

就如PSP一样,未来其实是光明的!

TOP

好文章!收藏!看多两遍,顺便说下,fit输入法的确好用

TOP

顶楼主的技术贴,讲得比较清楚了。

按照Apple一贯的firmware升级安排(两个月升级一次),3/15左右会有新版firmware。希望只是升级firmware,不升级bootloader

[ 本帖最后由 shellcode 于 2008-2-18 22:50 编辑 ]

TOP

佛说:我不着急
iPhone 8G 1.1.3->1.1.4-->2.2

TOP

真的好文章,真的非常到位的理解!昨天花了一整天,将原版1。1。2 /BL4.9用ZiphoneGUI解了一下,不用卡贴了,太兴奋,升级至1。1。3,itunes/ibrickr全不能用,匆忙中降级至1。1。1,又升级至1。1。2,失败,升级至1。1。3,成功,再用ZiphoneGUI解,成功。突然发现,系统变成了1。1。3/4.03./3.9,就是LZ说的情况,我还能将BL升级至4.9吗?若不能,有何影响?谢谢

TOP

我是1.1.2/BL4.6/4.02,现在变成了1.1.3/3.9/4.03

TOP