綁定帳號登入

Android 台灣中文網

RO

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

  [複製連結] 查看: 12868|回覆: 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源碼後實際大小如圖)

01

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,請直接在終端機輸入以下指令移除
  1. sudo apt-get purge openjdk-* icedtea-* icedtea6-*
複製代碼

02

02

(圖片:02移除java)
初學者提示:
終端機使用Ctrl+Alt+T開啟,用法跟Windows的命令提示字元相同(但部份指令不同),建議初學者依照下圖的方式釘選至左側啟動欄

03

03

(圖片:03新增終端機至啟動欄)
初學者提示:
以下輸入有sudo(*3)的指令後會提示輸入密碼,當然,你看不到你輸入了幾個英文數字,這是預設功能

接下來,讓我們以ppa的方式簡單安裝JAVA 6 JDK,這樣就不用設定一堆複雜的變數
(要按Enter時直接按就好)
  1. sudo add-apt-repository ppa:webupd8team/java
  2. sudo apt-get update && sudo apt-get install oracle-java6-installer
複製代碼

下載及安裝完畢後,你會得到這張圖

04

04

(圖片:04安裝java)

*想要安裝java 7 JDK的人,僅須將以上指令中的 install oracle-java6-installer 改成 install oracle-java7-installer 即可

如圖所示,你的JDK已安裝完畢。

做的好,繼續用終端機指令安裝編譯時需要的套件

輸入
  1. 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


  2. (只有一行,整段複製貼上即可)
複製代碼

05

05

(圖片:05下載編譯時套件)
結束後,終端機會顯示

06

06

(圖片:06下載編譯時套件完成)

OK,第一步驟完成了




步驟二、安裝與設定repo及CyanogenMod源碼下載

*若已從網路上下載到某版本CM源碼可跳過此步驟,解壓縮源碼到你指定的位置以及在該位置初始化repo即可

關於repo(*4)的說明,我會在(*4)裡解釋。現在先照指示操作。
初學者提示:
從這段開始會用到一些Linux系統中常用的指令,為了避免有看不懂的地方,下面會穿插較多的初學者提示。

輸入以下指令
  1. mkdir -p ~/bin
  2. PATH=~/bin:$PATH
  3. cd ~/bin
  4. curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
複製代碼

07

07

