Root your Nexus One without using “fastboot oem unlock”

首先感謝 XDA Forum 上的諸位前輩: Booker-T, M9x3mos, Amon_RA, cyanogen, 沒有他們的努力就沒有這篇文章的產生 :-)

大家都知道 Nexus One 要刷自製的 ROM 得先做一次 fastboot oem unlock 才能開啟權限 (與破壞保固), 對於 geek / hacker 而言, 這根本算不了什麼. 不過還是有人希望能夠在不破壞保固的情況下仍可擁有root 權限, 所以一直有熱心人士不斷的在找尋方法. 當然以現在 Nexus One 可以使用功能強大的 Android Froyo 版本情況下, 似乎沒有必要非得擁有 root 權限, 不過對於我而言, 還是有那麼一絲絲 root 的理由:

  1. 使用 Market Enabler 購買 app / game.
  2. 備份購買的放在 app-private 的遊戲 (不過 Froyo 已經可以顯示在 Download 區為 Purchased, 即使你的 Market 無法實行購買機制)
  3. 觀察 app data 的狀況, 對於寫程式幫助不小.

而且, 開機出現鎖頭就是讓人覺得畫面很醜 (對, 我有潔癖 XD) 所以這個方法一出現, 馬上二話不說研究看看是否有機會使用, 目前看來.. 使用愉快 ! :)

首先我使用的是 Nexus One + Froyo FRF83 版本, 不過推測 2.1 之後應該都行. 電腦要安裝 Android SDK Tools, 另外請先下載 Root_N1.zip. 手上要有一張 SD 卡, 確定裡面沒有 update.zip. 再來是最重要的一步, 把 N1 電池靠近 SD 卡那側的凸起, 磨去一小塊, 這樣才能 “在電池使用狀態下, 插入 SD 卡”. 為什麼要這麼做 ? 因為進入 recovery mode 時, 如果沒放 SD 卡, 手機便可被 adb 識別在 recovery 狀態. 如果插了 SD 卡 adb 就抓不到手機, 也就無法進行 root. 當然有幸運的網友回報說, 他放了 SD 卡也可讓 adb 辨認出手機, 不過可能是我運氣不太好, 試了 3, 4 張 SD 卡 (class 2/4/6) 花了半天的時間, 仍舊無法成功, 只好靠電池磨平法在中途塞入 SD 卡.

一切就緒, 就可開始 root !

  1. 拔電池關機, 拔出 SD 卡.
  2. 放回電池, 按著 Power key + Volume Down 進入 boot loader.
  3. Volume down 移到 recovery 的選項, 按 Power key 重開機進入 recovery mode.
  4. 當看到三角形驚嘆號時, 插入 data cable. 稍稍等一會兒, 再從電腦上輸入 adb devices, 看有沒有出現裝置, 會是組序號後面帶著 “recovery” 字串.
  5. 此時把 SD 卡插入, 按下 Power key 後, 再按一下 Volume Up, 就會出現選單.
  6. 用 track ball 選 “apply sdcard:update.zip”, 這步做過後才能掛上 SD 卡, 而且螢幕上會顯示 failed.
  7. 將 ota.zip 放入 SD 卡: adb push ota.zip /sdcard/update.zip
  8. 接著輸入 adb push update.zip /sdcard/update.zip, 但不要按 Enter. 此時先在手機上選 “apply sdcard:update.zip”, 當螢幕顯示 Verifying package 時, 按下 Enter 把 update.zip 傳上手機. 如此一來手機會解開包有 Superuser.apk 與 su 的 update.zip 檔, 也就成功 root 了. 此時試看看能否 adb shell, 並輸入 su, 當看到 # 提示符號出現, 代表你成功了 !
  9. 清理現場, 有時候會有中介檔產生: /system/etc/install-recovery.sh 與 /system/recovery-from-boot.p, 這都可以清除的.
  10. 最後選 reboot system now.

理論上這樣的 root 過程只增加兩個檔案: su 與 Superuser.apk, 並不會對原有的 package 修改, 所以日後要再透過 patch 的方式 upgrade (OTA) 也不會有問題.

Enjoy yourself ! :D

Ref:
[TUT]Rooting Nexus One w/o touching Bootloader
[Tutorial] Root FRF83 Without Unlocking

2010-07-02 Update: 這個方法在 FRF91 之後失效, FRF85B 之前的版本可用.

This content is published under the Attribution-Noncommercial-Share Alike 3.0 Unported license.

Tags: , ,

3 Responses to “Root your Nexus One without using “fastboot oem unlock””

  1. Nick says:

    HI版主
    不好意思.我試了很多篇.都無法成功,
    而我裝的是2.2…
    而下面連結網站.好像也壞掉了..
    能請版主再教學一次嗎…
    謝謝你.

  2. Hime says:

    請問一下, 這是否只是ROOT?
    如果FLASH其他ROM則要UPDATE RECOVERY才可呢?

  3. shakalaca says:

    看所謂 “ROM” 的形式, recovery 通常也是用 update.zip 達成 “改 ROM” 的目的, 基本上以 i9000 而言, 原廠的 recovery 就已經可以了. 如果你指的是其他 Android 系統的 image, 那就得透過改過的 boot loader 讓使用者可以透過 fastboot 將那些 image 刷進去 :)

Leave a Reply