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

下載本文檔

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

文檔簡(jiǎn)介

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

2、如在開(kāi)發(fā)者里人人皆知的nexus系列,當(dāng)然國(guó)產(chǎn)的一加手機(jī)也是開(kāi)發(fā)者中的首選。不過(guò)一些比較熱門(mén)的手機(jī)也會(huì)比較好做,開(kāi)源的就好。這個(gè)給大家一個(gè)地址 然后去搜索一下你的手機(jī)代號(hào)(又說(shuō)道代號(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è)你要去百度或者論壇里去查查)如果搜出來(lái)結(jié)果了像這個(gè)樣子 那你的手機(jī)device就有了(如果沒(méi)有的話,可能說(shuō)明這個(gè)機(jī)型不太適合初學(xué)開(kāi)發(fā),我目前剛學(xué)。如果沒(méi)有device我也不知道該怎么繼續(xù)下去。不過(guò)辦法總比困難多,想鉆研總是會(huì)有辦法的)

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

4、(安裝的時(shí)候有個(gè)選項(xiàng)是和windows組成雙系統(tǒng),那個(gè)別選,據(jù)說(shuō)選了windows就會(huì)掛,雖然我也沒(méi)試過(guò) 選下面的一個(gè)自定義的 然后把盤(pán)分一下這樣才是雙系統(tǒng) 正確操作文件不會(huì)丟失的 如果想學(xué)習(xí)編譯的話磁盤(pán)一定要大一點(diǎn)。建議100G以上。我分了200+G ) 等你安裝完了接下來(lái)可以熟悉一下操作 這個(gè)系統(tǒng)很重要一個(gè)東西就是終端 按ctrl+alt+t可以呼出終端。就長(zhǎng)這樣 以后主要是和這玩意打交道。這個(gè)和windows下的cmd窗口差不多,這個(gè)命令也有很多 以后慢慢就熟悉了。 =之后開(kāi)始開(kāi)發(fā)的相關(guān)工作了= 我們這里先做一些編譯的準(zhǔn)備,就打開(kāi)這個(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è)東西我也說(shuō)不清是干啥的,應(yīng)該就是管理下載的 反正以后下載源碼都會(huì)用到他 用下面命令:mkdir -p /bin /這個(gè)是新建一個(gè)叫bin的文件夾 mkdir這個(gè)是新建命令 就是你的home目錄curl > /bin/repo /這個(gè)意思是從谷歌那里拉下來(lái)repo這個(gè)程序chmod a+x /bin/repo /給這個(gè)文件夾權(quán)限echo "export PATH=/bin:$PATH"

7、 >> /.bashrc /這個(gè)是配置環(huán)境變量之后就是大頭戲了,咱們拉源碼,這里要先建立好文件夾,別到時(shí)候都放到了home下。會(huì)出來(lái)一大堆東西的我新建了一個(gè)叫做cyanogenmod的文件夾,這個(gè)都隨意。之后進(jìn)入文件夾之后右鍵打開(kāi)終端,當(dāng)然你也可以打開(kāi)終端用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之類(lèi)的不過(guò)。因?yàn)樘斐?,目前?xiě)這篇教程的時(shí)候直接這樣是不能從谷歌下載東西的,所以你需要做些處理這個(gè)地址會(huì)更新可用的hosts需要的時(shí)候就去看一下然后找到23 23 23 這一段 前面這個(gè)ip是我目前獲取的可用的 到時(shí)候更新了自己去查一下然后打開(kāi)終端,輸入sudo gedit /etc/hosts 之后輸入密碼就可以打開(kāi)hosts這個(gè)文件吧上面那三

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

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

11、載一大堆文件,這個(gè)是你手機(jī)的device。下載到最后有可能會(huì)說(shuō)一些東西找不到之類(lèi)的錯(cuò)誤,沒(méi)關(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)系。我試過(guò)我用flyme的時(shí)候會(huì)有些文件拉取不到。可能flyme系統(tǒng)中沒(méi)有這些編譯需要的文件,可以的話換一個(gè)偏原生點(diǎn)的包試試進(jìn)行完這個(gè)步驟之后可以再回到cyanogenmod文件夾下重來(lái)一次breakfast falcon了不出意外之前的那些錯(cuò)誤應(yīng)該會(huì)沒(méi)了

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論