[經驗技巧] 【ROM移植教程】近期將其他機型rom移植到小米1的經驗總結

====

http://www.miui.com/thread-1052979-1-1.html


本帖最後由 喝雪碧的蝦 於 2013-3-17 10:35 編輯

近期折騰移植rom有了很多成果,特地把它做成教程發上來。
1、寫在前面
看這篇教程,你必須有如下基礎:能夠解包rom和打包rom,有基礎調試能力(起碼你得會logcat。。)
也奉勸大家不要輕易嘗試百度上那些rom移植教程,我按照那些教程的步驟一次都沒成功過,倒是有一次手機險些變磚。
我不是什麼高手,移植出現問題請自己負責,有錯誤歡迎指出,但請勿罵人。
本教程在移植cm10/xui4.1.2/cm10.1時測試通過,其他系統請自行測試,遇到問題別忘了logcat。

2、底包的選擇
移植rom,首先要選擇一個和小米1/1s相近的手機,再選擇它的rom進行移植。
我推薦的機型有:HTC Sensation(G14/18)/Lt26i

3、下載小米手機的rom
我推薦下載 深度os 作爲移植參考包,不建議使用官方包,因爲官方包的代碼和很多rom都有很大差異。

4、解包
用安卓廚房等工具對底包(被移植rom)和移植參考包(小米手機的rom)進行解包以便移植

5、替換boot.img
將移植參考包(小米手機rom)裏的boot.img複製到底包(被移植rom)裏面,替換掉。這裏替換的是內核,如果內核不正確,那就根本不能開機。

6、移植lib/bin層和etc/usr配置
lib層包含了所有硬件驅動(HAL)和其他必備庫文件,因此我們要對lib層進行移植。
此步移植,我們需要參考一個文件https://github.com/iptux/android_device_xiaomi_mione_plus/blob/jellybean/proprietary-files.txt
訪問這個網址,然後切換到移植參考包(小米手機rom)的/system/文件夾裏面,對照網頁,提出所有那個網頁裏提到的文件,覆蓋到底包(被移植包)的對應文件夾裏面。
替換完成後,還需要從移植參考包內,提取出/system/etc/vold.fstab,替換到底包裏面對應位置。
然後,別忘記從/system/usr裏提取keylayout和idc裏面的文件並替換到底包,這裏不替換會出現按鍵與觸摸屏問題
另外,Cyanogenmod系列的rom,在/system下有一個firmware,請保持和/system/etc/firmware一樣。

7、修改build.prop
把build.prop裏面有關機型的配置修改一下,可以參考小米手機官方rom,改完後還需要找到rild.libpath一行,將等號後面引號裏面的內容改成/system/lib/libril-qc-qmi-1.so

8、修改刷機腳本
將底包META-INF裏面的刷機腳本中關於機型驗證的代碼刪除,再修改mount命令,改成小米適用的,這點可以參考官方包的刷機腳本,具體修改方法可以問百度,我就不多介紹了。

9、打包、簽名、刷機
將你修改完的底包進行打包然後簽名,用第三方recovery刷入測試。(出現status7錯誤,可能是刷機腳本出錯,也可能是系統分區空間不足,可以重新分區或者精簡rom)
如果能夠開機進入系統,那麼恭喜你移植基本成功(我用此法移植的cm10和XUI成功開機進入系統),下面就是漫長的調試和bug解決了。

10、寫在最後
目前按照此法移植的rom,主要問題就是wifi不能用,相機不能用,目前我還沒有研究出解決辦法,大家可以參考網上其他機型的解決辦法慢慢研究,畢竟這些bug不是一兩天就能搞定的。移植rom的樂趣,就在於當你解決一個bug時的那種特別的喜悅之情。我也希望看見有更多的人加入到rom移植的行列裏來,希望大家能夠給小米1製作更多的rom。
特別鳴謝:ROM開發大神iptux,謝謝提供移植文件列表。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章