Pages

2010年8月18日

[ Android 系統 ] 在 Android 裝置上取得 root 權限後,開始對 /system 動手!在那之前… (很重要,請先閱讀)

警告:對 Android 系統內任何檔案進行操作時請務必再三確認,任何錯誤的操作都可能導致無法挽回的悲劇。本文僅敘述自身操作經驗。操作者需自行承擔風險。

(以下內容,如果錯誤,歡迎指正)實際操作前,需要先講幾件事情,建立幾個觀念。

第一件事

根據目前的瞭解,Android 不能算是一套 OS(Operating System,作業系統)。Android 與 Windows CE(比較常見的名字是 PocketPC 或是 Windows Mobile)不太一樣。Windows CE 可以算是一套作業系統,而 Android 算是一個「平台」。

Android 是以嵌入式 Linux 為作業系統,在其上運行的一個應用平台。Google 在這個小型的 Linux 環境中,放入了 Android 需要的核心函式庫以及 Delvik 虛擬機器。應用程式撰寫時,就是使用這些函式庫的功能,運行於 Delvik 虛擬機器上。這個觀念很類似於 Java,撰寫 Java 程式時,使用的是 Java 函式庫的功能,然後運行於 Java 虛擬機器上。最近有一則 Oracle 控告 Google 在 Android 上面侵犯了 Java 專利的新聞(因為 Oracle 併購了 Sun),這後續值得觀察。
此時有了第一個基礎觀念:Android 的目錄結構,將類似於 Linux。而且如果有文字操作介面,應該也與 Linux 無異。

第二件事

如果是從 WinCE 開始接觸的人,可能都有過一種經歷:任意惡搞系統,當掉之後,執行個 hard reset,一切乾乾淨淨,從頭開始。所以,除了刷 ROM 之外,完全不用擔心,可以盡情的對系統檔案惡搞:反正死當了,只要來個 hard reset,一切又可以重來。

這樣想吧。在 WinCE 環境中,是將儲存的 ROM,切成兩塊區域。一塊是用來儲存原始系統映像檔,而另外一塊,則是當磁碟機來使用。

有些人購入新的 NB 時,會發現原廠就已經替使用者設定好系統還原的功能。而且會註明,原本可用空間 120GB 的硬碟,之所以只有 100GB 可用,是因為有 20GB 用來儲存系統映像檔。也因為這一個儲存系統映像檔的 20GB 的環境是不讓使用者更動的,所以當使用者的系統故障時,就可以透過還原機制,從儲存的系統映像檔,將整個系統還原至剛入手的狀態。
那,基本上 WinCE 就可以用這樣的觀念來理解。

如果手上有一台 WinCE 的機器,它的 ROM 空間有 512MB。而系統映像檔的容量為 130MB,表示這台機器,可用來儲存的空間為 512MB - 130MB = 382MB。然後 hard reset 後,從系統映像檔讀出來的檔案,安裝到可用空間,系統部份使用了 142MB,表示使用者真正可用來儲存的空間為 382MB - 142MB = 240MB。(實際上當然不完全是這樣,但是用這種方法解釋,應該是最容易理解的)。

但是這個觀念不能帶入 Android。Android 系統中所謂的 factory data reset,並不像 WinCE 一般,是將整個作業系統與環境「重新安裝」。

Android 是運行於 Linux 之上的一個應用平台,它不是 OS 本身。Android 運行時,使用者資料都儲存在系統的 /data 之下。Android 的 factory data reset,僅僅是將 /data 與 /cache 目錄清除而已!系統其他部份都沒有動作。用個比較容易理解的方法來講解,那就是,類似 Windows 作業系統中,將一個使用者帳戶刪除,然後重建一個新的帳戶,如此而已。

所以,如果要對 Android 運行的 Linux 作業系統做任何刪除檔案的動作時,請確定你知道你在做什麼!!如果不知道要動作的檔案本身是做什麼用的,請不要下手!否則,可能會造成手機無法再運作。

也因為這樣,所以不建議「刪除檔案」。建議將不需要的檔案搬到 SD 卡上,而不是直接刪除:至少之後如果反悔了,也才有東西找得回來。










沒有留言: