[Android] 刷機的原理 - Xperia Go的心得整理
不耐煩者,請直接跳"正文總算開始"。
我過了一個很空虛、死宅的一個2013跨年,原本我的原定計劃是到日月潭拍日出,但就在看
著電視的31號晚上,我開始發覺時間不太夠用。
一轉眼電視就看到快要倒數的時刻了,我一邊看電視,一邊把手機給Root完成,然後接著開始看刷機的資料。
一直到倒數前,我仍然搞不懂刷機的部分到底是怎麼一回事,以前認識的作業系統大概的架構就是有一個bootloader一個作業系統的Image,但為什麼我在網路上看到的都是分享Image,又提到Kernel、elf、sin...一堆奇怪的名字,但沒什麼人提到bootloader這一端?
後來找到XDA的Xperia go的Android大師的文章- munjeni,不太清楚他是不是有其他的合作夥伴,但我這次刷完機後,開始對Android開發商的架構規劃開始有點認識...或許有機會,花一個週末搭建一個compiler Android kernel/source code應該是可行的。
好的,總算倒數結束了,煙火也放完了,剩我一個人抱著電腦回到房間,繼續看著資料,我突然想到別人說的~刷機很容易呀...暗...我怎麼一直撞壁。
一直到凌晨四點多,我仍然還沒有進展,最後我選擇先眯一下了,看來我也沒機會去日月潭拍日出了。
九點多的時候,我突然醒過來,又拿起筆電看著昨天還沒看完的資料,慢慢的~睡過一覺腦袋果然開始工作了。
我整理出一個,Android開機流程的思緒。
在網路上我們可以看到很多Image檔案,又或者叫Kernel,又或者副檔名是.elf,事實上他們都是一樣的東西,也就是OS的核心加上Android的JVM、Android SDK,還有...recovery tool...。
就目前各大廠而言正規的流程是,你必須要到官方網站申請unlock bootloader的序號,而這個序號就跟你的IMEI、MEID有關。當你在網路上申請到了unlock的序號時,就表示你放棄了官方的保固。
但聽說有其他不用unlock就可以刷機的方式?我還不是很肯定,只是看到有人提到這樣的關聯...。
所以說,當你要開始刷機時,也打算用正規的做法時,就是先到官網申請unlock的序號,然後去找到fastboot/官方的unlock工具的軟體,它可以幫你unlock bootloader,然後你就可以刷進去你自己的recovery tools,也就是說~為所欲為的時候到了。
(通常網路上下載的壓縮檔中都會有一個boot.img的檔案,也就是第三方的recovery工具)
事實上,刷第三方軟體時,也順帶要unlock bootloader讓startup的code可以切換到Recovery的系統上。
Android phone上,bootloader之後,存在著兩種模式,一個是正常的開機模式,另一個是Recovery模式。
依Xperia Go為例,解鎖bootloader前,你再開機過程中看到Sony的字時,狂按"音量上昇鍵"是沒反應的,但解鎖後,開機過程中看到Sony的字時,狂按"音量上昇鍵",就會切換進入Recovery mode(前提是你已經把Recovery tool刷進去板子內了)。
也就是說開機流程應該是這樣▼
CPU power on -> startup.s(組語初始化chip) -> bootloader -> event -> recovery mode
No event -> Android On
▼CWMRecovery模式下的樣子
目前網路上比較知名的Recovery工具就是CWM,也就是ClockworkMod的縮寫。
接下來,有了Recovery的工具,我們就可以利用CWM把整個CyanogenMod壓縮包裝放到系統的磁區,然後你就完成了刷機最主要的動作了,然後舊的系統就被取代了。
恭喜你~如果你有如神通的了解我說的,我想你現在已經開始刷機了。事實上,似乎是不難,但熟悉各家OEM Unlock bootloader的方式,要花上一點時間。但現在網路上都很多人有更詳細的介紹了。
而我昨天卡關最久的時間點,就在用Sony Xperia的Flash tool...Orz..
原來他們新的emma flash tool,不需要註冊,結果我花很多時間在等註冊信的回覆,你只要把configuration檔案copy到安裝目錄下,就解決我等註冊的問題了。
事實上,我是個刷機菜鳥,只是添加一些之前的經驗,試圖把刷機的流程合理化。我猜想~應該有很多小細節還是不太合理,歡迎提出來討論:P
下次再發一篇,把Xperia Go的刷機流程詳細寫出來,不然我真怕我忘了。
我過了一個很空虛、死宅的一個2013跨年,原本我的原定計劃是到日月潭拍日出,但就在看
著電視的31號晚上,我開始發覺時間不太夠用。
一轉眼電視就看到快要倒數的時刻了,我一邊看電視,一邊把手機給Root完成,然後接著開始看刷機的資料。
一直到倒數前,我仍然搞不懂刷機的部分到底是怎麼一回事,以前認識的作業系統大概的架構就是有一個bootloader一個作業系統的Image,但為什麼我在網路上看到的都是分享Image,又提到Kernel、elf、sin...一堆奇怪的名字,但沒什麼人提到bootloader這一端?
後來找到XDA的Xperia go的Android大師的文章- munjeni,不太清楚他是不是有其他的合作夥伴,但我這次刷完機後,開始對Android開發商的架構規劃開始有點認識...或許有機會,花一個週末搭建一個compiler Android kernel/source code應該是可行的。
好的,總算倒數結束了,煙火也放完了,剩我一個人抱著電腦回到房間,繼續看著資料,我突然想到別人說的~刷機很容易呀...暗...我怎麼一直撞壁。
一直到凌晨四點多,我仍然還沒有進展,最後我選擇先眯一下了,看來我也沒機會去日月潭拍日出了。
九點多的時候,我突然醒過來,又拿起筆電看著昨天還沒看完的資料,慢慢的~睡過一覺腦袋果然開始工作了。
我整理出一個,Android開機流程的思緒。
-----正文總算開始-----
在網路上我們可以看到很多Image檔案,又或者叫Kernel,又或者副檔名是.elf,事實上他們都是一樣的東西,也就是OS的核心加上Android的JVM、Android SDK,還有...recovery tool...。
就目前各大廠而言正規的流程是,你必須要到官方網站申請unlock bootloader的序號,而這個序號就跟你的IMEI、MEID有關。當你在網路上申請到了unlock的序號時,就表示你放棄了官方的保固。
但聽說有其他不用unlock就可以刷機的方式?我還不是很肯定,只是看到有人提到這樣的關聯...。
所以說,當你要開始刷機時,也打算用正規的做法時,就是先到官網申請unlock的序號,然後去找到fastboot/官方的unlock工具的軟體,它可以幫你unlock bootloader,然後你就可以刷進去你自己的recovery tools,也就是說~為所欲為的時候到了。
(通常網路上下載的壓縮檔中都會有一個boot.img的檔案,也就是第三方的recovery工具)
事實上,刷第三方軟體時,也順帶要unlock bootloader讓startup的code可以切換到Recovery的系統上。
Android phone上,bootloader之後,存在著兩種模式,一個是正常的開機模式,另一個是Recovery模式。
依Xperia Go為例,解鎖bootloader前,你再開機過程中看到Sony的字時,狂按"音量上昇鍵"是沒反應的,但解鎖後,開機過程中看到Sony的字時,狂按"音量上昇鍵",就會切換進入Recovery mode(前提是你已經把Recovery tool刷進去板子內了)。
也就是說開機流程應該是這樣▼
CPU power on -> startup.s(組語初始化chip) -> bootloader -> event -> recovery mode
No event -> Android On
▼CWMRecovery模式下的樣子
目前網路上比較知名的Recovery工具就是CWM,也就是ClockworkMod的縮寫。
接下來,有了Recovery的工具,我們就可以利用CWM把整個CyanogenMod壓縮包裝放到系統的磁區,然後你就完成了刷機最主要的動作了,然後舊的系統就被取代了。
恭喜你~如果你有如神通的了解我說的,我想你現在已經開始刷機了。事實上,似乎是不難,但熟悉各家OEM Unlock bootloader的方式,要花上一點時間。但現在網路上都很多人有更詳細的介紹了。
而我昨天卡關最久的時間點,就在用Sony Xperia的Flash tool...Orz..
原來他們新的emma flash tool,不需要註冊,結果我花很多時間在等註冊信的回覆,你只要把configuration檔案copy到安裝目錄下,就解決我等註冊的問題了。
事實上,我是個刷機菜鳥,只是添加一些之前的經驗,試圖把刷機的流程合理化。我猜想~應該有很多小細節還是不太合理,歡迎提出來討論:P
下次再發一篇,把Xperia Go的刷機流程詳細寫出來,不然我真怕我忘了。
留言
張貼留言