畢竟想要深入一個東西,知其所以然會比較好
=============
其實我滿鼓勵刷機的,因為可以學很多OS的觀念
但我覺得要學就要學的精準些,而不是大家刷我就刷
要把每個利弊都弄清楚

學到的東西才是你的
=============
我很誠懇的建議
先搞懂android的軟體基本架構
以及稍微熟悉Embedded linux的作業系統概念,再考慮改機
因為弄不好你的i9k就會沒辦法開機
如果Bootloader、Kernel、Filesystem、partition這些基本名詞都不是很理解的人
那還真的蠻危險的
一直慫恿沒有電腦基礎的人改機
這件事就跟你把一台linux電腦拿給你奶奶用,並且要求他替換kernel和修改filesystem一樣
也許你寫好一個script讓人一個動作就能替換好,但是一旦出了問題,什麼都不懂的人可能會束手無策沒辦法處理,你也沒辦法幫他處理吧?
普通使用者來說,一個設備能正常使用就很好了
=======================
也許有人會說:
SecretR wrote:
就跟CPU、顯卡買來忍不住就是會想超頻一樣
人是會想追求極限的XDrz
但是事實上超頻玩家佔一般玩家的比例是多少?
我沒說玩家不能追求極限,但是一般使用者可能不太需要這些"極限"
一般人把自己的IMEI刷掉了或者不能開機接電話,又求助無門的時候
難道要我們這些PO教學文章的玩家負責嗎?
我們玩家有足夠的技術能力應付這些狀況,但一般人呢?
看到一大堆人都刷掛自己的手機
大家還是要釐清觀念阿......

========================
基本上正確的觀念是,把android手機看做是一台電腦
裡面跑的作業系統是linux
linux的特點就是,可以替換kernel(系統核心)
以及kernel可以搭配不同軟體環境可以有不同的distribution(官方公布韌體套裝方案,俗稱原生版)
基於原生版,三星官方會針對自己家手機的硬體環境做修改,不定期的出一些distribution
google的distribution最快,現在出到2.2.1
三星現在歐洲最新版本是2.2,歐洲的distribution代號為JPO
台灣中文最新distribution是2.2,代號JPD
不同的distribution內部的軟體、驅動程式和kernel也不同,所以2.1和2.2的kernel不能互換,這是因為不同版本的kernel,裡面搭配的lib不同
而要在android上面替換不同的kernel或distribution,其實就像幫電腦重新灌xp或者win7一樣
從1.6到2.2,其實非常類似從XP到win7
而因為linux的kernel有source code可以自己修改編譯,filesystem也可以自由修改
現在的玩家比較流行的玩法有兩種:
1. 修改kernel達到CPU超頻(OC)或調整電壓(UV)以及新的音頻視頻驅動程式(voodoo)
這類的修改最近很流行,其實現在燒的全部zImage都是這類
本質上來說,就只是單純的用自己編的zImage,替換掉原本的zImage,zImage是linux使用的kernel檔案名稱
不勝枚舉,例如Voodoo、Universal Lagfix Kernel、Froyo OC/UV Kernel、Super Optimized...等等
2. 修改filesystem,把原本的RFS替換成ext2/4或者其他,達到更好的讀寫速度
這類型的修改,台灣俗稱卡三爽或者lagfix,本質上,就是用ext2/3/4等filesystem 格式取代掉三星的RFS格式
為什麼要取代?因為RFS為了延長flash晶片的壽命,所以採用了比較安全的寫入機制,但這個機制的讀寫速度比較慢,會讓i9k在使用上的時候有點lag,所以我們把RFS重新格式化成ext2/4
至於什麼是ext2/3/4,簡單說就跟windows下的FAT、NTFS是一樣的東西,不過這個東西是給linux用的
這兩個玩法,刷機不小心可能就會讓手機不穩定甚至無法開機
有什麼細節想到再繼續補充
=============
很多人不知道的一點
就是我們在刷韌體的時候,實際上也在消耗flash的寫入次數,事實上flash的寫入次數是有限制的
過度頻繁的刷機有可能導致存放韌體的flash物理區塊壞掉,再也無法寫入
這不是危言聳聽,小弟有開發embedded linux系統數年的經驗,自己刷壞過一些開發版
但一般使用者不會那麼頻繁的刷機測試,不用擔心會刷壞
但一天如果刷個幾十次的當飯吃的重度玩家,則需要擔心了
=============
而且,大家似乎都把SLC架構NAND Flash的抹除次數當成全部的NAND Flash抹除次數了
事實上NAND Flash比較流行的有三種架構:SLC MLC TLC
SLC:成本高昂,容量比較小,但是速度很快,而且有10萬次的抹除上限,但不會用在手機,都用在高端的SSD
MLC:成本普通,現在一般的SSD和手機包含iphone都用它,抹除次數理論值是1萬次
TLC:成本低廉,容量很大,常用在隨身碟,但是只有500次的抹除次數( 沒錯就是500次
關於Flash是不是很容易刷壞的問題,我只能說,不要相信電子產品給你的理論耐用值
你覺得現在哪一顆硬碟在電腦玩家的使用下,能正常用到保固期之後的呢?
=============
有大大提到Flash chip的wear leveling的問題,事實上因為bootloader要讀的是存在Flash裡面的Kernel 和 File System的physical位置而不是logical位置
所以刷機(包含kernel和filesystem是直接往NAND Flash固定physical位置寫入,沒意外的話,這樣子刷法wear leveling是等同無效的

而且,很多人搞錯的點在於,wear leveling是針對"抹除"的平均,而不是寫入的平均,所以如果沒有FTL的情況下(我相信手機沒有,只有SSD有),你直接下寫入位置,就會寫入physical位置
=============
從國一開始玩電腦超頻,到現在也10幾年了,也不算新手
所以有大大提到電子產品要壓榨極限,我本身也是認同啦
但事實上,並不是每一個人都能承擔壓榨極限導致的錯誤
沒有電腦玩家基礎的人玩超頻可能只是在增加自己送修的次數以及增加不必要的麻煩