2011年3月16日 星期三

[Android] 第一次使用實體手機 + 清乾淨 + 重裝系統 @ Nexus One

== Updated @ 2011/04/26 ==


原先以為透過此篇操作可以把系統清乾淨,經過幾次研究後,發現 "重設為原廠設定" 和此篇 "Recovery from update.zip" 的過程,並不會真的清除乾淨。因為整個過程只能說依照上述兩者的 script 去更新資料罷了,例如 script 上面有提到要從 update.zip 裡面複製某個檔案到哪邊等等,這樣的過程只能說會清掉一些被動到的系統檔,但如果 script 沒有做的部分,那些資料將還是留在系統上。最簡單的驗證就是把 root 過後,安裝了 Superuser.apk ,接著使用上述兩種動作,並不會將 Superuser.apk 給移除。真正清乾淨系統的方式是透過 fastboot 清乾淨且重刷整個系統才算是正解。


=====================


終於等到一台 Android 手機可以操刀了,這大概算第二次接觸。第一次接觸是 G1 開發機,不過沒有 case 隨即就被擺進櫃子裡深睡,半年前被別人領走,從此與 Android 的緣份越來越淺。最近讀了點 Android 相關書籍,被其系統架構吸引,因此又去要了資源,這次終於要好好用這隻手機。


每次拿到一台手機時,基於安全龜毛考量,必須想盡辦法清乾淨,這台也是別人用了一年的手機。久聞 Android 環境的複雜性,這是我也體會到了,於是就下載一份說明書 nexusone-userguide,終於看了幾頁搞懂要怎樣清空資料:


[應用程式]->[設定]->[隱私設定]-> 重設為原廠設定


過程中可以順便清 SD 卡


如果只是單純想清光 SD 卡:


[應用程式]->[設定]->[儲存設定]-> 清除 SD 卡


看起來好像清完了?其實,最龜毛的應該是要把 OS 重裝,越 Open 的環境,代表別人可以更容易加料 XD 所以,我打算來重裝整個 OS 系統(此步驟僅供參考!並非適用各類手機情況,以及存在操作風險,請自行評估負責啊)


第一步:下載官方 android 2.3.3 update for Nexus One 


http://android.clients.google.com/packages/ota/passion/81304b2de707.signed-passion-GRI40-from-FRG83G.81304b2d.zip


第二步:將上述檔案更名為 update.zip 並移放到 SD 卡根目錄


若使用的電腦沒有偵測出 android 手機,可以試著到 [應用程式]->[設定]->[儲存設定]-> [卸載 SD 卡] 並在 [掛載 SD 卡],此時 android 手機就會問你要不要啟用 USB,如此一來就能夠讓電腦偵測出來。


或是直接從手機上方的 status bar 下拉,並手動啟動 usb


在 PC 端把資料移至記憶卡後,記得要先從 PC 端卸下外接記憶卡,接著才將手機 USB 上的關掉,如此一來可以確保資料有寫入到記憶卡中。(有時PC端寫入動作都是等到卸下外接裝置實才正式寫入)


第三步:將 android 手機關機


第四步:按住 [軌跡球] 後,接著按 [電源鍵] 開機,如此一來就會進入特殊選單,使用 [音量+/-鍵] 進行選單上下的移動,並使用 [電源鍵] 做為選擇


01


請選 [BOOTLOADER] -> [RECOVERY]


02


第五步:接著會看先看到 X 的 logo 圖,再過幾秒就轉成警告三角型跟 android 圖示,此時先按 [電源鍵] 再按 [音量+鍵] ,則會進入另一個選單


03


第六步:使用 [音量+/-鍵] 或 [軌跡球] 移動,挑選 apply sdcard:update.zip 項目,並點選 [軌跡球] 當做確認


04


第七步:使用 [音量+/-鍵] 或 [軌跡球] 移動,選擇 update.zip 檔案,並點選 [軌跡球] 當做確認


05


第八步:接著 android 手機就會依序進行更新動作,直到最後顯示完工


06


07


08


09


10


11


最後就可以到 [應用程式]->[設定]->[關於手機] 可以查閱系統資訊:


Android 版本:2.3.3
基頻版本:32.41.00.32U_5.08.00.04
核心版本:2.6.35.7-59423-g08607d4 android-build@apa28 #1
版本號碼:GRI40 


說真的,我有點著迷 Android 系統的架構,可以讓開發者很盡情的享受,雖然有兩點還令我有點反感:



  • 系統更新快

  • 使用 VM 環境


前者就像沒有跨平台的環境,每一次的升級都可能導致程式需要重寫,這點我還能接受,覺得系統升級的遠大目標算是可以贏過這個小缺點,後者 VM 環境讓我對它的效能很 case ,正是我不喜歡寫 Java 的理由。仔細回想,我學程式以來,第一熟悉的是簡單的 C/C++ 語言,第二熟悉語言正是 Java 啊,甚至用 Java 開發了一年的專題,沒有萬也有千行,並讓我真的了解"指標"的真諦,只是碩班後期開始比較常寫 C 時,對於記憶體掌控會很在乎,相較之下我還滿喜歡寫 Objective C 囉!


目前操作不到 10 分鐘的感覺,嗯,iOS 果然有極強大的 UI 介面,而 Android 則是給我感覺像潛力無限的功能機,剛好我重視功能性>>外表,卻也常常被 Android 的 VM 感到矛盾啦,所以有種很特殊的情感吧!不過站在一般使用者的角度,我覺得會偏好 iOS 的比較多,因為 android 的潛力是隱性的,一般人基本上是不會在意的,好用好潮就夠啦。


無論如何,很感謝 iOS 跟 Android 開發團隊,能夠提供如此好玩的平台,之後的目標大概式來編編 Android Open Source 並且打包成自製的環境吧,就像學 OS 時,要學著改一些小小的程式碼,就算開機印出個 hello world 也是很有價值的。(不知不覺又走回嵌入式?)


沒有留言:

張貼留言