重楼和李逍遥:[DHD教程] Desire HD(G10)最牛教程系列之七:详解SHIP ENG S-ON S-OFF

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 09:35:36
 在教程的第四章里,曾经教大家如何查看手机信息,当中简单介绍了几个名词,由于这几个名词对刷机来说比较重要,所以这里详细讲解一下。

ACE PVT SHIP S-ON


      这一行的后两个字段,我们介绍过了分别有二种情况,那么放在一起就会产生四种组合。

      SHIP S-ON
      ------这种是最原始的状态,手机出厂的时候,是零售版的hboot,所以显示为SHIP,安全锁也是打开的,所以显示S-ON。

      此时手机的system和recovery分区是只读的。典型的表现是,即使我们按照第六章的教程取得了root权限,可以通过安装RE管理器来删除系统自带的程序,但是,只要重启机器,一切将会恢复原样。



      SHIP S-OFF
      -----这种是关闭安全锁后的状态。这种关闭安全锁的方法并没有对hboot做修改,所以还是显示为SHIP,由于安全锁被关闭了,所以显示S-OFF。

      此时手机的system和recovery分区是可写的。也就是说,可以允许我们进行刷机操作。


      ENG S-ON
      ------这种组合不会出现,下面会说原因。

      ENG S-OFF
      ------这种是通过刷入官方内部版本的hboot,达到关闭安全锁目的后的状态。因为刷入了修改版的hboot,所以SHIP显示为ENG,这时候安全锁其实还是打开的,就是说实际上你的机器还是S-ON的,但为什么会显示成S-OFF呢?



      前面说过,手机是由hboot来负责引导启动的,这里简单讲一下流程,hboot启动后,会检查安全锁的状态:


      如果检查后发现是S-ON,说明安全锁是打开的,那么hboot在完成引导启动的同时,会将system和recovery分区做写保护。

      如果检查后发现是S-OFF,说明安全锁是关闭的,那么hboot在完成引导启动的同时,会将system和recovery分区的写保护打开。

      那这个经过修改后的hboot在这里起到什么作用呢?

      当手机通过hboot启动,hboot在检查安全锁是什么状态的时候,无论检查结果是什么,这个修改过的hboot都会认为安全锁是关闭的,即

      让hboot自己欺骗自己,认为安全锁处于S-OFF状态。实际上此时的安全锁还是S-ON,只不过显示出来是S-OFF罢了。




      这也就为下面这种情况找到了合理的解释:


      机器状态为ENG S-OFF的朋友刷了官方包,然后ENG变回SHIP,S-OFF变回S-ON。但机器状态为SHIP S-OFF的朋友进行同样的操作,却不会失去S-OFF。

      因为官方包是一个完整的刷机包,在更新过程中,会把hboot覆盖掉,那么,当这个被修改的hboot被替换成官方原版的hboot后,我们的机器也就回复到了原始的SHIP状态。此时,因为ENG S-OFF是一种假象,所以,S-OFF就变回了S-ON,但是因为SHIP S-OFF是真的把安全锁关了,所以,S-OFF还是保持不变。

      既然你刷了ENG的hboot,那么他就会一直都显示S-OFF,所以不会有ENG S-ON的情况出现。

      上面两种使机器变为S-OFF的方法原理不同,效果也不同,各有优缺点。

      ENG S-OFF
      优点是,允许你执行大部分的指令,例如fastboot,可以让我们更彻底的操作手机;
      缺点是,刷官方包会失去S-OFF。而且刷写修改版的hboot有使手机变砖的危险。
      SHIP S-OFF
      优点是:刷官方包不会失去S-OFF。而且刷写方法较安全。
      缺点是:无法使用fastboot命令。
      外加一点,此方法可以让你的CID,变为superCID。这点是ENG S-OFF所不具备的。

      哪种更适合你呢?

      笔者认为,对于初学者来说,如果只是要刷机,那么SHIP S-OFF对你来说就够了,有的教程讲到,这种方式下,无法用fastboot来刷第三方的recovery程序,那怎么能刷机呢?不用担心这点,我们还可以用其他方法来完成这个任务。

      另外,相对ENG S-OFF来说,把机器变成SHIP S-OFF的过程,要安全的多。原因很简单,这个过程不涉及对hboot进行操作。前面说过了,hboot相当于电脑的BIOS,是一个重要的区域,刷坏了,手机就会无法启动,所以,尽可能的,我们都不要去刷hboot。

      当然,如果你想要得到更多的功能,那么也可以把机器的hboot刷成修改版的,也就是把机器变成ENG S-OFF。这样就会开放fastboot命令,对手机的操作也会更加灵活。


      那是不是两种可以同时拥有呢,当然也是可以的。

      选择SHIP S-OFF,还是ENG S-OFF,还是两者皆有,在于读者自己去做选择了。


