打通Desire HD的任督二脈 S-OFF

什麼是Root?好像又是老生常談的樣子,簡單說就是擁有系統的最高權限,如同windows的最高權限administrator一樣,Android手機是屬Linux系統,所以最高權限就是Root,但是廠商擔心系統遭受破壞而產生不穩定狀況,因此均會將最高權限關閉。那什麼又是S-OFF呢?個人感覺Root與S-OFF是不一樣的動作,只是想要S-OFF的話,Root是首要條件,S-OFF與Root是不同的,S-OFF可以讓你通過Bootloader內的Fastboot或一些自製的RECOVERY(如ClockworkMod Recovery)來刷客製的ROM。

 

HTC 的手機通常出廠的是屬於 S-ON 的狀況,也就是鎖住SPL讓使用者無法對/system與/recovery來修改,即使使用 root explorer 刪除檔案,手機重新啟動時也會恢復,因此透過修改 HBoot 移除鎖住的方式來實現對/system與/recovery的寫入,也就是所謂的 S-OFF。

 

HTC手機啟動過程:IPL->SPL->Android

IPL是初始化程序,SPL負責載入Android系統的,SPL全名為Second Program Loader,是手機系統的bootloader外,還包括recovery、Fastboot、HBoot等功能,也就是SPL是用來讀寫flash rom的,且也提供檢測手機硬體、啟動統系統操作界面以及檢測SD卡等,因此IPL+SPL就如同PC上的BIOS一樣。

 

如何進入HBOOT檢查目前的S-OFF或S-ON

 

▼首頁桌面上按下手機上的「Menu」選擇「設定」\「應用程式」,將「快速開機」打勾取消。

 

soff02.jpg

 

▼長按電源鍵待出現「電源選項」選單後,選按「重新啟動」來重新啟動手機。

 

soff01.jpg

 

▼出現如下畫面時按著「音量下鍵」不放,若有產生震動,不要緊張還是繼續按著,然後再按紅色框的「重新啟動」(記住「音量下鍵」一直按著不放)。

 

soff03.jpg

 

▼直到出現HBOOT的畫面後才鬆開「音量下鍵」,此時可看到第一行「ACE PVT SHIP S-ON」,也就是目前我的Desire HD有鎖住SPL,無法對/system與/recovery來修改。

 

DSCN3147.jpg

 

▼想要離開HBOOT畫面,如上圖在藍底白字「FASTBOOT」上按下「電源」鍵,則會出現如下圖,再利用「音量下鍵」移動至「REBOOT」,接著再按「電源」鍵即可重新開機。

 

DSCN3182.jpg

 

▼進入HBOOT與離開HBOOT的過程影片。

 

 

S-OFF的前置作業

 

想要S-OFF有可能會變磚,那很麻煩的,所以事先的準備與學習是必要的,請先確定已完成如下的準備動作。

 

  • Step 1. 手機必須要有Root的權限,這是必要的條件,Desire HD的Root可參考Desire HD 永久性Root文章,然後將Desire HD Root並測試是否有成功。

 

  • Step 2. 須能在Android 手機上運行 Linux 命令(也可使用Android SDK 的 adb 指令),挨踢路人甲使用「Android Terminal Emulator」來S-OFF的,可參考Android Terminal Emulator一文來安裝學習操作。

 

  • Step 3. .利用上述進入HBOOT畫面檢查目前手機的S-ON或S-OFF狀況,若是S-OFF的話就恭喜你,不用再S-OFF了,除非你想還原成S-ON,不過話說回來全新的手機應該不可能是S-OFF的。

 

  • Step 4. 至 XDAdevelopers 論壇下載下載DHD-v0.6-tempfix 解壓縮(需要註冊後才能下載),解壓縮後裡面有個RTFM.txt文件檔,建議看一下注意事項,然後將「DHD-smart」資料夾放到Desire HD上SD卡根目錄下,並更名為「DHD」資料夾

 

  • Step 5. 確定有充足的電源,不要動作未完成而耗盡電源,這樣可能會變磚的。

 

S-OFF實作

 

