1.Android手機/平板電腦一臺
2.安裝Linux系統(*1)的電腦一臺(建議使用64bit,32bit的個人沒試過)
3.4GB以上的ram(愈多愈快)
4.硬碟剩餘20GB以上(下載CM10源碼後實際大小如圖)230150h1qdbqo8b1bffkqo.jpg (23.79 KB, 下載次數: 0)
01
2014-7-8 23:01 上傳
(圖片:01原始碼大小)
(當然,若硬碟使用SSD,編譯時間會比一般的硬碟快上不少)
5.正常的mirco USB傳輸線
6.未被限制(*2)的網路(愈快愈好)
此教學的使用環境如下
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,請直接在終端機輸入以下指令移除
複製代碼
- sudo apt-get purge openjdk-* icedtea-* icedtea6-*
230228gepzm30to1373g9p.jpg (84.66 KB, 下載次數: 0)
02
2014-7-8 23:02 上傳
(圖片:02移除java)
初學者提示:
終端機使用Ctrl+Alt+T開啟,用法跟Windows的命令提示字元相同(但部份指令不同),建議初學者依照下圖的方式釘選至左側啟動欄 初學者提示:
以下輸入有sudo(*3)的指令後會提示輸入密碼,當然,你看不到你輸入了幾個英文數字,這是預設功能
接下來,讓我們以ppa的方式簡單安裝JAVA 6 JDK,這樣就不用設定一堆複雜的變數
(要按Enter時直接按就好)
複製代碼
- sudo add-apt-repository ppa:webupd8team/java
- sudo apt-get update && sudo apt-get install oracle-java6-installer
下載及安裝完畢後,你會得到這張圖230305g8b37gee17djl0sd.jpg (151.65 KB, 下載次數: 0)
04
2014-7-8 23:03 上傳
(圖片:04安裝java)
*想要安裝java 7 JDK的人,僅須將以上指令中的 install oracle-java6-installer 改成 install oracle-java7-installer 即可
如圖所示,你的JDK已安裝完畢。
做的好,繼續用終端機指令安裝編譯時需要的套件
輸入
複製代碼
- sudo apt-get install bison build-essential curl flex g++-multilib gcc-multilib git-core gnupg gperf lib32ncurses5-dev lib32readLine-gplv2-dev lib32z1-dev libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop squashfs-tools xsltproc pngcrush schedtool zip zlib1g-dev
- (只有一行,整段複製貼上即可)
230321sf6rxnjz6e63az6n.jpg (110.97 KB, 下載次數: 0)
05
2014-7-8 23:03 上傳
(圖片:05下載編譯時套件)
結束後,終端機會顯示
230343cexylunkm0u90oie.jpg (313 KB, 下載次數: 0)
06
2014-7-8 23:03 上傳
(圖片:06下載編譯時套件完成)
OK,第一步驟完成了
步驟二、安裝與設定repo及CyanogenMod源碼下載
*若已從網路上下載到某版本CM源碼可跳過此步驟,解壓縮源碼到你指定的位置以及在該位置初始化repo即可
關於repo(*4)的說明,我會在(*4)裡解釋。現在先照指示操作。
初學者提示:
從這段開始會用到一些Linux系統中常用的指令,為了避免有看不懂的地方,下面會穿插較多的初學者提示。
輸入以下指令
複製代碼
- mkdir -p ~/bin
- PATH=~/bin:$PATH
- cd ~/bin
- curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
230405cfgft3cwj2tjrj30.jpg (60.96 KB, 下載次數: 0)
07
2014-7-8 23:04 上傳
(圖片:07下載repo)
初學者提示:
相信不少人開始霧煞煞了,沒關係,我逐行為各位講解
mkdir -p ~/bin <= 建立bin資料夾(*5)
PATH=~/bin:$PATH <= 將~/bin加入於環境配置中(*6)
cd ~/bin <= 轉移到~/bin(*7)
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo <= 在此網址中取得repo並下載於~/bin,檔案名稱叫「repo」(*8)
執行完以上指令後,repo會被下載到家目錄裡的bin資料夾中,我們可以開啟bin資料夾檢查
230422ocodz4lnxddcxqdd.jpg (113.66 KB, 下載次數: 0)
08
2014-7-8 23:04 上傳
(圖片:08repo位置)
再輸入一行指令
複製代碼
- chmod a+x ~/bin/repo
初學者提示:
chmod a+x ~/bin/repo <= 設定repo檔案權限為a+x(*9)
230515qh5gjjxlo533lo19.jpg (62.86 KB, 下載次數: 0)
09
2014-7-8 23:05 上傳
(圖片:09repo權限)
很好,我們在完成上面這步後把電腦重新開機(讓前面說的環境配置生效),就可以開始下載CyanogenMod的源碼了,輸入以下指令
複製代碼
- mkdir -p ~/android/system
- cd ~/android/system/
接下來的這步會依編譯的CM版本而有所不同,各版本的源碼位置如下
CM10(Android 4.1.2):
git://github.com/CyanogenMod/android.git -b jellybean
CM10.1(Android 4.2.2):
git://github.com/CyanogenMod/android.git -b cm-10.1
CM10.2(Android 4.3.1):
git://github.com/CyanogenMod/android.git -b cm-10.2
CM11(Android 4.4.4):
git://github.com/CyanogenMod/android.git -b cm-11.0
本教學以CM10做範例,故下載CM10源始碼
複製代碼
- repo init -u git://github.com/CyanogenMod/android.git -b jellybean
想要編譯其他版本的僅須更替 " git://xxxxxxx " 即可
230555k3gipyc33pczbvig.jpg (77.95 KB, 下載次數: 0)
10
2014-7-8 23:05 上傳
(圖片:10repo init)
初學者提示:
mkdir -p ~/android/system <= 在" ~/ "下建立android目錄,android目錄中再建立system目錄
cd ~/android/system/ <= 轉移到 ~/android/system
repo init -u git://github.com/CyanogenMod/android.git -b jellybean <= 從"git://xxxxxxxx"中初始化repo
對了,你想把源碼放在哪裡都可以,只要更改路徑即可,例如我想下載到行動硬碟裡,而行動硬碟叫SP PHD U3,路徑在
/media/ycx/SP PHD U3(*10),那就在行動硬碟裡建立資料夾(記得,先打開你行動硬碟的根目錄)
cd /media/ycx/"SP PHD U3" <= 轉移到SP PHD U3(*11)
mkdir -p android/system <= 在SP PHD U3下建立android目錄,android目錄中再建立system目錄
repo init -u git://github.com/CyanogenMod/android.git -b jellybean <= 從"git://xxxxxxxx"中初始化repo
好極了,讓我們開始下載CyanogenMod源碼吧,下載的速度取決於你的網路連線,如果網路受到某些限制,那下載途中可能會出現某些麻煩的情況,這就是為什麼我一開始希望各位使用未被限制的網路
確保你正位於~/android/system,輸入
複製代碼
- repo sync
230605neea0tered0502ce.jpg (84.77 KB, 下載次數: 0)
11
2014-7-8 23:06 上傳
(圖片:11repo sync)
這樣就會開始下載Cyanogenmod源碼了,會下載約16GB的資料,請耐心等待
初學者提示:
repo sync <= 使用repo同步源碼
有人可能會問:「如果我家網路斷線了要怎麼辦?」「還沒下載完畢,想要晚點再下載要怎麼做?」
沒關係,這裡教你解決辦法
當你想中斷下載時,按下鍵盤上的Ctrl+Z即可結束源碼同步的動作。下次在同樣的位置中執行以下指令,電腦就會在上次中斷的地方繼續同步源碼
repo sync
(你沒看錯,指令都一樣)
下載完成後,我們就能繼續下一步驟。
230607aelda4ksh4c84sh0.jpg (85.35 KB, 下載次數: 0)
12
2014-7-8 23:06 上傳
(圖片:12source下載完畢)
步驟三、準備device-specific code
*從其他地方下載到的源碼(通常為tgz格式(*12))中可能包含device-specific code,這點請留意。
*此步驟僅支援有CyanogenMod官方支援(cyanogenmod official support)的裝置,其他裝置請參閱(*13)。
*說真的,我不太確定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)
複製代碼
- source build/envsetup.sh
- breakfast anzu
230608m7uz7kz2jnunv57z.jpg (66.13 KB, 下載次數: 1)
14
2014-7-8 23:06 上傳
(圖片:14envsetup.sh)
初學者提示:
source build/envsetup.sh <= 啟動源始碼工具批次檔envsetup.sh(請參閱(*14))
breakfast anzu <= 至CyanogenMod的github下載及配置anzu的device-specific code(請參閱(*15))
其中,anzu是Xperia arc/s(LT15i/LT18i)在CyanogenMod中的代號,個別裝置的代號請自行搜索。舉例來說,我的前前支手機Xperia mini pro(SK17i)的代號是mango、手上的Nexus5的代號是hammerhead、sharonliu 大之前用的Xperia U的代號是kumquat等等。
230609f5p893z597pp9o59.jpg (89.74 KB, 下載次數: 2)
15
2014-7-8 23:06 上傳
(圖片:15breakfast anzu)
它會執行一段時間,請耐心等候。
230611k9dctcc0cu6zmsut.jpg (72.76 KB, 下載次數: 0)
16
2014-7-8 23:06 上傳
(圖片:16device-specific code配置完成)
出現這張圖後,你可以繼續執行下一步。
步驟四、提取裝置自身的blobs
*blob請參考(*16)
這個步驟開始需要連接你的裝置到電腦端,在那之前,我們要先下載Linux專用的adb指令。
到Google Android Developer下載吧
http://developer.android.com/sdk/index.html
(32bit與64bit的檔案不同,請留意)
下載完成後放任意位置,對檔案點擊滑鼠右鍵直接解壓縮
230614r0obdhwos60o56c5.jpg (68.39 KB, 下載次數: 0)
18
2014-7-8 23:06 上傳
(圖片:18解壓縮AndroidSDK)
230615tb5jggdfvuqegjrb.jpg (66.34 KB, 下載次數: 1)
19
2014-7-8 23:06 上傳
(圖片:19解壓縮中AndroidSDK)
解壓縮完後,進入資料夾內的sdk/platform-tools中,你可以找到adb和fastboot兩個檔案。
adb和fastboot的功用這裡不再贅述,相信刷過機的人都會明白,若真的不清楚請自行搜索。
230615ct6q2jptqtaar0nt.jpg (134.88 KB, 下載次數: 0)
20
2014-7-8 23:06 上傳
(圖片:20Check adb fastboot位置)
把兩個檔案用滑鼠右鍵複製,再貼上到家目錄下,家目錄位置如圖
230607dix5mumveirmf5hx.jpg (154.67 KB, 下載次數: 0)
13
2014-7-8 23:06 上傳
(圖片:13家目錄)
接著開啟終端機,輸入以下指令
複製代碼
- cd ~/
- sudo su
- mv adb /bin
- mv fastboot /bin
- cd /bin
- chmod 777 adb
- chmod 777 fastboot
- exit
初學者提示:
cd ~/ <= 轉移到~/
sudo su <= 用sudo的方式使用root帳號
mv adb /bin <= 移動adb到/bin
mv fastboot /bin <= 移動fastboot到/bin
cd /bin <= 轉移到/bin
chmod 777 adb <= 設定adb權限為777
chmod 777 fastboot <= 設定fastboot權限為777
exit <= 離開root帳號
這樣一來,我們就能直接使用adb和fastboot了,你可以輸入"adb --version"來確定adb指令是否正常
230628v0fkn900bkbrr4gs.jpg (68.92 KB, 下載次數: 0)
21
2014-7-8 23:06 上傳
(圖片:21移動adb fastboot)
很好,現在確認你的裝置已經刷上了未被精減的CyanogenMod,我們要提取裝置的blobs了
初學者提示:
不建議使用官方軔體(stock firmware)提取,個人第一次編譯就是因為使用官方軔體提取,導致編譯完成刷入後卡在開機動畫。或許是裝置本身驅動不兼容而導致的原因。
將你的裝置透過傳輸線連接電腦,並開啟USB偵錯模式以供連接,電腦端輸入
複製代碼
- ./extract-files.sh
初學者提示:
./extract-files.sh <= 執行extract-files.sh,請參考(*17)
230612m66x353xvzizbll3.jpg (86.21 KB, 下載次數: 0)
17
2014-7-8 23:06 上傳
(圖片:17extract-files.sh)
提取完畢後,你可以拔開傳輸線。恭喜,我們即將執行最後的步驟--編譯。
步驟五、編譯CyanogenMod
確保你已經在~/android/system中(重開終端機的人,請輸入cd ~/android/system)
複製代碼
- . build/envsetup.sh
- brunch anzu
*請將anzu更換成你裝置的代號
初學者提示:
. build/envsetup.sh <= 啟動envsetup.sh掛載專用指令
brunch anzu <= 編譯anzu的CyanogenMod,請參考(*18)
230629bbawasaknd7qaw7t.jpg (81.06 KB, 下載次數: 0)
22
2014-7-8 23:06 上傳
(圖片:22brunch anzu)
做的好,你的第一版CyanogenMod開始編譯了。過程中除了等待時間長外,電腦風扇還會高速運轉,請不要慌張。
230630ik1po5ktqq5125os.jpg (94.7 KB, 下載次數: 0)
23
2014-7-8 23:06 上傳
(圖片:23編譯中)
初學者提示:
不建議在安靜的地方(EX. 圖書館或自修室)執行此步驟,否則風扇的聲音會打擾到他人。
編譯的時間視各位CPU、RAM、硬碟的效能而定,若是你一邊開啟其他程式一邊編譯,那速度當然會慢下來,請多加注意。
疑難排解:
(以下是個人有幾次遇到的情況,分享給各位)230631g7p48zijz8izz8p1.jpg (108.81 KB, 下載次數: 0)
24
2014-7-8 23:06 上傳
(圖片:24解決編譯問題)
這個情況代表你在步驟四中,執行./extract-files.sh時出了狀況,有部份檔案沒提取到,那我們只能手動複製。
圖片中反白處為缺少的檔案及位置,我們只要從其他(同裝置的)CyanogenMod中複製貼上即可。
如圖230632dq35u45331c33uuu.jpg (137.61 KB, 下載次數: 0)
25
2014-7-8 23:06 上傳
(圖片:25解決編譯問題之位置)
接下來使用指令繼續從中斷處編譯
複製代碼
- brunch anzu
我們要怎麼知道電腦花了多少時間編譯呢?
事實上有個簡單的方法
我們在輸入任何指令前,指令前方加上time即可。
舉例來說,我們原先輸入"brunch anzu",只要改成以下即可
複製代碼
- time brunch anzu
如圖所示,以本教學使用的配備使用了43分鐘多編譯(*19)完成,採用傳統硬碟的可能需要2小時多才能完成
230633i8xrhe3ri0s3r3sz.jpg (81.17 KB, 下載次數: 0)
26
2014-7-8 23:06 上傳
(圖片:26編譯中)
如此一來,眼睛就不用緊緊盯著碼表看了
230634tpiponui4cc4wa4t.jpg (75.81 KB, 下載次數: 0)
27
2014-7-8 23:06 上傳
(圖片:27編譯完成)
如果出現以上圖片時,恭喜,你的CyanogenMod完成了。
到家目錄中的android/system/out/target/product/anzu看看你的成果吧
230634cuufpeeajwapruuu.jpg (145.26 KB, 下載次數: 0)
28
2014-7-8 23:06 上傳
(圖片:28out編譯完成)
打鐵趁熱,刷到裝置裡試試吧!
ok,剩餘部份請往下拉繼續觀看。
(教學本體耗時約3天才得以完成,欲轉載請通知本人並取得同意,感謝各位)
(順帶一提,完成本篇教學的時間正好是個人生日,就把這篇當作是自己給自己的生日禮物吧!)
作者: YCx 時間: 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/(使用者名稱)"
234551f75g252ynpxb64ys.jpg (154.67 KB, 下載次數: 1)
2014-7-23 23:45 上傳
圖片:13家目錄
(*6)
請參見http://jslinux.pixnet.net/blog/post/12070163-%E5%A6%82%E4%BD%95%E8%A8%AD%E5%AE%9A%E7%92%B0%E5%A2%83%E8%B7%AF%E5%BE%91
(*7)
cd(change directory),變更目前所在位置。
用法為"cd" "位置"
如:cd /bin =>轉移到/bin目錄
windows中的命令提示字元也可以這樣做。
(*8)
請參見http://evelynnote.blogspot.tw/2011/03/curl.html
(*9)
chmod(change mode),指的是變更檔案權限。
a+x為
"a(所有類別,owner/group/others)"、"+(加入)"、"x(execute執行)"
詳見http://linux.vbird.org/linux_basic/0210filepermission.php#chmod
(*10)
右鍵你的外部裝置中的任一檔案後點擊屬性,即可簡易的知道所在位置
235148fi7w152gww1gbxgx.jpg (70.8 KB, 下載次數: 0)
2014-7-23 23:51 上傳
圖片:29外部裝置查詢
(*11)
補充一個小技巧,若使用cd指令到某個目錄,但該目錄名稱有空格時,可以在cd時把資料夾加上" "給框起來
就像文內的用法。
(*12)
tgz = tar.gz,它是Linux系統的壓縮格式
(*13)
請參閱http://wiki.cyanogenmod.org/w/Doc:_porting_intro
(此為純英文網站)
(*14)
請參閱http://wiki.cyanogenmod.org/w/Envsetup_help
(*15)
http://wiki.cyanogenmod.org/w/Envsetup_help#breakfast
(*16)
blob(binary large object),可參考英文wikipedia或百度百科
從這裡來看,間單來說就是裝置驅動,如藍芽、Wi-Fi、相機...
有興趣的人可以點這個連結
(*17)
"./xxxx.sh"代表執行xxxx.sh檔案,不只Ubuntu,連同為Linux出身的Android中也能使用此方法。
(用過V6 Super Charger調教Android系統的,試試這個方法執行吧,這樣就不用下載Script Manager了)
(*18)
請參閱http://wiki.cyanogenmod.org/w/Envsetup_help#brunch
(*19)
"圖片:27編譯完成中"的
real即為實際運行該指令總時間
user 表示程式在user mode 使用時間總和,計算上須將所有核心上的時間加總
sys 表示程式在 kernel mode 所佔用的 CPU 時間總和
作者: YCx 時間: 2014-7-8 23:15
本帖最後由 YCx 於 2014-7-24 22:48 編輯
打了一整天的註解...結果被系統吃掉了= =
把我的颱風假還來!!!
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
這下只好全部重打...
-------------
2014/07/24
yyyy/mm/dd
原來是文內有連結,管理員要審核...
![]()
作者: YCx 時間: 2014-7-8 23:15
本帖最後由 YCx 於 2015-8-14 11:05 編輯
這裡保留給toolchain
作者: YCx 時間: 2014-7-8 23:16
本帖最後由 YCx 於 2015-8-14 10:39 編輯
這裡保留給MIUI v5(v4、v6....!?)的編譯教學
透露一下
1.編譯過程跟cm的方式類似
2.關鍵字:Micode
有興趣的人自行google吧!
作者: YCx 時間: 2014-7-8 23:16
本帖最後由 YCx 於 2015-11-29 05:26 編輯
(越新的Changelog會在最下面)
2014/9/11補充
當硬碟的系統格式為exfat時,輸入此指令後就能正常讀取(若你的Linux不能讀exfat的話)
複製代碼
- 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 的敘述,請自行觀看
作者: joemou 時間: 2014-7-17 13:08
本帖最後由 joemou 於 2014-7-18 17:38 編輯
喔喔~
大大完成囉~
感謝你多日的指導~~~~
作者: 327248651 時間: 2014-7-27 21:59
辛苦了!
作者: tn0128 時間: 2014-8-3 22:03
本帖最後由 tn0128 於 2014-8-3 22:05 編輯
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin
少了 /repo
作者: YCx 時間: 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,注意一下
作者: tn0128 時間: 2014-8-6 23:32
喔喔,因為我用的時候
他有出現bash:root/bin是個資料夾
我加了檔名之後才載成功
作者: ae86jay 時間: 2014-8-28 21:14
大陸無法訪問google。。。。。
作者: mhlbjxd 時間: 2014-8-29 17:59
Java JDK 可用 Synaptic 下載
UI比較方便
作者: YCx 時間: 2014-8-29 23:02
ae86jay 發表於 2014-8-28 21:14
大陸無法訪問google。。。。。
大多檔案可從中國內的論壇(如機鋒、安極、安智,或是中國開源社區)取得,善用google或百度就能找到:)
作者: YCx 時間: 2014-8-29 23:07
mhlbjxd 發表於 2014-8-29 17:59
Java JDK 可用 Synaptic 下載
UI比較方便
的確,但指令打一下就好,或許哪個找到這篇文章的人只想知道怎麼編譯cyanogenmod,指令給他,剩下Linux相關就看個人造化
附上synaptic介紹
http://wiki.ubuntu-tw.org/index.php?title=Synaptic
作者: mhlbjxd 時間: 2014-9-6 22:04
因為窩的是Ubuntu 14.04 用COMMAND無法使用;(
作者: YCx 時間: 2014-9-7 21:34
mhlbjxd 發表於 2014-9-6 22:04
因為窩的是Ubuntu 14.04 用COMMAND無法使用;(
我也是用14.04,都正常說
作者: tomylin 時間: 2014-9-11 01:07
期待大大編譯MIUI V5~~
這樣就不怕CM版本問題了~!
作者: 一灬一 時間: 2014-9-27 00:44
好复杂啊~像我这样的呆头鹅,根本做不下去
作者: x990 時間: 2014-12-1 21:10
thx very much
作者: kfjihailong 時間: 2015-1-7 13:00
我是这个错误,怎么解决呢?busybox错误。我的device 和kernel 和 propruearly 是从cm下载的
作者: YCx 時間: 2015-1-8 01:19
本帖最後由 YCx 於 2015-1-9 22:40 編輯
kfjihailong 發表於 2015-1-7 13:00
我是这个错误,怎么解决呢?busybox错误。我的device 和kernel 和 propruearly 是从cm下载的 ...
我發現XDA上有人詢問跟你一樣的問題,參考看看
http://forum.xda-developers.com/grand-quattro/orig-development/dev-cyanogenmod-11-0-t2802701/page59
#589樓
建議做make clean後再重新編譯一次
(話說我這篇文中好像沒提到"make clean"的用法....)
(參考這一篇做"make clean"吧)
作者: kfjihailong 時間: 2015-1-8 21:58
我make clean过了,还是会在那个位置出错误。不是很懂他的删除的意思,是让我做一次make clean还是删掉busybox那个文件?
作者: kfjihailong 時間: 2015-1-8 22:20
执行完breakfast flo后并没有 同步任何文件 是不是这里问题
作者: kfjihailong 時間: 2015-1-8 22:42
我想编译的是flo,好曲折要搞不定
作者: kfjihailong 時間: 2015-1-13 12:40
我的问题解决了。从新下载的就解决了。我必须的说一下,可能是是我们这边用vpn下载的时候,出现问题了。唉,希望以后谁下载好的,直接上传到网盘上,提供下载。
作者: r200319 時間: 2015-8-4 13:26
您好
小弟目前有疑問,也在找各種資料。
看完教學,好像是自行編譯CM。
那要修改別人寫好的CM,ROM檔,也可以透過此方法開啟編譯?
作者: YCx 時間: 2015-8-6 11:41
r200319 發表於 2015-8-4 13:26
您好
小弟目前有疑問,也在找各種資料。
看完教學,好像是自行編譯CM。
不太明白你的敘述,這篇是『編譯source code』,而我猜你的需求是『修改ROM包(zip)』
若有一定coding程度的人,可以試著下載source code進而修改,最後編譯出zip包。
(如blisspop、BoostPop等基於CyanogenMod源碼的custom rom,基本上是如此)
若你是想要修改ROM包(zip檔)的話,請另尋它處囉。
作者: vsoog 時間: 2015-9-12 16:04
YCx 發表於 2014-7-8 23:13此篇教學文基於@sharonliu 大的兩篇教程(【XPT】如何建立cm11的開發編譯環境(一)、【XPT】如何建立cm11的 ...
請問一下樓主,我的手機是infocus 但M320
之前有網友po出來他移植cm12.1(z980的樣子
可是他沒有提供載點,如果我想自己試試看移植,可以用這篇的方法嗎?
還是有更快的或簡單點的
感謝><
作者: YCx 時間: 2015-9-13 03:43
vsoog 發表於 2015-9-12 16:04
請問一下樓主,我的手機是infocus 但M320
之前有網友po出來他移植cm12.1(z980的樣子
可是他沒有提供載點 ...
當然可以,請參考這個連結(英)
https://wiki.cyanogenmod.org/w/Doc:_porting_intro
作者: vsoog 時間: 2015-9-17 22:02
本帖最後由 vsoog 於 2015-9-20 06:14 編輯
請問樓主一下,要刷入時,遇到
format() expects 5 args ,got4
那是甚麼地方出問題呢
作者: YCx 時間: 2015-9-20 03:20
vsoog 發表於 2015-9-17 22:02
請問版大一下,要刷入時,遇到
format() expects 5 args ,got4
那是甚麼地方出問題呢 ...
Google搜尋「status 7」就能找到答案了
另外重申一點,樓主不等於版主,感謝
作者: vsoog 時間: 2015-9-20 06:14
YCx 發表於 2015-9-20 03:20
Google搜尋「status 7」就能找到答案了
另外重申一點,樓主不等於版主,感謝 ...
喔馬上更正成樓主><
作者: YCx 時間: 2015-10-17 20:35
YCx 發表於 2014-8-5 21:53
沒有少,我下載的位置只有到/bin,別人的教學裡可能是下載到/bin/repo,注意一下 ...
看來當初的我是真的打錯了
作者: 余昇穎 時間: 2015-11-22 02:07
感恩樓主的無私分享此經驗還辛苦打了那麼長串的文章 辛苦了 我自己是想來製作626x試試看 感覺會卡在手機info那邊希望樓主可以發一帖有關於提取手機info的教程 謝謝啦
作者: tn0128 時間: 2015-11-25 19:25
YCx 發表於 2015-10-17 20:35
看來當初的我是真的打錯了
哈哈,時間過得好快
一年過去了~
我的PLAY也壞了
作者: oscarkiller 時間: 2016-2-1 20:35
請問樓主
我想做個desrie 816x 的 cm13 rom
在輸入breakfast指令時出錯了
複製代碼
- ess@ubuntu:~/android/system$ breakfast htc_a5
- find: `device": 没有那个文件或目录
- build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_htc_a5"。 停止。
- Device htc_a5 not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
- Found repository: android_device_htc_a5
- Default revision: cm-13.0
- Checking branch info
- Default revision cm-13.0 not found in android_device_htc_a5. Bailing.
- Branches found:
- cm-11.0
- cm-12.0
- cm-12.1
- stable/cm-11.0
- stable/cm-12.0-YNG3C
- stable/cm-12.0-YNG4N
- Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
- find: `device": 没有那个文件或目录
- build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_htc_a5"。 停止。
- ** Don"t have a product spec for: "cm_htc_a5"
- ** Do you have the right repo manifest?
請問這是怎麼回事?
我有確定816的代碼是a5
作者: oscarkiller 時間: 2016-2-1 20:37
請問樓主
我想製作desire 816x 的cm13 rom
在輸入breakfast指令時發生了問題
複製代碼
- ess@ubuntu:~/android/system$ breakfast htc_a5
- find: `device": 没有那个文件或目录
- build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_htc_a5"。 停止。
- Device htc_a5 not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
- Found repository: android_device_htc_a5
- Default revision: cm-13.0
- Checking branch info
- Default revision cm-13.0 not found in android_device_htc_a5. Bailing.
- Branches found:
- cm-11.0
- cm-12.0
- cm-12.1
- stable/cm-11.0
- stable/cm-12.0-YNG3C
- stable/cm-12.0-YNG4N
- Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
- find: `device": 没有那个文件或目录
- build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_htc_a5"。 停止。
- ** Don"t have a product spec for: "cm_htc_a5"
- ** Do you have the right repo manifest?
請問是怎麼回事?
我確定 desire 816 的代碼是"a5"沒錯
作者: YCx 時間: 2016-2-5 22:22
oscarkiller 發表於 2016-2-1 20:37
請問樓主
我想製作desire 816x 的cm13 rom
在輸入breakfast指令時發生了問題
根據你貼上的資訊,我猜是 cyanogenmod 13 的 device tree 並沒有你這個機型所致
或許你可以改 compile 其他版本![]()
歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1