特别说明一下:网络上所谓的白卡解锁,其实就是SHIP S-OFF,有人说,这种关闭安全锁的方法没用。实在是以讹传讹了。说他没用,只是因为在这种状态下,我们无法使用fastboot命令罢了。笔者在此声明,对于普通用户来说,SHIP S-OFF不但有用,而且还很安全。
 [DHD教程] Desire HD(G10)最牛教程系列之九:进阶,把手机由SHIP S-ON(S-OFF)变为ENG S-OFF前面我们曾讲过,对于普通用户而言,SHIP S-OFF相比ENG S-OFF要来的安全很多,因为不用去刷hboot分区。假如你的手机是SHIP S-ON状态,那么我建议你,先变成SHIP S-OFF,然后,有需要的时候,再去刷这个修改版的ENG hboot,从而使手机变成ENG S-OFF 就是下面这两步:
      先由SHIP S-ON----SHIP S-OFF
      再由SHIP S-OFF----ENG S-OFF
如果你的手机已经通过别的方法先变成了ENG S-OFF,      就是已经由SHIP S-ON----ENG S-OFF
      没关系,你也可以再做多一步:
      由ENG S-OFF----SHIP S-OFF(显示还是ENG S-OFF)
      上一章,我们已经介绍了:
      SHIP S-ON----SHIP S-OFF和ENG S-OFF----SHIP S-OFF(显示还是ENG S-OFF)

      下面我们再来介绍,如何把手机由SHIP S-ON(OFF)变成ENG S-OFF 准备工作:

      1、到笔者的网盘下载相关的文件,解压后上传到手机的根目录下,不要有两个DHD目录哦,应该是DHD目录下直接可以看到文件的。链接地址:

      http://u.115.com/file/f5f4bc20f3#   DHD.rar

      2、准备好ADB工具,并且满足ADB工作所需要的条件(参看相关教程第六章)。

      3、手机取得了临时或者永久root权限。

      开始操作:
      1、电脑上打开命令提示符,转到ADB工作目录下,运行:“adb shell”,回车。
      2、输入:“su”,回车。如图所示:
      
      如果superuser弹出,请允许。这时候你应该看到#号,否则请检查你是否具备root权限。

      3、输入:“sh /sdcard/DHD/check”,回车。注意sh后面有个空格,下同 说明:这一步是用来校验要刷入的修改版hboot的MD5值的,在做完检查后,同时向手机中载入一个经过修改的内核模块,其作用是为了关闭系统的写保护,好让我们可以写入文件。
      这一步的原理很简单,就是先读出这个修改版的hboot的MD5值,再和原来保存的该文件MD5值相比较,如果一致,说明你下载的这个hboot文件正确无误。如果你看到紧跟着你输入命令的下面,有两行MD5值完全一致,那么可以继续。如果不同,请重新下载DHD.rar文件。
  4、比较后一致的话,跟着屏幕的提示输入:“sh /sdcard/DHD/backup”,回车。
 说明:这一步是备份你手机内原版hboot文件的。并且备份了2份,然后再读出这两个备份文件的MD5值来进行比较,确保备份的文件没有问题,你会看到两行MD5值,只要保证相同,就说明备份成功,否则请重新执行这条命令,直到一致为止。这步操作,同时也备份了系统原版的recovery到DHD目录下,文件名为:recovery_orig0.bin请把该文件,和同目录下的hboot_orig0.bin(原版hboot文件的备份)文件妥善保管,这是你的原版系统的两个重要备份文件。 5、重要的一步来了,输入:“sh /sdcard/DHD/hboot”,回车。  说明,这是到目前为止,最重要的一步,前面只是进行检查和备份,此处才是真正的将修改版的hboot文件写入手机。对比屏幕上的三行MD5值,如果第一行和第二行一致那么你就成功了!

      6、如果你是上述情况,说明成功了,请接着输入:“reboot”,重启手机。
      我来详细解释下第5步:
      你看到的三行MD5值分别代表的含义:

      第一行是刷入到你手机里面的修改版的HBOOT的MD5值。

      第二行是存放在DHD目录里的修改版的HBOOT的MD5值。(和第一条命令那里查看时显示的是一样的)

      第三行是你手机里面原版的HBOOT的MD5值。(和第二条命令那里备份时显示的是一样的)

      有几种情况会出现:

      1、第一行和第二行一样(而且应该和第三行不同),说明刷进手机里面的hboot的MD5值,和存放在DHD目录里的修改版的hboot的MD5值一样,刷新成功了,可以重启手机了。

      2、第一行和第三行一样(而且应该和第二行不同),说明刷进手机里面的hboot的MD5值,和备份的原版的MD5值一样,代表没有刷进去,但还是安全的,因为还是原版的那个hboot,重启手机,重复进行上述步骤。

      3、第一行和第二行、第三行都不一样,什么意思明白了吧,说明刷进手机里面的,和DHD目录里的、备份的对比,都不一样,说明刷新失败了。 请特别注意了,出现第3种情况后,千万不可重启手机,手机会变砖!别说我没提醒你。   请紧接着输入:“sh /sdcard/DHD/restore_hboot”命令来恢复之前的原版HBOOT的备份,知道上面第4步的重要性了吧!!!

      恢复完成后,对比下备份时候出现的那个MD5值,应该是一样的,说明恢复成功了,把原来那个备份的hboot又重新刷进去了。

      然后重做第5步,或者安全起见,可以选择先退出,找到问题原因再来操作。

      上面写了那么多,其实你就输入了三条命令而已:

      sh /sdcard/DHD/check

      sh /sdcard/DHD/backup

      sh /sdcard/DHD/hboot

      细心点,只要按照上面的说明去做,看清屏幕上的提示,你就会成功的! 想要把手机再变回S-ON状态?那你把备份的那个文件做一下恢复就可以了。(但是,有这个必要吗?) 检查上述操作是否成功:
