Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)aaapublished in(发表于) 2017/2/8 9:24:25 苹果安卓通吃:盘古越狱破解锤子手机Bootloader详解 - 锤子手机,盘古越狱,Bootloader
2014年,罗永浩声称要开放锤子手机的Bootloader,两年后,44岁的他因未能兑现承诺而站上了被告席,之后他发布微博致歉,表示该计划因安全理由被技术人员否决掉了。
然而以苹果越狱闻名世界的盘古团队却“不务正业”,研究了个锤子!就在2月6日,他们发布微博表示已成功破解锤子手机的Bootloader,满足了不少发烧友的期待。
不少朋友可能对Bootloader并不太了解,以至于会产生如下疑问:
? 老罗的计(qing)划(huai)为何会被否决?
? Bootloader是什么?解锁后意味着什么?
? 发烧友们为什么希望厂商开放Bootloader?
? 众多手机厂商为何紧抓Bootloader不放?
? 盘古团队又是如何将之破解的?
今天雷锋网宅客频道就用通俗易懂的方式和大家聊聊——盘古破解锤子手机bootLoader锁那些事儿。
Bootloader是什么?——启动引导器、球队教练
BootLoader——启动引导器,简单来说就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
不严谨的讲,Android系统中的Bootloader和PC的BIOS有些类似,它可以引导Android系统正确启动。
有人曾把Android系统比喻为在球场上疯狂砍分的科比,Bootloader就是传奇教练菲尔·杰克逊,只有他才能调动起科比的情绪,布置好进攻方式和防守阵型,把科比的潜能充分激发出来。只要这些都准备好了,科比就能攻无不克战无不胜;此外,教练也能从球员中选出发挥稳定、适合自己球队风格的球星(官方ROM或基于官方ROM的第三方固件)上场比赛,而拒绝一些与球队风格不合的球员加入(民间ROM)
BootLoader既然要执行硬件初始化,那必然和硬件相关,所以它的代码并非通用的,不同的硬件需要不同的BootLoader代码,各大厂商可能都有自己的,也可能有一些通用的。使用高通处理器的手机通常Bootloader都是基于一个叫LK( little kernel )的东西做的,比如锤子手机。
Bootloader与刷机有什么关系?
据雷锋网了解,发烧友们常说的刷机,一般分为"卡刷"和“线刷”,两种方式都可以将第三方的手机系统ROM包刷入设备当中。
不同的是,卡刷是把ROM包放在手机内存卡里刷;“线刷”是手机连着电脑,用电脑来输入刷机指令。无论卡刷还是线刷,都是在Bootloader之后进行的,Bootloader大门一锁,什么刷都没得玩。
在Bootloader初始化手机硬件之后,通常可以用组合键(比如开机键+音量键)进入Fastboot模式,用电脑对手机输入指令,可以理解为实现了一个简单的通信协议。
如果没有进入Fastboot模式,则可以通过另一个组合件进入Recovery模式,Recovery——“恢复模式”,相当于PC上常见的“一键还原精灵”、Ghost系统等,可以用来刷手机系统的ROM包。
如果既没有进Fastboot模式也没有进Recovery,那么Bootloader就开始通过Boot image读取手机的系统内核,然后启动Android。
厂商为何紧抓Bootloader不放?
看懂Bootloader的重要性,就会知道手机厂商一旦开放Bootloader,至少要面对这三大麻烦:
1.运营商受损手机厂商通常和网络运营商合作推出合约机,难免内置预装软件,预装软件通常无法自行删除,一旦开放Bootloader,运营商及合作伙伴的利益无法保障。
2.可能沦为单纯制造商手机厂商各自的UI实则是最鲜明的品牌烙印,一旦Bootloader解锁,用户买了你的手机却用别人家的系统,手机厂商就有可能沦为单纯的制造商。
罗永浩此前曾语带轻浮地讽刺过魅族不提供该解锁Bootloader功能,是对自家 UI系统的“不自信”。想必老罗刚开始计划开放Bootloader功能,也是出于对Smartisan OS爆棚的自信。
3.手机稳定性、安全性均难以保证手机刷入的第三方固件可能会存在各种各样的Bug,轻则影响用户体验,重则引发手机睡死、过热、漏电等现象,稳定性难以保证。从数据安全方面考虑,当用户的手机不慎遗失,如果Bootloader没锁,对方可以随心所欲地刷入第三方系统,轻而易举取得手机中的隐私信息,“查找我的手机”、“远程抹除数据”之类安全功能完全失效。
正因为牵扯太多问题,手机厂商们对待Bootloader的态度由紧到松又到紧,经历了一次倒U型变化。目前大多数厂商都锁了Bootloader,不同的是,有的提供了官方的解锁渠道,比如“发烧”的小米,但解锁之后仍会失去保修,有的则干脆禁止Bootloader解锁。
盘古搞定锤子手机Bootloader
事实上,正如老罗所说,其实2014年他们可能确实考虑对Smartisan OS开放Bootloader,因此在初代ROM中保留了解锁的功能,但其后该功能的大部分指令都被“阉割”,也许正是考虑到安全等问题。
对于T1和T2手机,2.6.7是最后一个可以解锁的ROM版本号。
根据盘古在微博中所述,在被破解的锤子T2手机中,其中涉及Bootloader解锁的一个安全分区使用了RSA+MD5两种加密算法进行签名校验,在这个过程中,盘古发现了由于技术人员对加密算法不太熟悉,导致了两个的逻辑漏洞:
在RSA加密算法中,有公钥和私钥两把“钥匙”,公钥是公共的,私钥掌握在加密者手里,原本这两把钥匙应该是相互独立的,但一个小错误让盘古团队直接通过公钥推导出私钥。第二个漏洞是其中MD5算法中的某个值可以任意指定,盘古团队将其设置为0之后,可以让原本瞬息万变的哈希值固定为某一个数值。
在RSA加密算法中,有公钥和私钥两把“钥匙”,公钥是公共的,私钥掌握在加密者手里,原本这两把钥匙应该是相互独立的,但一个小错误让盘古团队直接通过公钥推导出私钥。
第二个漏洞是其中MD5算法中的某个值可以任意指定,盘古团队将其设置为0之后,可以让原本瞬息万变的哈希值固定为某一个数值。
通过这两个漏洞,他们成功构造校验签名,将一台装载2.6.7版本Smartisan OS的锤子手机解锁。
盘古团队在文中表示,目前锤子手机的系统已经升级到3.x版本,解锁需要先将系统版本降级至2.6.7的版本,利用旧版Bootloader存在的漏洞进行解锁,解锁完成后再在不更新Bootloader的情况下升级回原来版本的系统,操作相对繁琐。
据雷锋网了解,从原理上看来,锤子科技如果一心要防止用户利用该漏洞解锁Bootloader,只需通过ROM签名验证等方式,让用户无法降级回2.6.7以下版本即可让此破解方式失效。
锤子科技将如何处理此次破解事件,目前还尚未可知。但无论如何,安全总是第一位的,借用盘古团队对老罗未兑现承诺一事的评价:“能从认为加锁是对系统的不自信,到后来发现解锁是安全隐患,绝对是个进步(loser口中的打脸)”
赞