Android移植簡明教程
更新時間: 2012-09-17 10:39:48來源: 粵嵌教育瀏覽量:2079
其實移植并不難,主要看你有沒有耐心。比如我拿MOTO XT701來舉例,這里以目前CM7系列2.3.7版本系統爲基礎,其他系統略有不同。
要移植,就要了解系統的結構和打包解包:
打包很容易,只需要制作成ZIP格式的壓縮包就行了,里面包含2個文件夾和1個boot.img文件, boot.img是內核,沒有內核的系統是不能運行的,另外兩個文件夾一個是system,也就是Android系統所 在地,另一個是META-INF,這里一般存放是刷機腳本,我們移植一般需要改的就是system文件夾里的內容 。
解包就是解壓縮。
首先說結構,system下有:
App文件夾(存放內置軟件的地方,每個軟件都有自己的名字標注著,很容易識別,在移植上除 USB.apk必須用咱們自己的版本以外,其他可以用同分辨率機型的APP直接替換)
Bin文件夾(本文件夾一般存放的是開機運行的腳本和一些系統必備代碼,一般移植出了問題不能開 機就是這里的問題,一般我們用702的或者720的ROM里的,注意除了NETD需要用701的外,其他也可以直接 用702或者720ROM的,不過一般系統升級不會修改這里,在移植的時候,要刪除2nd-init以及所有.sh腳本 文件,這些對701是沒有效果的,如果電池顯示?,那么可以通過替換battd文件來修復)
Etc文件夾(本文件夾里存放著這種配置文件,包括WIFI,藍牙和基帶 {\etc\motorola\bp_nvm_default}配置文件,A-GPS的文件和Hosts文件也在這里,media_profiles.xml可 以控制錄像質量,cameraCalFileDef5M.bin與cameraCalFileDef8M.bin是照相的數據庫文件,都可以修改 ,子文件夾init.d文件夾下可以寫入自己的開機腳本,來實現一些程序或者腳本開機啓動,如果想要執行 某模塊,可以添加一個文件,不要有后綴名,格式爲00aaa 00是執行序號,系統開機時會按順序執行, aaa是爲了區別每個腳本的名稱,可以隨便寫)
Font文件夾(字體文件夾,沒什么好解釋的,你可以替換爲你喜歡的字體)
Framework文件夾(系統框架結構文件目錄,這個目錄下是系統服務和系統界面的所在地,一般不可 以單獨替換,要移植的話必須全部替換,不然會卡M,framework-res.apk文件就是系統語言,界面的所在 文件,修改他就可以直接修改系統界面,framework-res.apk必須與app文件夾中systemui.apk配套,不然 開機會出現狀態欄FC,不同版本不可以亂用,比如CM7.1.0.5不能用CM7.1.0.4的文件)
Lib文件夾(本文件夾是系統所需要用到的驅動,庫文件的所在,如果某程序FC或者無法正常運轉, 可能是這里的問題,我把我知道的一些文件的用途說一下:
***Lib/dsp文件夾 DSP驅動所在,一般不需要改
***lib/egl 顯示芯片驅動,一般不需要改
***libaudio.so 話筒及音頻驅動 必須用701的
***libaudioflinger.so 音頻附屬驅動 必須用701的
***libbridge.so 相機方面
***libbattd.so 電池驅動
***libcamera.so 相機驅動 必須用701的
***libcameraservice.so 相機服務驅動
***libfmradio.so FM驅動
***libHPImgApi.so 圖片接口驅動 必須用701的
***libLCML.so 未知驅動 必須用701的
***liboemcamera.so 相機驅動 必須用701的
***libOMX.TI.JPEG.Encoder.so 照片編碼器 必須用701的 否則照片黑
***libOMX.TI.AAC.decode.so 此類型的都是編碼器和解碼器驅動(多媒體)
除上述紅色文件必須用701外,其他文件可以直接用702或者720的。
Media文件夾(鈴聲及開機動畫)
TTS文件夾(文字轉語音文件夾)
Usr文件夾(鍵盤文件與各類數據庫)
Xbin文件夾(系統工具文件夾)
Build.prop文件(系統參數文件,修改這里可以調節系統部分參數與性能)
如:默認虛擬機大小,鈴聲延遲,系統版本等
一般來說只要遵循規律,由少至多移植,不會出現什么問題,出現問題就從頭開始,多積累經驗,慢慢就會了。