制作ROM教程 編譯篇_第1頁
制作ROM教程 編譯篇_第2頁
制作ROM教程 編譯篇_第3頁
制作ROM教程 編譯篇_第4頁
制作ROM教程 編譯篇_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 ROM 教程 編譯篇 制作手機(jī)ROM,也就是我們平時(shí)說的刷機(jī)包,至少你要對一些概念有所了解,例如刷機(jī),recovery,root,adb等等。這些基本概念不用介紹了,大家平日接觸過有個(gè)概念就行。 我們所做的ROM是將一些主流的ROM適配到我們自己的手機(jī)上去,例如cm miui flyme等等,做ROM也有很多種途徑,移植,插樁適配,源碼編譯。我們現(xiàn)在就學(xué)習(xí)兩個(gè)方向做ROM,插樁適配和編譯。移植ROM雖然上手難度小一點(diǎn),但是情況太多修復(fù)bug也比較麻煩,這里就不論述了,有興趣可以自己試試。 對于剛開始學(xué)習(xí),一個(gè)手機(jī)是否合適還是有很大影響的。如果你的手機(jī)很合適,基本照著教程輸完命令也就出包了。比

2、如在開發(fā)者里人人皆知的nexus系列,當(dāng)然國產(chǎn)的一加手機(jī)也是開發(fā)者中的首選。不過一些比較熱門的手機(jī)也會(huì)比較好做,開源的就好。這個(gè)給大家一個(gè)地址 然后去搜索一下你的手機(jī)代號(hào)(又說道代號(hào)了,這里又要補(bǔ)充一下,每一個(gè)手機(jī)基本都會(huì)有一個(gè)代號(hào) 不再用型號(hào)稱呼 我的手機(jī)是moto g代號(hào)是falcon 比如小米4的代號(hào)是cancro 谷歌的nexus4代號(hào)是mako等等 這個(gè)你要去百度或者論壇里去查查)如果搜出來結(jié)果了像這個(gè)樣子 那你的手機(jī)device就有了(如果沒有的話,可能說明這個(gè)機(jī)型不太適合初學(xué)開發(fā),我目前剛學(xué)。如果沒有device我也不知道該怎么繼續(xù)下去。不過辦法總比困難多,想鉆研總是會(huì)有辦法的)

3、搜索到結(jié)果就像下圖 但是每個(gè)人手機(jī)情況都有別,所以到時(shí)候會(huì)碰到很多不同的原因。具體后面再說。 我們進(jìn)行制作的環(huán)境一般都不在windows下,使用的是一些linux的系統(tǒng),常用的有ubuntu,mint,debian等等等等這個(gè)看個(gè)人愛好用哪個(gè) 就像win7 win8 win10的選擇。如果你的電腦配置比較好,又不想裝雙系統(tǒng),可以用虛擬機(jī)的方式安裝。不過還是推薦用實(shí)體機(jī)安裝,這樣以后用起來比較方便,性能也能得到利用。虛擬機(jī)安裝方法這里不多說了,比較簡單,實(shí)體機(jī)安裝的時(shí)候一般把鏡像解壓到U盤 選U 盤啟動(dòng)按照提示一步一步就行。具體還請百度,裝系統(tǒng)是一個(gè)男生必須會(huì)的一項(xiàng)技能,女生就可以讓男生幫你們裝

4、(安裝的時(shí)候有個(gè)選項(xiàng)是和windows組成雙系統(tǒng),那個(gè)別選,據(jù)說選了windows就會(huì)掛,雖然我也沒試過 選下面的一個(gè)自定義的 然后把盤分一下這樣才是雙系統(tǒng) 正確操作文件不會(huì)丟失的 如果想學(xué)習(xí)編譯的話磁盤一定要大一點(diǎn)。建議100G以上。我分了200+G ) 等你安裝完了接下來可以熟悉一下操作 這個(gè)系統(tǒng)很重要一個(gè)東西就是終端 按ctrl+alt+t可以呼出終端。就長這樣 以后主要是和這玩意打交道。這個(gè)和windows下的cmd窗口差不多,這個(gè)命令也有很多 以后慢慢就熟悉了。 =之后開始開發(fā)的相關(guān)工作了= 我們這里先做一些編譯的準(zhǔn)備,就打開這個(gè)終端,輸入如下的命令,這個(gè)是安裝一些必要的軟件包:su