其實說穿了S-OFF就是要將原廠的 HBOOT(SHIP S-ON) 改成工程版的 HBOOT(ENG S-OFF),記得挨踢路人甲的 Desire 僅 Root 也能刷ROM,不過在 Root 時會以 ClockworkMod Recovery 覆蓋原廠的 RECOVERY,我不是高手也不是Android工程師,所以猜想想要刷ROM並不一定要S-OFF,但原廠的HBOOT有保護機制,若有對/system的修改將會復原,Google有關刷ROM的文章,就是要利用ClockworkMod Recovery 來刷不同的ROM,而好像需要「Root + S-Off」才能正確安裝寫入ClockworkMod Recovery,這是小弟的一些心得,若有誤請多指教。

 

註:此篇文章最好詳讀完後自行評估是否要S-OFF,因為此動作是

有風險的,請自行承擔風險。

 

▼在實作之前請先確定完成上述的前置準備動作,接下來首先執行「Terminal Emulator」出現如右圖畫面,利用虛擬鍵盤輸入"su" 按下「Enter」,發現$符號變成#符號,也就是進入最高權限的狀態,這也就是之前說必須先Root的原因。

 

soff04.jpg

 

▼利用虛擬鍵盤輸入"sh /sdcard/dhd/check" 按下「Enter」,此動作會檢查DHD目錄內的hboot_eng.nb0 檔案是否正確,若將不正確又寫入的話那豈不是變磚了嗎?所以看MD5 checksum 碼是否相符合,而中間的訊息是說會測試 kernel Module,若符合橘色框中的任一訊息表示OK的,那就可以繼續黃色箭頭的指令。

 

soff05.jpg

 

▼一樣在虛擬鍵盤上輸入 "sh /sdcard/DHD/backup" ,結果一大堆的文字跑出來,此動作主要是備份原廠的 HBOOT 與 RECOVERY,其備份的檔案就放在DHD目錄內(如右圖),右圖中你可以發現都會連續備份兩次,且 RECOVERY 是偷偷的備份並沒有顯示訊息,改天有寫入ClockworkMod 時也可還原原廠的 RECOVERY哦!

 

比較重要的是比對兩次備份的 hboot_orig0.bin 與 hboot_orig1.bin 的 MD5 checksum 碼(就是那一大串的文字與數字)是否一樣,如果不一樣應該馬上停止往下的動作,不然會變磚的,除此之外也要注意執行此動作時,DesireHD 目前的 HBOOT 狀態(是S-OFF還是S-ON),因為萬一是處在 S-OFF 狀態下執行 "sh /sdcard/DHD/backup" ,表示你的機器可能已經有做過此動作,那將會覆蓋掉DHD目錄下的原廠的 HBOOT 與 RECOVERY 的備份,也就是此動作只要備份一次就好了,建議第一次執行備份後將DHD目錄備份到PC上以防萬一。

 

soff06.jpg

 

▼接下來這個動作是關鍵,一樣在虛擬鍵盤上輸入 "sh /sdcard/DHD/hboot" 按下「Enter」,老樣子還是出現一堆文字,其主要動作是將hboot_eng.nb0寫入後並再備份出成hboot_check.nb0檔。

 

soff07.jpg

 

▼為了方便比對以橫向截圖說明,必須比對綠色框中的第一、二行前面的MD5 checksum 碼是否一樣(請務必仔細比對,不可馬虎了事),若一樣恭喜你S-OFF成功了,第三行則是原廠的 HBOOT MD5 checksum 碼,若和第一行一樣,那還好僅執行沒有成功,表示目前還是原廠的HBOOT,假如第一行與其他兩行都不一樣,哇!晴天霹靂,我也不知道怎麼辦,去請教其他高手吧!不過我想機率應該不高吧!

 

soff08.jpg

 

▼確定第一、二行的MD5 checksum 碼都一樣後即可重新啟動,進入HBOOT檢測S-OFF方式可參考最前文說明,下圖可明顯看到「ENG S-OFF」字眼,表示已刷成功了變成工程版的HBOOT了。

 

 

 

DSCN3172.jpg

 

回復原廠HBOOT的SHIP S-ON

 

XDADevelopers論壇上有許多一鍵S-OFF的文章,除非你不想還原Desire HD原先的HBOOT,因為一鍵S-OFF的程式大多沒有備份原先的HBOOT與RECOVERY,所以建議還是使用指令步驟較繁瑣的方式來處理,這樣比較有保障。

 

