|
該教程不僅適用于t959也同時(shí)適用于所有的2.3rom的移植,不過(guò)具體出現(xiàn)的bug需要針對(duì)性的解決了
yan大寫(xiě)了些相關(guān)教程,我把我自己理解的部分簡(jiǎn)化寫(xiě)成好理解一些的發(fā)出來(lái),希望t959移植內(nèi)核和rom漫天飛揚(yáng)~ 其實(shí)rom移植很簡(jiǎn)單主要包含了這么幾部分: 1.內(nèi)核部分 就是一個(gè)名字是boot.img的文件,這個(gè)文件一般都在刷機(jī)包的根目錄下(刷機(jī)包可以直接用rar解壓),這是內(nèi)核但是具體修改內(nèi)核的事情就超出我能力范圍了,也太過(guò)復(fù)雜鑒于這是一個(gè)為了讓大家都能學(xué)會(huì)的教程,這里略過(guò)不表; 2.基帶部分 一般其他機(jī)器rom的基帶我們是不能拿過(guò)來(lái)直接用的,拿過(guò)來(lái)直接用的結(jié)果大部分是無(wú)信號(hào)或是嚴(yán)重的通話質(zhì)量問(wèn)題,所以一般情況下,都要刷回本身機(jī)器的基帶,跟基帶有關(guān)的文件有這么幾個(gè),也是在刷機(jī)包的根目錄下:modem.bin(這個(gè)就是基帶本身了),erase_image,busybox,updater.sh。如果都是2.3這幾個(gè)文件不需要修改直接拿過(guò)來(lái)用就可以了,updater.sh這個(gè)文件可以用notepad2之類(lèi)的軟件打開(kāi),有能力的可以打開(kāi)看看。 3.鍵盤(pán)布局 在\system\usr這個(gè)目錄下有keychars和keylayout兩個(gè)文件夾,如果說(shuō)我現(xiàn)在要移植一個(gè)i9000的rom,這是rom名字是9000,而我需要拿t959刷機(jī)包下的keychars和keylayout兩個(gè)文件夾替換掉9000rom對(duì)應(yīng)路徑下的這兩個(gè)文件夾,如果不替換的話一般情況是觸摸屏幕失靈,至少我實(shí)驗(yàn)下是這個(gè)情況。這兩個(gè)文件夾直接拿過(guò)來(lái)去替換就好了,有能力的可以具體研究?jī)蓚€(gè)文件夾下文件的作用。 4.wifi部分,這部分不是一定要替換的,有的rom會(huì)在修改內(nèi)核后wifi失靈,我移植cm內(nèi)核到miui下的時(shí)候wifi失靈了,我把修正wifi的方法順便寫(xiě)出來(lái)吧 具體是這幾個(gè)文件: system\bin目錄下的wlan_cu、wlan_loader、wpa_cli、wpa_supplicant這4個(gè)文件; system\etc\wifi目錄下的tiwlan.ini; wifi\system\lib目錄下的libwpa_client.so; system\lib目下的modules文件夾下的所有文件; 我在移植cm內(nèi)核到miui下的時(shí)候,修正wifi只需要把system\lib目下的modules文件夾下的所有文件替換掉就行了,不需要替換其他的。 5.GPS部分 目前修正959gps的補(bǔ)丁包含這兩個(gè)文件AngryGPS.apk和gpsd,把gpsd移到\system\vendor\bin下,把AngryGPS.apk移到system\app下 關(guān)于i9000 rom GPS驅(qū)動(dòng)修改為959驅(qū)動(dòng)的方法目前我也沒(méi)太搞明白就不具體描述了 6.打包的方法,如果是移植rom的話把上面我提到的文件直接替換到想要移植的9000 rom下就可以了,在rar下操作,不要解壓縮,直接在rar下替換就可以了。 如果是制作內(nèi)核或基帶就需要提到updater-script這個(gè)文件了,這個(gè)文件在\META-INF\com\google\android目錄下,這個(gè)文件可以直接用notepad2軟件打開(kāi)編輯 下面我寫(xiě)的,就是我之前那個(gè)跟進(jìn)cm內(nèi)核的補(bǔ)丁下updater-script的內(nèi)容,簡(jiǎn)單說(shuō)包括這些內(nèi)容:移植cm內(nèi)核,修正gps補(bǔ)丁,修改wifi文件,以及修改基帶。updater-script 具體內(nèi)容如下: mount("yaffs2", "MTD", "system", "/system"); show_progress(0.200000, 0); ui_print(" "); ui_print("+++ CM 74 ** MI +++"); ui_print(" "); show_progress(0.600000, 0); package_extract_file("bml_over_mtd", "/tmp/bml_over_mtd"); set_perm(0, 0, 0777, "/tmp/bml_over_mtd"); package_extract_file("bml_over_mtd.sh", "/tmp/bml_over_mtd.sh"); set_perm(0, 0, 0777, "/tmp/bml_over_mtd.sh"); show_progress(0.200000, 10); package_extract_dir("system/", "/system/"); show_progress(0.200000, 10); package_extract_file("updater.sh", "/tmp/updater.sh"); set_perm(0, 0, 0777, "/tmp/updater.sh"); package_extract_file("busybox", "/tmp/busybox"); set_perm(0, 0, 0777, "/tmp/busybox"); package_extract_file("erase_image", "/tmp/erase_image"); set_perm(0, 0, 0777, "/tmp/erase_image"); package_extract_file("modem.bin", "/tmp/modem.bin"); set_perm(0, 0, 0777, "/tmp/modem.bin"); show_progress(0.100000, 0); assert(package_extract_file("boot.img", "/tmp/boot.img"), write_raw_image("/tmp/boot.img", "boot"), run_program("/tmp/bml_over_mtd.sh", "boot", "72", "reservoir", "2004", "/tmp/boot.img"), delete("/tmp/boot.img"), run_program("/tmp/updater.sh") == 0); show_progress(0.100000, 0); unmount("/system"); 如果是做內(nèi)核的話為了能在recovery刷包,需要把對(duì)應(yīng)rom下\META-INF文件夾的內(nèi)容完整的復(fù)制到你制作的內(nèi)核中,例如我移植cm內(nèi)核到miui下就需要把miui rom下的\META-INF文件夾的內(nèi)容完整的復(fù)制到我制作的內(nèi)核中,然后修改updater-script文件。 嗯具體內(nèi)容差不多了,等我想起來(lái)了再補(bǔ)充 我以前帖子里有我做的cm內(nèi)核大家可以下下來(lái)解壓縮后研究下里面的內(nèi)容,可以少走不少?gòu)澛贰?/font> |
|
|
來(lái)自: 天馬行空之我 > 《手機(jī)Android》