綜合討論
瀏覽 : 4636
分享

[教程] (開發教程)從源碼編譯CM 11+jdk安裝+ubuntu安裝

一般用戶

等級2

新手鄉民

joemou2014-11-3 00:41

適用型號cm有支援即可
測試版本htc m7+ubuntu 14.04 lts



一.前言:

注意!此偏文章需root和s-off


二.安裝linux


1.下載linux
linux系統有頗多的,有ubuntu,debian....但聽很多人說ubuntu比較簡單,所以在就用ubuntu當作教學啦~





Debian下載址:https://www.debian.org/CD/
ubuntu下載址:http://www.ubuntu-tw.org/modules/tinyd0/



請照我上方的照片進行勾選
如果有CD片,就燒八
如果沒有就用隨身碟八

2.將ubuntu放置隨身碟裡(燒CD的可忽略)

請先將usb隨身碟格式化為FAT32的格式





下載unetbootin:http://unetbootin.sourceforge.net/
請選擇目前使用系統的相應版本



請照下方圖片進行選擇







點下去後~找到剛剛下載的檔案
接著選擇磁碟





3.安裝ubuntu

確定裝到隨身碟後,就將電腦關機八,進入bios,設定bios為USB隨身碟開機,至於怎麼進入bios,就是在開機的時候連續按某鍵(每牌不一樣, asus為F12,其他牌請自行百度喔!!!)



選擇default按下enter(上圖)



上方為開啟畫面

接著就可以開始安裝囉



直接按桌面上install ubuntu即可囉! !
安裝操作都挺人性化



但磁碟分割上會有些問題
除非你是買一顆新的硬碟
就直接安裝下去即可
我也因ubuntu買了一棵新硬碟
但我還是點選了其他
因為這樣資料比較不容易遺失


在此提供一些的分法

基本分法也是直接安裝的默認設定



xp和ubuntu同個硬碟分法

*假如空硬碟想裝雙系統,請先灌windows再灌ubuntu,不然ubuntu會被清掉

進階分法



伺服器分法

]

三.安裝jdk

*編譯cm 11 jdk版本應為1.6~1.7,以上以下皆不可!!如有其他版本請先移除!!
載點:http://www.oracle.com/technetwork/java/javase/downloads/ jdk7-downloads-1880260. html

安裝教學(開啟終端的方法:ctrl+alt+t)

(1)將剛剛下載下來的東西直接解壓或使用指令(指令後面jdk....的部份要跟你下載檔名一樣喔)
  1. tar -zxvf jdk-7u65-linux-x64.tar. gz
複製代碼
(2)複製解壓縮後的資料夾jdk_1.7.0_65到/usr/lib/jdk/目錄下面可以使用指令直接複製,也可以開起有root權限的檔案總管直接複製(指令後面jdk....的部份要跟你下載檔名一樣喔)
  1. cp -r ~/Downloads/jdk1.7.0_65/ /usr/lib/jdk/
複製代碼
開起有root權限的檔案的指令
  1. sudo nautilus
複製代碼
(3)設置環境變數,打開文件/etc/profile,可以使用指令直接開啟編輯,也可以用有root權限的檔案總管開啟
  1. sudo vi /etc/ profile
複製代碼
(4)在文件的最後端加上:(後面jdk....的部份要跟你下載檔名一樣喔)[ /backcolor]
  1. export JAVA_HOME=/usr/lib/jdk/jdk1. 7.0_65
  2. export JRE_HOME=/usr/lib/jdk/jdk1.7.0_65/jre
  3. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  4. export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
複製代碼
(5)將系統默認的jdk修改過來,也就是java和javac指令由系統自帶的換成你自己安裝的(後面jdk....的部份要跟你下載檔名一樣喔)
  1. sudo update-alternatives --install /usr /bin/java java /usr/lib/jdk1.7.0_65/bin/java 300
複製代碼
  1. sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk1.7.0_65/ bin/javac 300
複製代碼
  1. sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.7.0_65/bin/java 300
