自從知道 Ubuntu Touch 可以在 Nexus 7 上測試之後,就花了幾個小時閱讀以及備份,以便於在出錯誤的時候,我可以全身而退。這幾個小時作了什麼先不談,目前釋放出來的 Ubuntu Touch 真的是 preview,只能大概感受一下而已,完全無法設定;例如,我找不到設定時間的方式,我也無法刪除在螢幕上顯示的來電訊息等,一切都只是幻象而已。玩了不到 30 分鐘,就急急忙忙回覆原來的 Android,而且還要祈禱可以完整的回覆,要不然就嘔死了。
結論:目前先不要衝動去安裝 Ubuntu Touch.
以下整理一些筆記:
1. 安裝前要先備份,但是由於我是 stock recovery,所以我使用 Nexus Root Toolkit 中,Boot Temporary Custom Recovery 把所有 partitions 都先備份下來。由於我使用的 recovery 是 ClockworkMod,其備份的為位置在 /data/media/clockworkmod/backup
2. 備份完成後,再利用 Nexus Root Toolkit 將 ClockworkMod 刷進去來取代 stock recovery。
3.我參考 http://liliputing.com/2013/02/how-to-install-ubuntu-touch-on-a-nexus-7-with-windows-mac-or-linux.html 安裝 Ubuntu Touch
2013年2月28日 星期四
2013年2月16日 星期六
Nexus 7: 無法經由 OTA 升級,怎麼辦?
當初幫 Nexus 7 解鎖(也就是所謂的 unlock 和 root)的目的是為了能夠使用 OTG(on the go;也就是可以接上 USB 隨身碟讓 Nexus 7 讀寫用),可是今天希望能夠從 4.2.1 升級到 4.2.2,就算是用了 OTA RootKeeper,還是無法升級。在升級的過程中,出現倒下來的 Android 機器人。
翻了快一天的文章,不小心看到 [Q] Problem updating to 4.2.2 b/c of Beats Audio 想起來,原來是之前安裝的 Beats Audio Installer 惹的禍。由於該軟體修改了部分系統檔案,而 OTA 再升級的過程中會檢查系統檔案是否被修改過,一旦發現修改就無法升級。怎麼辦呢?
根據該討論串的說法,首先到 http://goo.im/devs/WugFresh/stock/nakasi 下載 4.2.1 的原始檔 nakasi-jop40d-factory-6ac58a1a.zip。解開其檔案內的 image.nakasi-jop40d.zip,可以得到 boot.img 和 system.img 等檔案(我們只需要這兩個檔)。
請確認 adb 和 fastboot 是最新版的(這個步驟很重要),然後輸入以下指令
adb reboot-bootloader
進入 fastboot 模式;然後輸入下列兩行指令
fastboot flash system system.img
fastboot flash boot boot.img
將 4.2.1 原始的檔案寫入 Nexus 7,寫完後就可以重新開機。這個解決方法最漂亮的地方是原來的設定和資料仍然在;雖然這樣做完,你也失去了 root,但是這可以利用 Nexus 7 Root Toolkit 重新取回 root 權限。
這樣子一來,我們就可以利用 OTA RootKeeper 來升級,並在升級後恢復 root 權限。
翻了快一天的文章,不小心看到 [Q] Problem updating to 4.2.2 b/c of Beats Audio 想起來,原來是之前安裝的 Beats Audio Installer 惹的禍。由於該軟體修改了部分系統檔案,而 OTA 再升級的過程中會檢查系統檔案是否被修改過,一旦發現修改就無法升級。怎麼辦呢?
根據該討論串的說法,首先到 http://goo.im/devs/WugFresh/stock/nakasi 下載 4.2.1 的原始檔 nakasi-jop40d-factory-6ac58a1a.zip。解開其檔案內的 image.nakasi-jop40d.zip,可以得到 boot.img 和 system.img 等檔案(我們只需要這兩個檔)。
請確認 adb 和 fastboot 是最新版的(這個步驟很重要),然後輸入以下指令
adb reboot-bootloader
進入 fastboot 模式;然後輸入下列兩行指令
fastboot flash system system.img
fastboot flash boot boot.img
將 4.2.1 原始的檔案寫入 Nexus 7,寫完後就可以重新開機。這個解決方法最漂亮的地方是原來的設定和資料仍然在;雖然這樣做完,你也失去了 root,但是這可以利用 Nexus 7 Root Toolkit 重新取回 root 權限。
這樣子一來,我們就可以利用 OTA RootKeeper 來升級,並在升級後恢復 root 權限。
2012年10月25日 星期四
把玩"魔術師" -- 幫 boot.img 換 kernel
把玩"魔術師" -- 幫 boot.img 換 kernel
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
從 Android 的架構圖中,以及自己的經驗,kernel 是一部 Android 手機,尤其是 如觸控螢幕、相機、GPS 等硬體設備,是否能正確運作的重要元素。有時候,我們 取得了一個 ROM,或許你只想把它的 kernel 換掉以便測試在同樣的環境下,使用 不同的 kernel 是否可以得到更好的硬體支援,那麼幫 boot.img 更換 kernel 的步驟就很重要了。 假設我們已經有了 Magic 32A 的 kernel 以及 wlan.ko,且假設我們已經取得了 給 Magic 32B 的 boot.img,因此我們需要手動產生給 32A 的 boot.img, 這是因為 32A 的 address 和 32B 的不同所導致。假設你已經依據文件將 kernel 編譯好了,也有了 boot.img;一般來說,其步驟包含:
- 下載 PortTools.rar。這個檔案包含了一個 Linux 的執行檔以及幾個 Perl 的執行檔,請將其 解壓所後放置於 ~/tools(或者你喜歡的任意目錄)。
- 將 boot.img 從 ~/froyo/out/target/product/sapphire 複製進來。
- 將 zImage 從 ~/froyo/kernel/arch/arm/boot 或者 CM6 EBI1/32A kernel 的壓縮檔內複製進來。
把玩"魔術師" -- 編譯 AOSP 2.2 (Froyo) 原始碼
把玩"魔術師" -- 編譯 AOSP 2.2 (Froyo) 原始碼
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
在不斷嘗試編譯 Android 2.2 的過程中,我發現了三份比較重要的文件,分別是 編譯在G1上運行的android 2.2(froyo)代碼、編譯在G1上運行的android 2.2(froyo)代碼_正規版、以及 [HOW-TO] Compile AOSP Froyo + [ROM] Latest AOSP Froyo for Sapphire。經過幾個階段的測試、彙整,目前得到以下的方式最為完整。 之前所寫的另一個版本,也提供在 這裡 僅供參考。 既然能編譯出一個堪用的 HTC Magic 32A ROM,自然要把過程寫一下給有興趣的人試試看。 不過,這絕對不是一份任何人都一定看得懂的(我有些部分也還在摸索);因為 是給自己當筆記,我只能先假設你懂一些 Linux 的基本概念。我把編譯的過程 分成幾個步驟來說:(以下的步驟絕大部分都是在 Ubuntu/Linux 上執行)
- 你需要幫自己安裝一部執行 Linux 的電腦,AOSP 的文件建議使用 Ubuntu,而我安裝的是 Ubuntu 10.04 x86 32 bit 版。為了不影響平常的 使用,我是將 Ubuntu 安裝在一個名為 VirtualBox 的虛擬機器上;VirtualBox 是一套 Windows 的免費軟體,當在 VirtualBox 內執行 Ubuntu 的時候,電腦 基本上就同時執行 Windows 和 Ubuntu。當你將 Ubuntu 安裝完後,記得先用 "更新管理員"將所有軟體進行更新。
把玩"魔術師" -- 編譯 AOSP 2.1 (Eclair) 原始碼
把玩"魔術師" -- 編譯 AOSP 2.1 (Eclair) 原始碼
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
為了達到第一個目標 -- 自己編譯 AOSP(Android Open Source Project),便開始收集 資料,目前進度極緩慢,所以先把一些有用的資料集結在此,做個筆記,有機會再讓它 成為一篇完整的文章。在慢慢達成目標的過程,分成幾個階段,分別描述如下: 第一階段主要是參考 [HOW-TO] Compile AOSP Froyo + [ROM] Latest AOSP Froyo for Sapphire 這一串討論文。在編譯過程充滿了一些完全不知道要如何處理的困難(看起來基本功 不紮實),就算勉強解決了,可惜編譯出來的 image 檔無法在 Magic 上執行,也找不到 答案。這個階段有幾次想放棄,想想看:都這麼老了還玩?有沒有搞錯? 雖然這一階段的挫折最大,但是以下的文件也有不少是來自這一串討論文。
第二階段主要是參考 編譯 android 2.1 (eclair) 源碼 For HTC G1,這個文章是編譯給 HTC Dream 的,基本上這篇文章是參考一篇日文的文章 EclaironADP1andADP2,雖然看不懂日文,但是從指令可以看出想要編譯給 ADP2 (根據 Android FAQ,ADP2 是 Magic 32B),應該也可行。看文章跟著做的過程中,有不懂得就順便 Google 一下找答案,有 答案的,我會順便把它筆記下來。這一次的編譯,過程輕鬆多了,從頭到尾只 碰到如下的錯誤訊息
target StaticLib: libwebcore (out/target/product/sapphire-open/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a)
make: execvp: /bin/bash: Argument list too long (中文的錯誤訊息是"引數列項目過長")
make: *** [out/target/product/sapphire-open/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a]
把玩"魔術師"
把玩"魔術師"
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
目錄
大概是在 2009 年的 7 月買了人生第一部 Android 手機 -- HTC Magic,買它的原因 不外乎當初玩 Unix/Linux 的情形類似,因為畢竟 Android 的核心還是 Linux, 而且開發應用程式的程式語言是 Java(看的懂得人,不要暗笑,會內傷 ;-) )。 買了之後,玩了一陣子,也試著開發 一些小程式,算是滿意的;可是隨著 Google 不斷的推出,不到一年的時間,Android 的版本快速的從 1.5,發展到 2.2,甚至有傳言 2010 年的 10 月 Google 會推出 3.0 。 (其實這樣快速的大變動,是好的嗎?如果從企業經營的資訊策略 來看,會有什麼影響?要不要慢一點?) 這樣的發展,有什麼影響,目前還不能一探全貌,但是對我來說有下列幾點感想:
2012年10月16日 星期二
製作自創的開機動畫
把玩"魔術師" -- 製作自創的開機動畫
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
使用過 Android 的使用者都知道,在手機開機過程除了第一個開機畫面是靜止的 之外(大多呈現公司的名稱或者 logo),第二個開機畫面大多是以動畫的方式 呈現。刷過機的人也都知道,刷機後的第二個開機畫面都跟原廠提供的不同, 也就是說,第二個開機畫面是可以自製的,所以這份文件就是在說明如何自製 開機動畫。請留意,我本人不是一個藝術創造者,所以在文件中,我找了一個 網友製作的動畫進行修改,而且修改的部分是以文字為主;有創作天份的網友 可以自行修改畫面的其他部分。
自己加裝開機動畫,能不能在沒有 root 的情形下進行,我不 知道。需要 root,或許有些風險;這些風險要自行承擔。
首先,先說一個簡單的作法(或者說測試方式)。請到第二個參考資料的網頁去下載 一個現成的開機動畫檔。例如,我下載的是 Boing by Qteknology;如果想先看看 動畫是什麼樣子,請在 "preview Boing" 點一下即可觀賞。把檔案下載完成後, 請將檔案名稱更改為 bootanimation.zip,並確保你的手機與電腦已經 連結,並且可以經由 adb devices 看到該設備的名稱;然後請下:
adb remount adb push bootanimation.zip /data/local
adb pull /system/media/bootanimation.zip orig-bootanimation.zip
adb remount adb push bootanimation.zip /system/media
自製第一個開機畫面
把玩"魔術師" -- 自製第一個開機畫面
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
使用過 Android 的使用者都知道,在手機開機過程除了第一個開機畫面是靜止的 之外(大多呈現公司的名稱或者 logo),第二個開機畫面大多是以動畫的方式 呈現。刷過機的人也都知道,刷機後的第二個開機畫面大多跟原廠提供的不同, 但是第一個開機畫面幾乎都跟買機時的畫面相同。如果你想安裝一份不同的開機 畫面,那麼這份文件就是你要閱讀的。 更改第一個開機畫面是有一定的風險的,這些風險是 你要自行承擔的;不要說我沒警告你!
2012年10月14日 星期日
把玩"魔術師" -- 認識、把玩 APK 檔
把玩"魔術師" -- 認識、把玩 APK 檔
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
在製作自己的 ROM 之前,我們假設你已經可以取得必要的 image 檔或者 由網友已經製作好的 ROM;如果是 image 檔,你需要至少 boot.img 以及 system.img;如果是網友已經製作好的 ROM,大都以 zip 檔的型態出現。 如果你使用 Kitchen 的話,不論是 image 檔或者 zip 檔,它都可以完整的 把整個 ROM 解開來。解開 ROM 之後,一般我們會看到 boot.img (用來開機的 映像檔),META-INF 裡面包含一些簽章以及刷 ROM 過程的程式,以及 system 目錄。由於製作 ROM 只是修改 ROM 的部分內容 -- 嚴格的說,一些 文件檔、apk 檔等,我們並不會真正的修改程式碼,因此認識 apk 檔就成為 非常重要的概念。這個階段結束了之後,或許我會投入 Android 的程式, 也就是 apk 的開發。
2012年10月13日 星期六
自製 DHD 官方 Sense 3.0 ROM
自製 ROM (Case 2)
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
最近 HTC Desire DHD 的使用者大概都聽說了一個消息:Sense 3.0 的官方 RUU 已經在歐洲釋出了,可是台灣還是不動如山,完全沒有任何消息(如果真的 如此,我下一隻手機絕不會是 HTC,甚至投靠韓廠手機都可以接受;真的是 一整個無言)。
安裝 Kitchen
安裝 Kitchen
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
在製作自己的 ROM 之前,你必須安裝 dsixda 的 Kitchen,而使用 Kitchen 必須 先安裝 Java 的 JDK 以及 Cygwin。在安裝 Cygwin 和 Kitchen 之前,我們假設 你已經安裝了 Java 的 JDK。安裝的步驟如下:
製作自創的 ROM
製作自創的 ROM
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
如果"你"是刻意的來到這個網頁,我相信絕大多數應該都已經刷過機了。 最簡單的刷機,就是到 XDA 或者對岸的機鋒網下載一個 ROM(當然這個 ROM 必須配合你的手機型號,以及手機上的 SPL 和 Radio 的版本), 然後把這個 ROM 檔(大多是一個 ZIP 檔)儲存在 sdcard 內,然後 進入所謂的 recovery 模式,在刪除掉 data(wipe data)之後,將該 ZIP 刷到(flash)到手機內;最後重新開機就完成了。 刷機的人,在一開始大概都會有一個階段是"看到 ROM 就刷",因為好像永遠 找不到一個完全符合自己需要的 ROM,等到刷機狂熱退燒之後,或許有些人會 跟我一樣開始思考:我能不能找到一個最符合我的需求的 ROM?如果不能, 我能不能自己來做一個?
把玩"魔術師" -- 編譯 HTC Kernel 原始碼
把玩"魔術師" -- 編譯 HTC Kernel 原始碼
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
在編譯 AOSP 的原始碼過程中,我們可以清楚的知道,其編譯主要分成 kernel 的編譯以及 AOSP 平台的編譯;而 kernel 的編譯需要取得適當的 kernel 原始碼, 否則就算編譯成功,可能也會無法正常使用;而編譯 AOSP 的過程中,我們也需要 一些從之前的 ROM 中解出來的 .so 檔。(疑問:這些 .so 檔究竟在架構中是屬於 哪一塊?應該不是 device drivers,因為驅動程式的副檔名應該是 .ko 才對,那麼 這些 .so 檔究竟是架構圖中綠色的 libraries 還是 Android Runtime 系統的 藍色 Core Libraries?)
2012年9月28日 星期五
如何把時鐘和文字放在同 一個畫面?
如何把時鐘和文字放在同一個畫面?
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
現在你已經知道怎麼把文字(也就是 Hello World)或者時鐘(剛剛的練習題)放到螢幕上,可是怎麼把兩個以上的 GUI 元件放到螢幕上呢?說明 setContentView() 的時候,我們說明了該方法只能有一個參數,而且該參數必須是 View 或者其子類別的物件,這項限制也說明了:如果利用這樣的方式使用 setContentView(),只有一個 GUI 元件可以顯示在螢幕上。為了瞭解是否能解決這種限制,除了搜尋之外,另一個方式就是找 API 文件。
當然一定要 Hello World:難的部分
當然一定要 Hello World:難的部分
This document is provided as is. You are welcomed to use it for
non-commercial purpose.
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
如果你來到這個網頁,相信你已經執行完你的第一個 Android 程式:Hello World;由於我們採用的是"知難行易"的方式來說明,相信之前的操作(行易)還蠻簡單的,可是只會操作而不知其所以然,想要繼續開發 Android 程式會非常困難,所以這份文件試著只解釋必須知道的部分 -- 知難。
2012年9月26日 星期三
把玩"魔術師" -- 編譯 AOSP 2.2 (Froyo) 原始碼
把玩"魔術師" -- 編譯 AOSP 2.2 (Froyo) 原始碼
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
在不斷嘗試編譯 Android 2.2 的過程中,我發現了三份比較重要的文件,分別是 編譯在G1上運行的android 2.2(froyo)代碼、編譯在G1上運行的android 2.2(froyo)代碼_正規版、以及 [HOW-TO] Compile AOSP Froyo + [ROM] Latest AOSP Froyo for Sapphire。經過幾個階段的測試、彙整,目前得到以下的方式最為完整。 之前所寫的另一個版本,也提供在 這裡 僅供參考。 既然能編譯出一個堪用的 HTC Magic 32A ROM,自然要把過程寫一下給有興趣的人試試看。 不過,這絕對不是一份任何人都一定看得懂的(我有些部分也還在摸索);因為 是給自己當筆記,我只能先假設你懂一些 Linux 的基本概念。我把編譯的過程 分成幾個步驟來說:(以下的步驟絕大部分都是在 Ubuntu/Linux 上執行)
把玩"魔術師" -- 編譯 AOSP 2.1 (Eclair) 原始碼
把玩"魔術師" -- 編譯 AOSP 2.1 (Eclair) 原始碼
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
看其他教材
為了達到第一個目標 -- 自己編譯 AOSP(Android Open Source Project),便開始收集 資料,目前進度極緩慢,所以先把一些有用的資料集結在此,做個筆記,有機會再讓它 成為一篇完整的文章。在慢慢達成目標的過程,分成幾個階段,分別描述如下: 第一階段主要是參考 [HOW-TO] Compile AOSP Froyo + [ROM] Latest AOSP Froyo for Sapphire 這一串討論文。在編譯過程充滿了一些完全不知道要如何處理的困難(看起來基本功 不紮實),就算勉強解決了,可惜編譯出來的 image 檔無法在 Magic 上執行,也找不到 答案。這個階段有幾次想放棄,想想看:都這麼老了還玩?有沒有搞錯? 雖然這一階段的挫折最大,但是以下的文件也有不少是來自這一串討論文。 第二階段主要是參考 編譯 android 2.1 (eclair) 源碼 For HTC G1,這個文章是編譯給 HTC Dream 的,基本上這篇文章是參考一篇日文的文章 EclaironADP1andADP2,雖然看不懂日文,但是從指令可以看出想要編譯給 ADP2 (根據 Android FAQ,ADP2 是 Magic 32B),應該也可行。看文章跟著做的過程中,有不懂得就順便 Google 一下找答案,有 答案的,我會順便把它筆記下來。
把玩"魔術師"
把玩"魔術師"
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
目錄
- 編譯 AOSP 2.1 (Eclair) 原始碼
- 編譯 AOSP 2.2 (Froyo) 原始碼
- 製作自創的 ROM
- 準備工作:安裝 Kitchen
- 認識、把玩 APK 檔
- 自製第一個開機畫面
- 製作自創的開機動畫
大概是在 2009 年的 7 月買了人生第一部 Android 手機 -- HTC Magic,買它的原因 不外乎當初玩 Unix/Linux 的情形類似,因為畢竟 Android 的核心還是 Linux, 而且開發應用程式的程式語言是 Java(看的懂得人,不要暗笑,會內傷 ;-) )。 買了之後,玩了一陣子,也試著開發 一些小程式,算是滿意的;可是隨著 Google 不斷的推出,不到一年的時間,Android 的版本快速的從 1.5,發展到 2.2,甚至有傳言 2010 年的 10 月 Google 會推出 3.0 。 (其實這樣快速的大變動,是好的嗎?如果從企業經營的資訊策略 來看,會有什麼影響?要不要慢一點?) 這樣的發展,有什麼影響,目前還不能一探全貌,但是對我來說有下列幾點感想:
2012年9月25日 星期二
DHD 官方解鎖+Root 後,可以做系統更新嗎?
(04/29/2012)
前幾個星期,HTC 針對 DHD 又釋放出新的更新,將原版本 3.13.*.* 升級為 3.16.*.*。由於忙,在加上想要了解 DHD 官方解鎖後並加上 root 了之後,再更新 root 會不會不見,才拖到現在來升級。
根據過去幾篇文章的結論,我先把 fastboot 從 UNLOCKED 改成 RELOCKED,然後就開始更新了(這是錯誤的,請先看完文章再說)。一開始一切順利,也看到 HTC 的官方 recovery 在刷新的更新檔;不幸的是,刷完後畫面居然出現 recovery 的紅色驚嘆號,我想這下失敗了。按著 Vol+ 和 power 鍵進入 recovery 的 menu,出現以下畫面:
錯誤訊息顯示 /system/app/SystemUI.apk 的檔案跟安裝程式預期的不同。想了一下,過去曾經刷過 UOT 的圓形電池圖示,所以 SystemUI.apk 跟原來系統提供的不同。想要更新就必須在 RELOCKED 之前,先把之前修改的 /system/app/SystemUI.apk 和 /system/framework/framework-res.apk 先覆蓋回去;否則 RELOCKED 之後,檔案無法覆蓋回去。(經過幾次測試,RELOCKED 之後,雖然好像仍然保有 root[正確覆蓋了 SystemUI.apk 和 framework-res.apk],但是修改後的系統檔案在重新開機後又回到 UOT 的 SystemUI.apk 和 framework-res.apk。
嗯,這樣子看起來,我利用官方解鎖 + root 之後想要輕鬆升級,並不那麼輕鬆,必須把修改過的檔案在 RELOCKED 之前,把檔案先複製回去。
前幾個星期,HTC 針對 DHD 又釋放出新的更新,將原版本 3.13.*.* 升級為 3.16.*.*。由於忙,在加上想要了解 DHD 官方解鎖後並加上 root 了之後,再更新 root 會不會不見,才拖到現在來升級。
根據過去幾篇文章的結論,我先把 fastboot 從 UNLOCKED 改成 RELOCKED,然後就開始更新了(這是錯誤的,請先看完文章再說)。一開始一切順利,也看到 HTC 的官方 recovery 在刷新的更新檔;不幸的是,刷完後畫面居然出現 recovery 的紅色驚嘆號,我想這下失敗了。按著 Vol+ 和 power 鍵進入 recovery 的 menu,出現以下畫面:
錯誤訊息顯示 /system/app/SystemUI.apk 的檔案跟安裝程式預期的不同。想了一下,過去曾經刷過 UOT 的圓形電池圖示,所以 SystemUI.apk 跟原來系統提供的不同。想要更新就必須在 RELOCKED 之前,先把之前修改的 /system/app/SystemUI.apk 和 /system/framework/framework-res.apk 先覆蓋回去;否則 RELOCKED 之後,檔案無法覆蓋回去。(經過幾次測試,RELOCKED 之後,雖然好像仍然保有 root[正確覆蓋了 SystemUI.apk 和 framework-res.apk],但是修改後的系統檔案在重新開機後又回到 UOT 的 SystemUI.apk 和 framework-res.apk。
嗯,這樣子看起來,我利用官方解鎖 + root 之後想要輕鬆升級,並不那麼輕鬆,必須把修改過的檔案在 RELOCKED 之前,把檔案先複製回去。
訂閱:
文章 (Atom)