完全关机,按音量-键的同时按开机键,进入HBOOT,第一行由SHIP S-ON(OFF)变成了ENG S-OFF。那么就说明你成功了。 我的手机,做这步之前:
  1. ACE PVT SHIP S-OFF
复制代码做完之后:
  1. ACE PVT ENG S-OFF
复制代码注意到了吗,第二行的HBOOT后面的版本,已经是被修改过后的了。

      下面我们再介绍另外一种更加简便的方法,还是通过jkoljo同学编写的小程序来实现,其实这个软件的原理和上面的一样,只不过简化了操作,不需要你再输入那么多条命令罢了,之所以先繁后简,目的在于让各位朋友了解其中的运行原理。

      首先,你还是要到笔者的网盘去下载一个小程序,链接地址:

      http://u.115.com/file/f5217ddf8#  EasyS-OFF_03.zip

      软件运行环境:

      1、windows XP SP2或更高版本的系统

      2、.NET Framework 3.5

      3、HTC Sync(或者ADB驱动)

      4、一台运行官方内核版本的DHD手机(或者内核是 Apache14's 1.0.7 / 1.1.4 Sense

      5、 该软件不能运行在新版radio之上。(这里作者没有具体讲是哪个版本的radio,总之,尽量在低版本radio下运行就是了。)


      具体操作流程如下:

      1、首先确定你的手机取得了永久root权限

      2、开机后,进入设置--应用程序--开发--usb调试,打勾。
      3、手机用数据线连接电脑,根据屏幕提示,选择“仅充电”模式。
      4、在电脑上,下载上面的工具,解压,然后运行Desire HD easy s-off.exe。
      如图所示:
      


      5、点击S-OFF it!如果superuser弹出,请允许。
      6、完成工作。

      这时候,你的手机就变成了ENG S-OFF,相比上面的命令行方式,是不是容易很多啊。

      这个工具同样在它的目录下,备份了原始的hboot文件,文件名是:hboot_original.bin,我们同样可以通过命令行方式来完成恢复的操作,具体命令为:su
      busybox dd if=/sdcard/hboot_original.bin of=/dev/block/mmcblk0p18
      但是不建议这样去做,一旦在没有校验的情况下去做这步工作,是相当危险的。
上面介绍的两种把手机变为ENG S-OFF的方法,同时适用于SHIP S-ON和SHIP S-OFF的手机用户。 感谢symen的精彩文章!