複製代碼
  1. sudo update -alternatives --install /usr/bin/javac javac /usr/lib/jdk /jdk1.7.0_65/bin/javac 300
複製代碼
(6)檢查版本
  1. java -version
複製代碼
如果出現以下字樣,代表成功

java version "1.7.0_65"
Java(TM) SE Runtime Environment
Java HotSpot(TM) Server VM


四.編譯CyanogenMod

1安裝與設定repo
  1. mkdir -p ~/bin
  2. PATH=~/bin:$PATH
  3. cd ~/bin
  4. ~/bin
複製代碼
第1条指令為:建立bin资料夹 http://commondatastorage.googleapis.com/git-repo-downloads/repo >
第2條指令為:將~/bin加入於環境配置中
第3條指令為: 轉移到~/bin
第4條指令為:在此網址中取得repo並下載於~/bin



執行完以上指令後,repo會被下載到家目錄裡的bin資料夾中,可以開啟bin資料夾檢查



再輸入一行指令
  1. chmod a+x ~/bin/repo
複製代碼
設定repo檔案權限為a+x

2下載cm-11
  1. mkdir -p ~/android/system
複製代碼
  1. cd ~/android/system/
複製代碼
  1. repo init -u git://github.com/CyanogenMod /android.git -b cm-11.0
複製代碼
第1條指令為:在" ~/ "下建立android目錄,android目錄中再建立system目錄
第2條指令為:轉移到~/android/system
第3條指令為:從"git://xxxxxxxx"中初始化repo

開始下載CyanogenMod源碼(16GB)嚇到了八~哈哈
確保你正位於~/android/system
  1. repo sync
複製代碼
慢慢等八~下載完看下一步


3準備device-specific code
*從其他地方下載到的源碼(通常為tgz格式)中可能包含device-specific code,這點請留意。
*此步驟僅支援有CyanogenMod官方支援(cyanogenmod official support)的裝置,其他裝置請參閱。
*說真的,我不太確定device-specific code該怎麼翻譯,翻成裝置個別碼又有點奇怪,大家把它當做每台Android裝置的個別架構就好。

每台Android裝置的device-specific code不一定相同,舉例來說,一樣是32GB ROM不能插卡的情況下,LT26i的分區裡只有一部份能裝載應用程式(/data),再分一大部份作為儲存裝置;而Nexus5卻是全部能裝載應用程式又能當做儲存裝置。因此,我們要取得device-specific code之後才能為個別的裝置編譯ROM。

*這個步驟會透過CyanogenMod開發的懶人程式自動配置device-specific code,免除手動添加Device tree、vendor tree、hardware tree、kernel架
確保你已經在~/android/system中若未在此位置請輸入(cd ~/android/system)
  1. source build/envsetup .sh
複製代碼
  1. breakfast m7
複製代碼
*New one (gsm)代號為m7,其他機型請個別百度



4提取裝置自身的blobs(連接時務必將手機開啟USB偵錯模式,否則無法正常提取!)
請下載符合自己linux的版本
http://developer.android.com/sdk/index.html
進行解壓
進入資料夾內的sdk/platform-tools中,找到fastboot,adb,把兩個檔案用滑鼠右鍵複製,再貼上到家目錄下
  1. cd ~/
  2. sudo su
  3. mv adb /bin
  4. mv fastboot /bin
  5. cd /bin
  6. chmod 777 adb
  7. chmod 777 fastboot
  8. exit
複製代碼
第1條指令為:轉移到~/
第2條指令為:用sudo的方式使用root帳號
第3條指令為:移動adb到/bin
第4條指令為:移動fastboot到/bin
第5條指令為:轉移到/bin
第6條指令為:設定adb權限為777
第7條指令為:設定fastboot權限為777
第8條指令為:離開root帳號

確定是否被安裝
  1. adb version
複製代碼
將裝置連上電腦,準備提取資料囉! !
  1. ./extract-files.sh
複製代碼
提取完後,你可以拔開傳輸線!編譯囉

編譯cm-11

確定你已經在~/android/system中
  1. . build/envsetup.sh
