中文字幕在线精品_久操成人_免费国产一区二区_日韩二区三区_有码一区_欧美成人a

安卓清理大師
您當前位置: 刷機教程 -移植教程
MIUI ROM移植教程(以移植到Incredible為例)
發布日期:2014/1/13 來源:ROM基地 編輯:ROM基地 20856 閱讀 2評論
本文為MIUI移植教程,先來講解一下ROM包的結構,然后詳細講解如何移植MIUI,以HTC Incredible移植MIUI為例。

ROM結構

如何移植MIUI?Android的ROM都是一個經過簽名的zip包,我們看一下這個zip包的格式:
1.png 
目錄結構應該在很多地方都有介紹過,為了完整性,我還是簡單地介紹一下:
META-INF
這里面主要是簽名文名和刷機時執行的腳本(updater-script),移植時,我們主要要更改的就是刷機的腳本。
system
這里面就是android的系統部分
app
這里存放的是系統的app,每個app都有兩個文件,一個*.apk,一個*.odex,我們在移植時,要將這個文件合并到對應的*.apk里面去,apk文件其實就是一個zip文件,可以用WinRAR或7zip打開的,當然,合并odex文件不是把它改名直接放到apk里去這么簡單的,后面具體介紹一下。還有,這個文件夾里面的程序,刷完以后是不能通過程序管理來卸載的。
bin
這里面存放的是native程序,不好意思,一下子忘掉中文怎么說了。簡單來說,apk是JAVA程序,而這個是C/C++的程序。
etc
這里面存放的是系統默認的配置文件,GPS的配置也在這里J。
fonts
這個是字體文件夾,一般很少改動, 除非要做美化
framework
這里存放的是android框架,移植MIUI,很多改動在這個文件夾里,美化ROM的話, 主要改framework-res.apk就可以了。當然,MIUI本身就有主題機制了,不用這么麻煩去改。這個文件夾里也會有對應的odex文件。
lib
一些通過的類庫,一般是由app/bin里面的程序調用的。
media
媒體文件,要添加系統默認的鈴聲就在這里了。如果是別的ROM的話, 壁紙也會放在這里面。
usr
這個文件夾我不知道如何解釋,移植時,鍵盤布局文件就在這里面
xbin
擴展命令文件夾,一般不動它,有一些ROM可能直接用busybox來替代了。
1.     build.prop
這個文件也類似于一個配置文件,它主是描述了這個ROM的版本,對應的機型名稱,還會有部分的硬件配置,移植的時候我們也會要修改這個文件。
 
2.boot.img
系統核心,其實就是Linux內核部分,這個img也是可以解開來定制的,但我沒有試過。如果你喜歡新的核心的話,可以將這個文件替換掉,不過要兼容才行。
 

移植方法

下載完ROM以后,用解壓工具解壓到一個目錄,先將odex合并到apk文件中去,這里要用到工具,有兩個工具可以用:
xUltimate: http://www.droidforums.net/forum ... ease-xultimate.html
合并的方法比較簡單,以xUltimate為例,將app里面的所有文件拷到origi_app里面,將framework里面的所有文件拷到origi_frame里面,再運行程序,再過幾個選項就可以進行轉換了,轉換好會放到另一個文件夾里面,把原來的文件刪掉,把生成的放回去就可以了。如果轉換過程中失敗了,應該是JAVA的版本低了,升級到最新的JRE試一下。
如果用Droid Builder合并的話,稍微簡單一點,選擇ROM的文件夾,點Deodex就可以進行合并了。
刪除APP2SD相關的文件,這好像成了傳統,從n_i_x開始移植MIUI開始,一直都這樣,我也沒試過保留這個會怎么樣。要刪除的文件是固定的,大家可以用下面這個腳本:
del bin\a2sd /s /q
del bin\apps2sd /s /q
del bin\apps2sd.hlp /s /q
del bin\boota2sd /s /q
del bin\busybox.a2sd /s /q
del bin\chka2sd /s /q
del bin\fixa2sd /s /q
del bin\jita2sd /s /q
del bin\launcha2sd /s /q
del bin\starta2sd /s /q