5、do apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g+-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2

6、-dev lib32z1-dev ( 直接復(fù)制進(jìn)去就行了,注意 這個(gè)窗口里粘貼不能用ctrl+v了 用右鍵粘貼也行 用ctrl+shift+v也行。) 之后就是下載repo了 repo這個(gè)東西我也說不清是干啥的,應(yīng)該就是管理下載的 反正以后下載源碼都會(huì)用到他 用下面命令:mkdir -p /bin /這個(gè)是新建一個(gè)叫bin的文件夾 mkdir這個(gè)是新建命令 就是你的home目錄curl > /bin/repo /這個(gè)意思是從谷歌那里拉下來repo這個(gè)程序chmod a+x /bin/repo /給這個(gè)文件夾權(quán)限echo "export PATH=/bin:$PATH"

7、 >> /.bashrc /這個(gè)是配置環(huán)境變量之后就是大頭戲了,咱們拉源碼,這里要先建立好文件夾,別到時(shí)候都放到了home下。會(huì)出來一大堆東西的我新建了一個(gè)叫做cyanogenmod的文件夾,這個(gè)都隨意。之后進(jìn)入文件夾之后右鍵打開終端,當(dāng)然你也可以打開終端用cd命令進(jìn)入。這時(shí)候會(huì)顯示這樣之后只要輸入repo init -u git:/ -b cm-12.1然后輸入 repo sync可能下載的時(shí)候要設(shè)置郵箱和你的名字什么的 有提示之后輸入這里根據(jù)自己的情況改git config -global user.email "youremail.address"

8、0;git config -global "Your Name"這里的cm12.1就是拉取cm12.1的源碼 同理你可以獲取12.0 13之類的不過。因?yàn)樘斐?,目前寫這篇教程的時(shí)候直接這樣是不能從谷歌下載東西的,所以你需要做些處理這個(gè)地址會(huì)更新可用的hosts需要的時(shí)候就去看一下然后找到23 23 23 這一段 前面這個(gè)ip是我目前獲取的可用的 到時(shí)候更新了自己去查一下然后打開終端,輸入sudo gedit /etc/hosts 之后輸入密碼就可以打開hosts這個(gè)文件吧上面那三

9、行加進(jìn)去保存。然后進(jìn)行拉取源碼的操作就行了。(這里估計(jì)得下載10+G文件 我用移動(dòng)下載可以滿速電信沒試過,哦對說到電信。咱們學(xué)校的閃訊linux下我還沒學(xué)會(huì)怎么使,wine打開沒反應(yīng)。要是高人研究出來可以告知一下)中間可以中斷,或者你發(fā)現(xiàn)網(wǎng)絡(luò)出問題了也可以中斷 在運(yùn)行中的終端輸入ctrl+z就可以了 之后開始再輸入repo sync說到repo sync這個(gè)命令 還有很多學(xué)問 后面可以加一些參數(shù) 比如-c -j4之類的 具體可以自行了解一下不同當(dāng)你把源碼都獲取完了,會(huì)自動(dòng)釋放出來很多文件,之后就很好辦了。我的源碼目錄下文件夾是這樣的簡要說明一下device就是你的機(jī)型目錄里面有你的設(shè)備文件夾