(圖片: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資料夾檢查

08

08


(圖片:08repo位置)
再輸入一行指令
  1. chmod a+x ~/bin/repo
複製代碼

初學者提示:
chmod a+x ~/bin/repo     <= 設定repo檔案權限為a+x(*9)

09

09

(圖片:09repo權限)

很好,我們在完成上面這步後把電腦重新開機(讓前面說的環境配置生效),就可以開始下載CyanogenMod的源碼了,輸入以下指令
  1. mkdir -p ~/android/system
  2. 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源始碼
  1. repo init -u git://github.com/CyanogenMod/android.git -b jellybean
複製代碼

想要編譯其他版本的僅須更替 " git://xxxxxxx " 即可

10

10

(圖片: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,輸入
  1. repo sync
複製代碼

11

11

(圖片:11repo sync)
這樣就會開始下載Cyanogenmod源碼了,會下載約16GB的資料,請耐心等待
初學者提示:
repo sync     <= 使用repo同步源碼

有人可能會問:「如果我家網路斷線了要怎麼辦?」「還沒下載完畢,想要晚點再下載要怎麼做?」
沒關係,這裡教你解決辦法
當你想中斷下載時,按下鍵盤上的Ctrl+Z即可結束源碼同步的動作。下次在同樣的位置中執行以下指令,電腦就會在上次中斷的地方繼續同步源碼

repo sync

(你沒看錯,指令都一樣)

下載完成後,我們就能繼續下一步驟。

12

12

(圖片: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)
  1. source build/envsetup.sh
  2. breakfast anzu
複製代碼

14

14


(圖片: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等等。

15

15


(圖片:15breakfast anzu)
它會執行一段時間,請耐心等候。

16

16

(圖片:16device-specific code配置完成)
出現這張圖後,你可以繼續執行下一步。




步驟四、提取裝置自身的blobs

*blob請參考(*16)

這個步驟開始需要連接你的裝置到電腦端,在那之前,我們要先下載Linux專用的adb指令。
到Google Android Developer下載吧
http://developer.android.com/sdk/index.html
(32bit與64bit的檔案不同,請留意)

下載完成後放任意位置,對檔案點擊滑鼠右鍵直接解壓縮

18

18

(圖片:18解壓縮AndroidSDK)

19

19

(圖片:19解壓縮中AndroidSDK)
解壓縮完後,進入資料夾內的sdk/platform-tools中,你可以找到adb和fastboot兩個檔案。
adb和fastboot的功用這裡不再贅述,相信刷過機的人都會明白,若真的不清楚請自行搜索。

20

20


(圖片:20Check adb fastboot位置)
把兩個檔案用滑鼠右鍵複製,再貼上到家目錄下,家目錄位置如圖

13

13


(圖片:13家目錄)
接著開啟終端機,輸入以下指令
  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
複製代碼

初學者提示:
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指令是否正常

21

21


(圖片:21移動adb fastboot)

很好,現在確認你的裝置已經刷上了未被精減的CyanogenMod,我們要提取裝置的blobs了
初學者提示:
不建議使用官方軔體(stock firmware)提取,個人第一次編譯就是因為使用官方軔體提取,導致編譯完成刷入後卡在開機動畫。或許是裝置本身驅動不兼容而導致的原因。

將你的裝置透過傳輸線連接電腦,並開啟USB偵錯模式以供連接,電腦端輸入
  1. ./extract-files.sh
複製代碼
初學者提示:
./extract-files.sh    <= 執行extract-files.sh,請參考(*17)

17

17

(圖片:17extract-files.sh)
提取完畢後,你可以拔開傳輸線。恭喜,我們即將執行最後的步驟--編譯。




步驟五、編譯CyanogenMod

確保你已經在~/android/system中(重開終端機的人,請輸入cd ~/android/system)
  1. . build/envsetup.sh
  2. brunch anzu
複製代碼

*請將anzu更換成你裝置的代號
初學者提示:
. build/envsetup.sh    <= 啟動envsetup.sh掛載專用指令
brunch anzu    <= 編譯anzu的CyanogenMod,請參考(*18)

22

22

(圖片:22brunch anzu)
做的好,你的第一版CyanogenMod開始編譯了。過程中除了等待時間長外,電腦風扇還會高速運轉,請不要慌張。

23

23


(圖片:23編譯中)
初學者提示:
不建議在安靜的地方(EX.  圖書館或自修室)執行此步驟,否則風扇的聲音會打擾到他人。

編譯的時間視各位CPU、RAM、硬碟的效能而定,若是你一邊開啟其他程式一邊編譯,那速度當然會慢下來,請多加注意。

疑難排解:
(以下是個人有幾次遇到的情況,分享給各位)

24

24

(圖片:24解決編譯問題)
這個情況代表你在步驟四中,執行./extract-files.sh時出了狀況,有部份檔案沒提取到,那我們只能手動複製。
圖片中反白處為缺少的檔案及位置,我們只要從其他(同裝置的)CyanogenMod中複製貼上即可。
如圖

25

25

(圖片:25解決編譯問題之位置)
接下來使用指令繼續從中斷處編譯
  1. brunch anzu
複製代碼

我們要怎麼知道電腦花了多少時間編譯呢?
事實上有個簡單的方法
我們在輸入任何指令前,指令前方加上time即可。
舉例來說,我們原先輸入"brunch anzu",只要改成以下即可
  1. time brunch anzu
複製代碼

如圖所示,以本教學使用的配備使用了43分鐘多編譯(*19)完成,採用傳統硬碟的可能需要2小時多才能完成

26

26

(圖片:26編譯中)
如此一來,眼睛就不用緊緊盯著碼表看了

27

27

(圖片:27編譯完成)
如果出現以上圖片時,恭喜,你的CyanogenMod完成了。
到家目錄中的android/system/out/target/product/anzu看看你的成果吧

28

28

(圖片:28out編譯完成)

打鐵趁熱,刷到裝置裡試試吧!


ok,剩餘部份請往下拉繼續觀看。

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



(順帶一提,完成本篇教學的時間正好是個人生日,就把這篇當作是自己給自己的生日禮物吧!)
「用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 非常讚

查看全部評分

用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/(使用者名稱)"
234551f75g252ynpxb64ys.jpg
圖片: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
圖片: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 時間總和

評分

參與人數 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)
回覆 支持 反對

使用道具 舉報

 樓主| 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)
回覆 支持 反對

使用道具 舉報

 樓主| 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)
回覆 支持 反對

使用道具 舉報

joemou | 收聽TA | 顯示全部樓層
發表於 2014-7-17 13:08
本帖最後由 joemou 於 2014-7-18 17:38 編輯

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

評分

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

查看全部評分

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

使用道具 舉報

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)
回覆 支持 反對

使用道具 舉報

 樓主| 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)
回覆 支持 反對

使用道具 舉報

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

本版積分規則