del etc\init.d\04apps2sd /s /q

del xbin\a2sd /s /q
del xbin\apps2sd /s /q
大家要注意的是APP2SD和A2SD+是兩個概念,大家可以自己去搜一下,如果大家有興趣,可以研究一下Incredible的A2SD+和DATA2SD+,這樣可以提高I/O速度。
替換Incredible專用的文件,一般我們下載的MIUI ROM都是Desire或N1的,我們下載了以后,要先把Incredible專用的文件替換進去:boot.img
 
這個前面介紹過了。這個可以從安智論壇的ROM中拿,也可以自己下載CyanogenMod的Incredible ROM中提取。也可以到XDA上面下載新的AOSP核心。
bin/vold 
這個文件是解決內部存儲(EMMC)的一部分,Incredible的內存分成了幾個分區,前面兩個是data和cache,第三個就是EMMC,早期的vold代碼在掛載一個掛載點的時候,是以磁盤為單位的,而不是以分區為單位,CM最新的代碼解決了這個問題,大家自己編譯或從新的ROM里拿就可以了。
etc/firmware 
這整個文件夾都可以替換掉(注意,是etc下面的firmware)
etc/AdieHWCodecSetting.csv 
這個要加進去,音頻解碼相關
etc/agps_rm 
這個可以不用加,空文件,不知道有何用。為何險,可以加一下。
etc/AudioBTID.csv 
音頻相關,替換掉
etc/gps.conf 
GPS的配置,可以自己去搜一下,了解如何改后,可以自己動手改一下。
etc/TPA2018.csv 
加進去,不知道何用。
etc/vold.fstab 
分區表,必須替換,解決EMMC的另一步, 之后還有一步
lib/hw/lights.inc.so, lib/hw/sensors.inc.so 
刪掉lights.bravo.so和sensors.bravo.so替換成這兩個。
lib/modules/bcm4329.ko 
WIFI驅動,替換掉。
lib/liblog.so 
打LOG用的,替換掉,不然,出錯了,沒法查LOG,不看LOG的同學可以不用換。
usr/keychars/incrediblec-keypad.kcm.bin 
刪掉bravo-keypad.kcm.bin,替換成這個。這是個二進制文件,雖然我每次都替換了,但我從LOG來分析,這個文件一直沒起到作用,我看了很多Incredible的ROM,也包括官方的,這個文件一直沒變過,真是奇怪。
usr/keylayout/incrediblec-keypad.kl 
刪掉bravo-keypad.kl,替換成這個。這個是Incredible的鍵盤布局配置。
到此為止,簡單的工作都做完了。下面要開始修改文件了。
修改刷機腳本 
這個比較簡單,一般只要修改前面幾行,把條件改一下,再加一段歡迎詞,請對照我提供的文件進行修改。
修改build.prop 
請對照我提供的文件進行修改,請注意一下,里面所有ro.cdma的都是需要的,有一行:
ro.cdma.home.operator.alpha=中國電信
有些編輯器可能會顯示成亂碼,如果不行,用記事本修改好了。
還有內部存儲相關的兩條配置也別忘了:
ro.phone_storage = 1
ro.additionalmounts=/mnt/emmc