10、vendor里面是從你手機(jī)里拉取的一些文件 out到時(shí)候是生成包的目錄(這個(gè)和之后要介紹的插樁都一樣通用的)終端進(jìn)到cyanogenmod文件夾,輸入source build/envsetup.sh (終端有個(gè)自動(dòng)補(bǔ)齊功能,就是你輸入命令輸入一般按一下tab 可以自動(dòng)補(bǔ)全后面你可能要輸入的命令 不過前提是前一半輸入正確了或者能在該目錄下執(zhí)行,要是有時(shí)候沒補(bǔ)齊也沒事,自己輸入就是了 source這個(gè)命令是初始化環(huán)境的,以后打開終端進(jìn)行下面的步驟都要先輸入一下這個(gè),不然后面可能會(huì)說沒有命令啥的)之后輸入breakfast falcon(我的機(jī)型代號(hào)是falcon,這個(gè)根據(jù)你機(jī)型的名稱來)然后又會(huì)下

11、載一大堆文件,這個(gè)是你手機(jī)的device。下載到最后有可能會(huì)說一些東西找不到之類的錯(cuò)誤,沒關(guān)系先進(jìn)行下一步。用cd命令進(jìn)入到你機(jī)型的文件夾,比如我的cyanogenmod/device/motorola/falcon 輸入./extract-files.sh (前面有個(gè). 的)然后就會(huì)從手機(jī)中拉取一些文件 這個(gè)和你手機(jī)中現(xiàn)在的rom也有些關(guān)系。我試過我用flyme的時(shí)候會(huì)有些文件拉取不到??赡躥lyme系統(tǒng)中沒有這些編譯需要的文件,可以的話換一個(gè)偏原生點(diǎn)的包試試進(jìn)行完這個(gè)步驟之后可以再回到cyanogenmod文件夾下重來一次breakfast falcon了不出意外之前的那些錯(cuò)誤應(yīng)該會(huì)沒了

12、如果再出錯(cuò)可以看看出錯(cuò)的提示,具體再討論。這樣就是做好編譯的準(zhǔn)備了輸入croot然后輸入brunch falcon就可以。等著了。如果不出錯(cuò)就可以等著出包了。我的配置編譯一次得4個(gè)小時(shí)。當(dāng)然途中可能會(huì)出現(xiàn)一些錯(cuò)誤,別慌,錯(cuò)誤一般都有提示,只要解決了可以從斷點(diǎn)繼續(xù)的。一些簡單的錯(cuò)誤可能會(huì)說p里面少了一行手機(jī)的名稱啊代號(hào)啥的。這個(gè)照著路徑找到文件加上就行后面有具體說,其他的如果碰到了可以對著出錯(cuò)提示分析,百度,或者咨詢一些大神。從斷的地方繼續(xù)還是輸入brunch falcon就行每次要重新編譯的時(shí)候,最好要清除一下上次的緩存之類的文件 make clobber(應(yīng)該還有別的命令

13、make clean之類的 大家自己試試)編譯cm的方法就是這樣,不過還有很多開源的rom項(xiàng)目,比如sudamod 下載源碼的時(shí)候用sudamod的命令替換 之后breakfast的時(shí)候會(huì)提示一個(gè)sm_falcon什么的沒有 這是sudamod和cm不一樣的地方了 要稍作修改 進(jìn)到你的設(shè)備目錄下,有一個(gè)叫cm.mk的東西,打開來里面本來的cm_falcon改成sm_falcon 然后吧文件名也改成sm.mk 之后就和cm的步驟一樣了 最后編譯的時(shí)候會(huì)提示p找不到一行什么參數(shù) 你就照著他提示的目錄找到p加上哪行參數(shù)。我編譯cm的時(shí)候沒有出什么問題,編譯sudamod的時(shí)候發(fā)現(xiàn)這兩個(gè)地方有區(qū)別其他都是一樣的。 當(dāng)然這里只是提供了一個(gè)例子 開源項(xiàng)目很多 解決方法也不一樣 只要學(xué)會(huì)搜索咨詢分析,都可以解決。這個(gè)文檔也剛開始寫,后面遇到問題我也會(huì)更新,過一陣子還會(huì)寫插樁的教程祝大家玩的愉快!有問題可以提出交流。Cyanogenmod只是一個(gè)開源rom項(xiàng)目,下面也提供一些地址(github真的是個(gè)好地方)Sudamod:BO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論