Android源代码下载方法具体解释
相信非常多下載過(guò)內(nèi)核的人都對(duì)這個(gè)非常熟悉
git clone git://android.git.kernel.org/kernel/common.git kernel
可是這是在曾經(jīng),如今假設(shè)這么運(yùn)行的話,會(huì)顯演示樣例如以下內(nèi)容
Initialized empty Git repository in /home/star/working/kernel/.git/
android.git.kernel.org[0: 149.20.4.77]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)
通過(guò)瀏覽器輸入http://android.git.kernel.org/,發(fā)現(xiàn)該站點(diǎn)已經(jīng)被重定向?yàn)閔ttp://source.android.com/source/downloading.html
能夠在該頁(yè)面的最后發(fā)現(xiàn)內(nèi)核的下載方法。
?
以下我們介紹一下Android源代碼下載的步驟。
工作環(huán)境:
操作系統(tǒng):Ubuntu 10.04???或? Ubuntu10.10
git程序 :1.7.0.4? 或 1.7.1
轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/pku_android
方法一:
1.1 初始化安裝環(huán)境
參考網(wǎng)頁(yè)http://source.android.com/source/initializing.html
主要要做的就是安裝jdk和安裝一些軟件包
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
? zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
? libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
? libxml2-utils
假設(shè)已經(jīng)安裝了,就不許要這步了
1.2 不管下載內(nèi)核和源代碼,都須要進(jìn)行例如以下操作
參考網(wǎng)頁(yè)http://source.android.com/source/downloading.html
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
建立一個(gè)目錄,以便下載的內(nèi)容保存當(dāng)中
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
1.3 內(nèi)核下載
$ git clone https://android.googlesource.com/kernel/common.git kernel
命令行最后面的kernel的意思是保存在這個(gè)目錄下,所以能夠是不論什么名字,該目錄不須要自己去創(chuàng)建,最后的這個(gè)不寫也沒(méi)問(wèn)題
假設(shè)想下載其它版本號(hào)的內(nèi)核
$ git clone https://android.googlesource.com/kernel/goldfish.git
$ git clone https://android.googlesource.com/kernel/msm.git
$ git clone https://android.googlesource.com/kernel/omap.git
$ git clone https://android.googlesource.com/kernel/samsung.git
$ git clone https://android.googlesource.com/kernel/tegra.git
下載過(guò)程中,會(huì)有例如以下信息,速度快慢取決于網(wǎng)速了。
Initialized empty Git repository in /home/star/kernel/kernel/.git/
remote: Counting objects: 40, done
remote: Counting objects: 2073952, done
remote: Finding sources: 100% (208/208)
remote: Getting sizes: 100% (88/88)
remote: Compressing objects: 100% (2/2)
remote: Total 2073863 (delta 1735363), reused 2073862 (delta 1735363)
Receiving objects: 100% (2073863/2073863), 427.93 MiB | 318 KiB/s, done.
Resolving deltas: 100% (1735382/1735382), done.
在我下載的過(guò)程中,出現(xiàn)了例如以下問(wèn)題
error: RPC failed; result=56, HTTP code = 2002 MiB | 23 KiB/s
到如今我也不清楚是因?yàn)槭裁丛驅(qū)е碌?#xff0c;推測(cè)
1.1中所說(shuō)的事情,都做了嗎?我發(fā)現(xiàn)有一些安裝包尚未安裝,安裝之。
或者,可能是網(wǎng)絡(luò)問(wèn)題,反復(fù)運(yùn)行一下,會(huì)發(fā)現(xiàn)并非在同一個(gè)地方出現(xiàn)這個(gè)問(wèn)題的,說(shuō)不定哪次就成功了
或者,用別人的電腦下載一下(盡管方法是我發(fā)現(xiàn)的,但是并非我第一個(gè)下載成功的,我遇到了RPC failed,后來(lái)讓同學(xué)嘗試,成功,之后我也嘗試了,在把所須要的安裝包都安裝后,也成功)
1.4 更換內(nèi)核版本號(hào)
因?yàn)樵?.3中我寫的是kernel,這是能夠看到當(dāng)前文件夾下出現(xiàn)了一個(gè)kernel文件夾
$ cd kernel/
$ ls
發(fā)現(xiàn)沒(méi)有不論什么內(nèi)容
查看當(dāng)前內(nèi)核版本號(hào),master,不知道是什么意思
$ git branch
* master
查看全部可用內(nèi)核版本號(hào)
$ git branch -a
* master
? remotes/origin/HEAD -> origin/master
? remotes/origin/android-2.6.39
? remotes/origin/android-3.0
? remotes/origin/master
能夠看到眼下僅僅提供了少數(shù)的版本號(hào),僅僅有2.6.39和3.0,比方我要下載2.6.39
$ git checkout -b android-2.6.39 origin/android-2.6.39
Switched to a new branch 'android-2.6.39'
該命令的android-2.6.39指的是分支的名字,事實(shí)上是能夠隨便取的,關(guān)鍵是origin/android-2.6.39,要相應(yīng)git branch -a命令顯示的remotes后面的內(nèi)容
完畢后,查詢當(dāng)前分支
$ git branch
* android-2.6.39
? master
$ ls
arch???? Documentation? init???? lib????????? README????????? sound
block??? drivers??????? ipc????? MAINTAINERS? REPORTING-BUGS? tools
COPYING? firmware?????? Kbuild?? Makefile???? samples???????? usr
CREDITS? fs???????????? Kconfig? mm?????????? scripts???????? virt
crypto?? include??????? kernel?? net????????? security
會(huì)看到突然出現(xiàn)非常多目錄,這就是內(nèi)核了
因?yàn)檎`操作
比方$ git checkout -b android-2.6.39 origin/android-2.6.39,僅僅是輸入$ git checkout -b android-2.6.39,這時(shí),會(huì)得到一個(gè)空的分支
$ git branch -a
* android-2.6.39
? master
? remotes/origin/HEAD -> origin/master
? remotes/origin/android-2.6.39
? remotes/origin/android-3.0
? remotes/origin/master
假設(shè)再次運(yùn)行
$ git checkout -b android-2.6.39 origin/android-2.6.39
fatal: git checkout: branch android-2.6.39 already exists
一種方法,就是給把-b后面的android-2.6.39改為其它名字,可是這個(gè)有問(wèn)題的分支android-2.6.39還是會(huì)存在的
查看$ git branch --help,找到分支刪除的命令
$ git branch -D android-2.6.39
error: Cannot delete the branch 'android-2.6.39' which you are currently on.
須要切換分支,如果也存在android-3.0,當(dāng)然也能夠切換為master或者其它存在的分支,$ git branch -a查看分支
$ git checkout android-3.0
Checking out files: 100% (37131/37131), done.
Switched to branch 'android-3.0'
$ git branch -D android-2.6.39
Deleted branch android-2.6.39 (was fe8bf45).
轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/pku_android
方法二
2.1 參考1.1和1.2
2.2 類似于下載Android源代碼的過(guò)程,先運(yùn)行例如以下命令
$ repo init -u https://android.googlesource.com/platform/manifest
在這一步還須要用到gmail的郵箱
在下載Android源代碼的過(guò)程中,并不會(huì)下載kernel,那如何才干既下載源代碼,又下載kernel呢
參考網(wǎng)頁(yè)http://elinux.org/Android_Kernel_Download
?a kernel git tree并沒(méi)有被默認(rèn)的Android manifest file引用
既然沒(méi)有引用,那就加上它
改動(dòng).repo/manifest.xml(眼下的文件夾為1.2中已經(jīng)建立的WORKING_DIRECTORY)
$ vim .repo/manifest.xml
加上這條語(yǔ)句
<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>
位置我認(rèn)為和其他的project選項(xiàng)并列就可以。
版本參考1.4,可能僅僅能下載2.6.39和3.0
2.3 下載源代碼和內(nèi)核
$ repo sync
漫長(zhǎng)的等待
假設(shè)我僅僅想下載內(nèi)核呢
非常easy,改動(dòng)2.2提到的文件.repo/manifest.xml,把全部project標(biāo)簽都刪除,再加入�
<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>
?
轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/pku_android
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Android源代码下载方法具体解释的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 肯德基app怎么取消订单(哈兰&
- 下一篇: Android实现简单短信发送器