綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[教程] 【XPT】從源碼編譯CyanogenMod(各版通用)(初學者向)(2015/11/25)

  [複製連結] 查看: 15140|回覆: 41|好評: 1
跳轉到指定樓層
樓主
YCx | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-7-8 23:13

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 YCx 於 2015-11-29 05:25 編輯

此篇教學文基於@sharonliu 大的兩篇教程
【XPT】如何建立cm11的開發編譯環境(一)【XPT】如何建立cm11的開發編譯環境(二)~編譯CM11
修正部份、詳述,並參考官方CyanogenMod編譯LT18i CM10教學
How To Build CyanogenMod Android for Sony Ericsson Xperia Arc ("anzu")
而成,希望以更簡單的方式讓大家學習從源碼編譯CyanogenMod,在此特別感謝sharonliu大以及CyanogenMod團隊。
本教學力求完整正確,但疏漏之處在所難免,還請讀者諸君與各界先進不吝賜教是幸。


///不論你是翻到的還是搜尋到的,請不要想說『啊,好長,改天再看吧』的收藏起來或是加到我的最愛--根據統計,這樣做的後果是你會忘記他的存在,直到你整理收藏夾或我的最愛時才會找到!

注意,本教學以Xperia ARC S編譯CM10為例,若你是其他裝置的使用者,請先詢問後再操作。

以下內容中有(*1)等等標注部份,煩請下拉至n樓觀看註解

另外,內容中部份的截圖,拍攝的時間和介面和其他不同(如下面以ppa的方式安裝jdk的那張,拍攝時間較早),他們都是同一個系統,只是更換主題罷了,請各位多多包含。

(教學本體耗時約3天才得以完成,欲轉載請通知本人並取得同意,感謝各位)

最後更新日期:
2015/11/25
yyyy/mm/dd


*11/25:更新在6樓


教學開始




步驟零、預先準備

所謂『工欲善其事,必先利其器』,要從源碼編譯CyanogenMod之前,我們要準備一點東西

1.Android手機/平板電腦一臺
2.安裝Linux系統(*1)的電腦一臺(建議使用64bit,32bit的個人沒試過)
3.4GB以上的ram(愈多愈快)
4.硬碟剩餘20GB以上(下載CM10源碼後實際大小如圖)

此教學的使用環境如下
1.Xperia ARC S手機一臺
2.電腦
CPU:Intel i7 2670QM 2.2GHz (turbo boost 3.1GHz)(四核八線程)
RAM:16GB DDR3
系統:Windows 8.1 Pro 64bit + Ubuntu 14.04 64bit 雙系統
硬碟:INTEL SSDSC2CW120A3 128GB
3.WIFI網路環境
4.Sony原廠傳輸線一條

不建議使用虛擬機的方式開啟Linux編譯,除了效能會差很多外,出了什麼差錯也不好解決。如果不會安裝Linux系統就GOOGLE一下吧!




步驟一,安裝JAVA 6 JDK及編譯時所需套件

*java 6=java1.6
*CM11已支援使用java 7編譯

本篇教學須使用JAVA 6 JDK,若你之前有安裝過其他版本的JDK,請直接在終端機輸入以下指令移除
  1. sudo apt-get purge openjdk-* icedtea-* icedtea6-*
複製代碼

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 26碎鑽 +44 經驗 +9 幫助 +46 技術 +8 收起 理由
k18303 + 1 + 1 非常讃
ReD.Ache + 2 + 1 + 1 神馬都是浮雲
IEOWOF + 1 偶像,看完你的內容,讓我找到了活著的意義.
rdpedn001 + 1 + 1 非常讃
vsoog + 1 + 1 + 1 感謝教學,很有用
vbnvbn + 1 + 1 非常讃
jc182 + 1 + 1 非常讚
a3739056 + 1 + 1 非常讚
soto2080 + 1 + 1 讚一個!
sean50301 + 1 非常讚

查看全部評分

收藏收藏29 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
 樓主| YCx | 收聽TA | 只看該作者
發表於 2014-7-8 23:14

文內註解

本帖最後由 YCx 於 2015-11-25 02:06 編輯

(*1)
文中的Linux作業系統實指的是Linux發行版,如Ubuntu、Fedora、Linux Mint等等。有興趣可自行上網搜尋。


(*2)
未被某長城、校園網路等等限制。