▼一樣在虛擬鍵盤上輸入 "sh /sdcard/DHD/restore_hboot" 按下「Enter」,老樣子還是出現一堆文字,其主要動作是將 hboot_orig0.bin 寫入後並再備份出至 hboot_check.bin 檔。

 

soff09.jpg

 

▼為了方便比對以橫向截圖說明,必須比對紅色框中的兩個MD5 checksum 碼是否一樣(請務必仔細比對,不可馬虎了事),若一樣恭喜你S-ON成功了,重新啟動並進入HBOOT檢測目前的狀況,結果你會發現出現「SHIP S-ON」字眼。其實若沒有特殊理由不需要 S-ON 回去的,基本上是不影響OTA升級的,倒是要回原廠維修時才可能要S-ON 吧!

 

snap20110223_213725.jpg
itwalker
itwalker

或許技術與功力已遠遠不及時下年輕人,但試著去畫一個圓,圓不圓沒關係,盡力就好,如果覺得文章不錯的話,請大家按個「讚」或「+1」,感謝您的支持與鼓勵!歡迎加入我的粉絲團 : https://www.facebook.com/itwalker ,更多關於挨踢路人甲的文章: https://walker-a.com

文章: 2730

35 則留言

  1. 請問 放到sd卡的根目錄下 是跟 dcim放照片的目錄同一層嗎?
    因為我的命令字元一直找不到在根目錄下的dhd資料夾

    • 謝謝你的提醒,打字輸入錯誤啦!應該是【其實說穿了S-OFF就是要將原廠的 HBOOT(SHIP S-ON) 改成工程版的 HBOOT(ENG S-OFF)】。

  2. 請問一下,之前不小心動到Hboot,使得開機後資料全數消失,有辦法補救嗎?(不確定有沒有備份)

    • 可否說明詳細一點,不過原則開機後安裝的軟體都不見時,可能回到原廠的設定,大概安裝的程式與資料都會不見~

    • 如果是和我一樣的版本開始S-OFF的話,原則應該可以(我沒試過),想要回到S-ON可以參考機器達人的兩篇文章: 封印Desire HD並OTA升級 與 降級Desire HD解除封印 。

  3. 請問我在Terminal Emulator 利用虛擬鍵盤輸入”su” 按下「Enter」,出了 “su: permission denied”, 我還可以做什麼?

    • 你的手機有Root嗎?沒有root是取不到最高權限的~~
      ps: android 2.2.1 以上的版本需先降版可以root~~

  4. 謝謝版大的回答,不好意思再請教一個簡單問題:由你的回答來說是不需要S-OFF的,那是不是要刷ROM才能移除內建程式呢?

  5. 請問大大 我在看HBoot的時候因為要跳出 不小心選了power down…
    現在dhd打不開了 請問這是變磚的意思嗎…?

  6. 請問:
    我的手機是Desire HD 2.3.5
    我已經用官方解鎖也刷完root了
    而我的recovery是clockworkmod recovery v5.0.2.0
    照著您發的文想換成4EXTRecovery卻沒辦法成功
    請問一定要s-off才能用4EXT Recovery Updater 來安裝4EXTRecovery嗎?

  7. 請問大大
    如果按照s-off步驟走
    每次最後都是第一行跟第三行樣
    那我該怎麼做
    爬文一般都說重複步驟
    但…我已經重複幾十次了結果還是一樣
    拜託大大指教

    p.s我已取得root目前s-on 之前root完有用刷機精靈刷過rom
    但我刷的是2.3.5

    此方式無法使用2.3.5~~~

  8. 我的目的只是想刪除 htc desire hd 系統預設的App
    我並沒有做 s-off
    我是先在htcdev網站進行bootloader解鎖
    完成後
    先用adb工具刷了內含clockworkMod 工具的 recovery 映像檔
    然後先進入 hboot -> recovery,進入後就直接開啟了剛刷的 clockworkMod
    我先用 clockworkMod 把系統備份一次
    然後再安裝 root.zip 工具,裡面有 su, superuser, root explorer 這幾個工具
    安裝完後手機開機回到 android 系統 然後就可以用下載的 Root Checker 開啟 root 權限,
    再用 系統清道夫 刪除 系統App
    手機都沒有做 s-off,重開機也不會被還原
    所以只要刪系統App看起來並不用作 s-off

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料