做完了以上的步驟,Incredible的移植算完成了大部分了,已經可以做成刷機包試一下了,但還有幾個問題沒有解決:
內部存儲EMMC支持還差一步通知欄上面不會顯示中國電信,還會顯示漫游圖標圖庫和音樂播放器不支持內部存儲 
這幾個問題不能光靠替換文件來完成,需要多做一些事情。我們要使用幾個工具來幫助我們來解決這幾個問題。
解決內部存儲問題 
前面說過,MIUI基于早期的CM,MountService這個類不支持Incredible的內部存儲,我們要替換成CM的MountService代碼,因為代碼都已經編譯了,所以,我們要先進行反編譯。要用到baksmali工具,可以用我附件提供的工具包中的腳本。
先用解壓工具打開framework/services.jar,不用解壓,直接將classes.dex拖到工具包的文件夾中再拖動classes.dex到"解包dex.bat"上面,過一會兒,就會生成一個out文件夾將out文件夾重命名,隨便啥名都可以,比如services.miui用解壓工具打開我之前ROM里面services.jar,也用同樣的方法解包dex同樣將out文件夾重命名,比如services.cm打開services.cm/smali/com/android/server,在這個文件夾里面找到所有以MountService開頭的文件,拷貝并替換services.miui里面相應的文件完成替換后,將services.miui拖動到"打包dex.bat"上面,會生成一個out.dex的文件將out.dex重命名成classes.dex,直接替換framework/services.jar里面的文件就可以了,不用重新簽名這樣,MountService的替換就完成了 
一個問題需要說明一下,一定要用我的ROM里面的services.jar,不能用CM的。我基于CM的代碼做了一點修改,解決內部存儲掛載的時候主界面FC的問題,具體的改動,改天我再寫一往篇來說明吧,其實,一共就改三行代碼。
解決漫游圖標的問題 
這個問題比較好解決,用解壓工具打開我的ROM里面的framework/framework-res.apk,找到res/xml/eri.xml文件,替換掉MIUI里面的就可以了。也不用重新簽名。eri.xml文件是經過加密的。原文是:
< ?xml version="1.0" encoding="UTF-8"?>
< EriFile VersionNumber="1357" NumberOfEriEntries="1"EriFileType="1">
< CallPromptId Id="0" CallPromptText="CallPromptId0"/>
< CallPromptId Id="1" CallPromptText="CallPromptId1"/>
< CallPromptId Id="2" CallPromptText="CallPromptId2"/>
< EriInfo RoamingIndicator="128" IconIndex="1"IconMode="0" EriText="中國電信"CallPromptId="0" AlertId="0" />
< /EriFile>
解決圖庫和音樂對內部存儲的支持 
跟解決MountService的方法類似,要替換app/MediaProvider.apk里面的MediaScannerReceiver和MediaScannerService開頭的文件,這個可以用我或者是CM里面的替換都可以。更簡單的方法,直接替換MediaProvider.apk文件也是可以的。因為最近這個apk好像都沒有改動。

這樣,我們的移植就算完成了,接下來就是生成ROM了,我們用壓縮工具將ROM打包成zip格式,注意目錄結構,生成的zip根目錄就有MATE-INF和system,別搞錯了。將打包好的zip文件拷到工具包當中,改成update.zip,再雙擊sign.bat進行簽名,簽名后就生成了update_signed.zip了。
移植MIUI基本都是大同小異。
把簽名后的ROM拷到卡上刷機吧~~


 
發表評論
點擊換圖
發表
主站蜘蛛池模板: 国产精品久久久久久永久牛牛 | 亚洲精品国产综合一线久久 | 自拍偷拍亚洲视频 | 免费网站看v片在线成人国产系列 | 国产女人成人精品视频 | 亚洲尹人九九大色香蕉网站 | 国产h片在线观看 | 欧美日韩国产高清一区二区三区 | 日韩视频一区二区 | 日韩第一页在线观看 | 日韩美在线 | 天天做天天爱夜夜爽毛片毛片 | 国产va在线视频观看 | 亚洲精品成人久久 | 欧美综合视频 | 亚洲视频入口 | 精品国产综合成人亚洲区 | 亚洲第二页 | 国产高清一区二区三区 | 久久久网久久久久合久久久久 | 91午夜精品亚洲一区二区三区 | 五十路在线播放 | 亚洲第一区视频在线观看 | 欧美精品一二三 | 亚洲一区二区三区91 | 精品日韩欧美一区二区三区 | 日韩亚洲欧美在线 | 国产成人精品第一区二区 | 综合亚洲一区二区三区 | 欧美 第一页 | 欧美亚洲国产精品久久久 | 亚洲一区二区三区四区在线观看 | 成人毛片免费免费 | 国产精品视频播放 | 精品久久一 | 国产黄色免费看 | 国产精品电影一区二区三区 | 亚洲欧美日本在线观看 | 亚洲日韩欧美综合 | 天天操天天插天天干 | 欧美日韩在线精品一区二区三区 |