複製代碼
  1. brunch m7
複製代碼
將m7更換成你裝置的代號

]

出現以上圖片就代表你完成囉!!
至/home/android/system/out/ta​​​​rget/product/m7看你的結果八~


五.常遇上的問題

如果下在cm-11時中斷怎麼辦??
  1. repo sync
複製代碼
跟原本指令一樣他就會繼續下在囉

如果想知道編譯時間??
  1. time brunch m7
複製代碼
將m7更換成你裝置的代號

如果編譯時當掉怎麼辦??
再一次進入~/android/system中
然在打一次下方指令
他就會繼續
  1. . build/envsetup.sh
複製代碼
  1. brunch m7
複製代碼


刷rom進去時為什麼會出現錯誤??ex: status 0,status 7

這是因為你的Rercovery或updater-script的問題
請使用cwm
並下載最新版
https://www.clockworkmod.com/rommanager


六.結束


本文章最後由( joemou )於 2014-11-3 00:46 編輯

本文章最後由( joemou )於 2014-11-16 01:59 編輯

改~改~改~我要我掌控自己手機~給我全部改光光~
檢舉 回應

一般用戶

等級2

新手鄉民

htc讚2014-11-3 00:56

哇...第一次看到HTC論壇有人會發表這些東西....0.0

不過這些對我們想學這些開發與編譯刷機包的玩家來說 算是蠻有幫助的一篇文章!

希望版大及管理員不會刪掉這篇文...@@

HTC讚!
檢舉 回應

一般用戶

等級2

新手鄉民

joemou2014-11-3 00:58

htc讚 發表於 2014-11-3 00:56
哇...第一次看到HTC論壇有人會發表這些東西....0.0

不過這些對我們想學這些開發與編譯刷機包的玩家來說 算 ...

這東西不能發??打很久拜託不要啊~

改~改~改~我要我掌控自己手機~給我全部改光光~
檢舉 回應

一般用戶

等級2

新手鄉民

joemou2014-11-3 01:02

有機會也來發個小米的好了~~~
本文章最後由( joemou )於 2014-11-16 01:58 編輯

改~改~改~我要我掌控自己手機~給我全部改光光~
檢舉 回應

一般用戶

等級2

新手鄉民

htc讚2014-11-3 01:03

joemou 發表於 2014-11-3 00:58
這東西不能發??打很久拜託不要啊~

應該不會吧~畢竟這也有HTC...XD
只是可能發在專業的刷機論壇會比較好=.=


話說樓主 我目前只有將ubuntu抓到隨身碟裡 但之後的步驟我就看不太懂了...

還有 如果隨身碟本身就是FAT32格式的話 還需要再進行一次格式化嗎?

想在順便問一下 網路上的所有ROM包以及美化等的都是在ubuntu環境下執行的嗎?

HTC讚!
檢舉 回應

一般用戶

等級2

新手鄉民

joemou2014-11-3 01:10

htc讚 發表於 2014-11-3 01:03
應該不會吧~畢竟這也有HTC...XD
只是可能發在專業的刷機論壇會比較好=.=

嗯......其實我就是刷機論壇來的
只是發覺這裡福利很好很有動力..

格式化即可
裝進去了??
那就將電腦關機,在開機時就一直按(不要停)有些按f12,有些按f9,f2進入bios
在挑用隨身碟開機
我先睡了~明天再回你謝謝你

改~改~改~我要我掌控自己手機~給我全部改光光~
檢舉 回應

一般用戶

等級1

路過旅人

甜筒木須2014-11-3 23:07

歐~好啊~本來筆電就有ubuntu了改天來玩玩看~
畢竟有些機子不一定很熱門,那就來動作一下啦~
比如說我可愛的Desire L...(苦笑)

檢舉 回應

一般用戶

等級2

新手鄉民

joemou2014-11-3 23:32

哈哈~的確~搞不好cm11也沒有喔~要cm10~

改~改~改~我要我掌控自己手機~給我全部改光光~
檢舉 回應

分享