打通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」選擇「設定」\「應用程式」,將「快速開機」打勾取消。
▼長按電源鍵待出現「電源選項」選單後,選按「重新啟動」來重新啟動手機。
▼出現如下畫面時按著「音量下鍵」不放,若有產生震動,不要緊張還是繼續按著,然後再按紅色框的「重新啟動」(記住「音量下鍵」一直按著不放)。
▼直到出現HBOOT的畫面後才鬆開「音量下鍵」,此時可看到第一行「ACE PVT SHIP S-ON」,也就是目前我的Desire HD有鎖住SPL,無法對/system與/recovery來修改。
▼想要離開HBOOT畫面,如上圖在藍底白字「FASTBOOT」上按下「電源」鍵,則會出現如下圖,再利用「音量下鍵」移動至「REBOOT」,接著再按「電源」鍵即可重新開機。
▼進入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的原因。
▼利用虛擬鍵盤輸入"sh /sdcard/dhd/check" 按下「Enter」,此動作會檢查DHD目錄內的hboot_eng.nb0 檔案是否正確,若將不正確又寫入的話那豈不是變磚了嗎?所以看MD5 checksum 碼是否相符合,而中間的訊息是說會測試 kernel Module,若符合橘色框中的任一訊息表示OK的,那就可以繼續黃色箭頭的指令。
▼一樣在虛擬鍵盤上輸入 "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上以防萬一。
▼接下來這個動作是關鍵,一樣在虛擬鍵盤上輸入 "sh /sdcard/DHD/hboot" 按下「Enter」,老樣子還是出現一堆文字,其主要動作是將hboot_eng.nb0寫入後並再備份出成hboot_check.nb0檔。
▼為了方便比對以橫向截圖說明,必須比對綠色框中的第一、二行前面的MD5 checksum 碼是否一樣(請務必仔細比對,不可馬虎了事),若一樣恭喜你S-OFF成功了,第三行則是原廠的 HBOOT MD5 checksum 碼,若和第一行一樣,那還好僅執行沒有成功,表示目前還是原廠的HBOOT,假如第一行與其他兩行都不一樣,哇!晴天霹靂,我也不知道怎麼辦,去請教其他高手吧!不過我想機率應該不高吧!
▼確定第一、二行的MD5 checksum 碼都一樣後即可重新啟動,進入HBOOT檢測S-OFF方式可參考最前文說明,下圖可明顯看到「ENG S-OFF」字眼,表示已刷成功了變成工程版的HBOOT了。
回復原廠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 檔。
▼為了方便比對以橫向截圖說明,必須比對紅色框中的兩個MD5 checksum 碼是否一樣(請務必仔細比對,不可馬虎了事),若一樣恭喜你S-ON成功了,重新啟動並進入HBOOT檢測目前的狀況,結果你會發現出現「SHIP S-ON」字眼。其實若沒有特殊理由不需要 S-ON 回去的,基本上是不影響OTA升級的,倒是要回原廠維修時才可能要S-ON 吧!
請問 放到sd卡的根目錄下 是跟 dcim放照片的目錄同一層嗎?
因為我的命令字元一直找不到在根目錄下的dhd資料夾
沒錯!就是SD卡的根目錄,且注意目錄的名稱是DHD。
“其實說穿了S-OFF就是要將原廠的 HBOOT(SHIP S-OFF) 改成工程版的 HBOOT(ENG S-OFF)”
ship s-off 是radio s-off
在eng s-off 後看不到
謝謝你的提醒,打字輸入錯誤啦!應該是【其實說穿了S-OFF就是要將原廠的 HBOOT(SHIP S-ON) 改成工程版的 HBOOT(ENG S-OFF)】。
請問一下,之前不小心動到Hboot,使得開機後資料全數消失,有辦法補救嗎?(不確定有沒有備份)
可否說明詳細一點,不過原則開機後安裝的軟體都不見時,可能回到原廠的設定,大概安裝的程式與資料都會不見~
我想請問一下, 如果沒有備份s-on的 hboot 大大那邊有可以通用的嗎?
如果是和我一樣的版本開始S-OFF的話,原則應該可以(我沒試過),想要回到S-ON可以參考機器達人的兩篇文章: 封印Desire HD並OTA升級 與 降級Desire HD解除封印 。
請問我在Terminal Emulator 利用虛擬鍵盤輸入”su” 按下「Enter」,出了 “su: permission denied”, 我還可以做什麼?
你的手機有Root嗎?沒有root是取不到最高權限的~~
ps: android 2.2.1 以上的版本需先降版可以root~~
我S-ON之後
卻還是出現 Clockwoekmod recovery 3.0.2.6 ……
“sh /sdcard/DHD/backup” 也有備份 RECOVERY ,應該僅還原hboot而沒有還原recovery~~
OK了 謝謝大大^^
把我的DHD拿去送修了ㄒㄒ
請問,我的手機是Desire,也適用你提到的一鍵Root方法嗎?
http://www.mobile01.com/topicdetail.php?f=566&t=1657984
另外,我只是想要移掉不需要軟體以增加空間,所以Root之後,還需要S-OFF嗎?
不需要S-OFF也可以刪掉不需要的軟體~~
請看 http://www.mobile01.com/topicdetail.php?f=566&t=1728441&r=2&last=29723478
謝謝版大的回答,不好意思再請教一個簡單問題:由你的回答來說是不需要S-OFF的,那是不是要刷ROM才能移除內建程式呢?
此篇是Desire HD專用,你的手機是Desire不適用本文的s-off方式,Desire 只要有root好像可以使用鈦備份軟體強制刪除,Desire HD必須是要S-off才行,再次強調此篇文章僅適用於Desire HD手機~~~
desire root請看這一篇
http://www.mobile01.com/topicdetail.php?f=566&t=2032120&last=26213941
請問大大 我在看HBoot的時候因為要跳出 不小心選了power down…
現在dhd打不開了 請問這是變磚的意思嗎…?
在看HBoot的時候表示還沒做動作,拔到電池再插入開機應該可進入~~
請問大大,我不管怎麼弄,都還是ACE PVT SHIP S-OFF,我都是照著流程做。
Incredible S也可以一樣方式root嗎?
Incredible S的方式不一樣,此篇文章針對Desire HD~~
不好意思,想請問一下,如果我是用官方解鎖拿到root,這樣的方式還是可以S-OFF嗎??
謝謝你的幫忙,不過我看了之後也是沒提到可以S-OFF
看來要再去找找網路上其他資料囉,謝謝啦。
我的是一三項一樣 如何解決?
請問:
我的手機是Desire HD 2.3.5
我已經用官方解鎖也刷完root了
而我的recovery是clockworkmod recovery v5.0.2.0
照著您發的文想換成4EXTRecovery卻沒辦法成功
請問一定要s-off才能用4EXT Recovery Updater 來安裝4EXTRecovery嗎?
請問大大
如果按照s-off步驟走
每次最後都是第一行跟第三行樣
那我該怎麼做
爬文一般都說重複步驟
但…我已經重複幾十次了結果還是一樣
拜託大大指教
p.s我已取得root目前s-on 之前root完有用刷機精靈刷過rom
但我刷的是2.3.5
所以是不是我要先降級??
我的目的只是想刪除 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