(*3)
sudo 是 Unix/Linux 平臺上的一個非常有用的工具,它允許系統管理員分配給一般用戶合理的權限,讓他們執行一些只有系統管理員或其他特定帳號才能完成的任務,例如:執行 mount, halt, su 這類的指令,或者編輯系統設定檔 (/etc/mtab, /etc/samba/smb.conf 等)。這樣一來,不僅減少了 root 使用者的登錄次數和管理時間,也提高了系統安全性。
(引用自 http://note.drx.tw/2008/01/linuxsudo.html)


(*4)
repo是google封裝了用來下載Android源碼所需要的git命令的工具倉。



(*5)
mkdir指的是make directory,中文是建立目錄(資料夾),後方加上-p是「如果指定目錄不存在時,創建該目錄」;
~/bin是"/home/(使用者名稱)/bin",裡面的"~"是指"家目錄",不是/home,實際位置是"/home/(使用者名稱)"

評分

參與人數 5碎鑽 +7 經驗 +2 幫助 +9 技術 +2 收起 理由
k18303 + 1 + 1 非常讃
vbnvbn + 1 + 1 非常讃
a3739056 + 1 + 1 非常讚
apkcat + 1 + 1 非常讚
sharonliu + 3 + 2 + 5 + 2 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| YCx | 收聽TA | 只看該作者
發表於 2014-7-8 23:15
本帖最後由 YCx 於 2014-7-24 22:48 編輯

打了一整天的註解...結果被系統吃掉了= =

把我的颱風假還來!!!




這下只好全部重打...


-------------
2014/07/24
yyyy/mm/dd

原來是文內有連結,管理員要審核...

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
 樓主| YCx | 收聽TA | 只看該作者
發表於 2014-7-8 23:15
本帖最後由 YCx 於 2015-8-14 11:05 編輯

這裡保留給toolchain
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
 樓主| YCx | 收聽TA | 只看該作者
發表於 2014-7-8 23:16
本帖最後由 YCx 於 2015-8-14 10:39 編輯

這裡保留給MIUI v5(v4、v6....!?)的編譯教學

透露一下

1.編譯過程跟cm的方式類似
2.關鍵字:Micode

有興趣的人自行google吧!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
 樓主| YCx | 收聽TA | 只看該作者
發表於 2014-7-8 23:16
本帖最後由 YCx 於 2015-11-29 05:26 編輯

(越新的Changelog會在最下面)
2014/9/11補充

當硬碟的系統格式為exfat時,輸入此指令後就能正常讀取(若你的Linux不能讀exfat的話)

  1. sudo apt-get install exfat-fuse exfat-utils
複製代碼




2014/10/21
剛才亂逛時突然發現被頂置了...
這篇文章有興趣詢問、回覆的人實在太少,導致樓主想更新的興趣不大,對Linaro toolchain等等有興趣的話可以私密或GOOGLE

其實個人曾思考過有些用基於CAF編譯的CM11使用Linaro toolchain編譯是否真的有用處...?
這留給有興趣的人思考看看。
(Nexus 5的CM11就是如此,至於不知道CAF是什麼的話,Google關鍵字"CAF android"就找得到答案)
(CM12與CM12.1有分CAF、AOSP兩種,有興趣的人可以比較看看)(*8/14更新)

對了,個人覺得Android5.x改用ART後,不用Linaro toolchain編譯ROM也有相當良好的表現了



2015/8/14
1.有關make clean的部分,請看22樓。
2.若有編譯時有任何問題,請先確認你的source code是完整的。
3.這篇通用CM12.1與AOSP,自行google出source code位置即可(java記得更新)。
4.Toolchain除Linaro外有很多種(SaberMod等等),有興趣的人自行尋找。



2015/10/17
1.修正「圖片:07下載repo」上方,指令的第4行忘記加上下載檔名的問題
原:curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/
後:curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

2.修改「圖片:07下載repo」下方的初學者提示
原:
『curl http:/ /commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo    <= 在此網址中取得repo並下載於~/bin』
後:
『curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo    <= 在此網址中取得repo並下載於~/bin,檔案名稱叫「repo」』
(移除http後空格及加入新解說)

3.在圖:09repo權限下方增加步驟
「我們在完成上面這步後把電腦重新開機(讓前面說的環境配置生效)」



2015/11/25
在二樓更新了 *16 的敘述,請自行觀看
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
joemou | 收聽TA | 只看該作者
發表於 2014-7-17 13:08
本帖最後由 joemou 於 2014-7-18 17:38 編輯

喔喔~
大大完成囉~
感謝你多日的指導~~~~

評分

參與人數 1幫助 +1 收起 理由
lcctno + 1 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

9
tn0128 | 收聽TA | 只看該作者
發表於 2014-8-3 22:03
本帖最後由 tn0128 於 2014-8-3 22:05 編輯

curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin
少了 /repo

點評

YCx
當初我是我看錯了,感謝糾正  發表於 2015-10-17 20:36

評分

參與人數 1碎鑽 +2 幫助 +1 收起 理由
YCx + 2 + 1 讚一個!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

10
 樓主| YCx | 收聽TA | 只看該作者
發表於 2014-8-5 21:53
tn0128 發表於 2014-8-3 22:03
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin
少了 /repo{:han: ...

沒有少,我下載的位置只有到/bin,別人的教學裡可能是下載到/bin/repo,注意一下
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則