repo & get andoird souce code

本文详细记录了在Ubuntu 12.04系统环境下下载Android 4.3源码的具体步骤,包括安装必要的软件包、配置开发环境、解决下载过程中遇到的各种问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android 4.3源码下载【自己下载成功的步骤、其中遇到很多你可能会遇到的很多问题】

作者:haojunming更新于 09月15日访问(1303)评论(0

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ cat /etc/issue  
Ubuntu 12.04.2 LTS n l  

jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ sudo lsb_release -a  
[sudo] password for jianguoliao:   
No LSB modules are available.  
Distributor ID: Ubuntu  
Description:    Ubuntu 12.04.2 LTS  
Release:    12.04  
Codename:   precise  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$   

上面位查看自己的ubuntu的版本号:12.04

1、先是系统查看是32位的还是64位
[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ getconf LONG_BIT  
32  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ getconf WORD_BIT  
32  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ file /bin/ls  
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xae048fd2a071afcb017d9091f4a78835e27340b2, stripped  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ uname -m  
i686  


uname -m 如果出现i386 i686 i586则是32位 如果出现amd64 则是64位系统  

2、安装jdk1.6

方案一,可能会出现错误

Installing the JDK

The Sun JDK is no longer in Ubuntu's main package repository. In order to download it, you need to add the appropriate repository and indicate to the system which JDK should be used.

Java 6: for Gingerbread and newer

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

上面可能出现如下错误;

[html] view plaincopy

1
2
3
4
5
6
7
8
9
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ sudo apt-get install sun-java6-jdk  
正在读取软件包列表... 完成  
正在分析软件包的依赖关系树         
正在读取状态信息... 完成         
现在没有可用的软件包 sun-java6-jdk,但是它被其它的软件包引用了。  
这可能意味着这个缺失的软件包可能已被废弃,  
或者只能在其他发布源中找到  

E: 软件包 sun-java6-jdk 没有可供安装的候选者  

方案二 建议采用下面这个方法,我12.04的ubuntu版本,64位的用官方网站用的第一种方法没有成功

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 sudo gedit /etc/apt/sources.list  
打开源列表,在最后一行添加  

deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse   保存退出。  

2、sudo apt-get update  
3、sudo apt-get install sun-java6-jdk  
4、jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ sudo update-alternatives --config java  
There is only one alternative in link group java: /usr/lib/jvm/java-6-sun/jre/bin/java  
Nothing to configure.  
5、jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ java -version  
java version "1.6.0_06"  
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)  
Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$   

Installing required packages (Ubuntu 12.04)

Building on Ubuntu 12.04 is currently only experimentally supported and is notguaranteed to work on branches other than master.

$ sudo apt-get install git gnupg flex bison gperf build-essential
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
libgl1-mesa-dev g++-multilib mingw32 tofrodos
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

3、安装git

[html] view plaincopy

1
sudo apt-get install git-core curl  

这条命令会从互联网的软件仓库中安装 git-core 和 curl

4、

Installing Repo

1
2
3
4
5
6
7
8
9
Make sure you have a bin/ directory in your home directory and that it is included in your path:

$ mkdir ~/bin
$ PATH=~/bin:$PATH

Download the Repo tool and ensure that it is executable:

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

其中

[html] view plaincopy

1
2
3
4
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$  curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo  
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                                 Dload  Upload   Total   Spent    Left  Speed  
  0     0    0     0    0     0      0      0 --:--:--  0:04:00 --:--:--     0curl: (7) Failed to connect to 2404:6800:4005:c00::88: Network is unreachable  

下面为两种解决办法,任何一种都可以

一、

[html] view plaincopy

1
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" >~/bin/repo  

二、

[html] view plaincopy

1
2
3
打开 gedit /etc/hosts  
添加如下内容:  
74.125.237.1   dl-ssl.google.com  

[html] view plaincopy

1
2
3
4
5
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo  
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                                 Dload  Upload   Total   Spent    Left  Speed  
100 22889  100 22889    0     0  20152      0  0:00:01  0:00:01 --:--:-- 24221  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$   

chmod a+x ~/bin/repo

5、

[html] view plaincopy

1
2
3
4
5
6
Initializing a Repo client  

$ mkdir WORKING_DIRECTORY  
$ cd WORKING_DIRECTORY  

$ repo init -u https://android.googlesource.com/platform/manifest  

遇到如下问题:

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$ repo init -u https://android.googlesource.com/platform/manifest  
gpg: key 920F5C65: "Repo Maintainer <repo@android.kernel.org>" not changed  
gpg: key 338871A4: public key "Conley Owens <cco3@android.com>" imported  
gpg: Total number processed: 2  
gpg:               imported: 1  (RSA: 1)  
gpg:              unchanged: 1  


fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle  
fatal: error [Errno 101] Network is unreachable  

或者:

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 * [new tag]         v1.9.5     -> v1.9.5  
 * [new tag]         v1.9.6     -> v1.9.6  
Get https://android.googlesource.com/platform/manifest  
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                                 Dload  Upload   Total   Spent    Left  Speed  
  0     0    0     0    0     0      0      0 --:--:--  0:00:06 --:--:--     0  
curl: (22) The requested URL returned error: 404  
Server does not provide clone.bundle; ignoring.  
remote: Counting objects: 92, done  
remote: Finding sources: 100% (92/92)  
remote: Total 816 (delta 96), reused 816 (delta 96)  
Receiving objects: 100% (816/816), 708.29 KiB | 247 KiB/s, done.  
Resolving deltas: 100% (96/96), done.  
From https://android.googlesource.com/platform/manifest  
 * [new branch]      android-1.6_r1 -> origin/android-1.6_r1  

解决方法,官网说明,和网上统一口径,如下:

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
1,  先按官网的步骤一步步执行  
2,当遇到上述问题后,用浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;  
3, 点击网页上的“允许访问”,得到类似的结果:  

machine android.googlesource.com login git-<userName>.gmail.com password <password>  
machine android-review.googlesource.com login git-<userName>.gmail.com password <password>  
 将上边的两行追加到~/.netrc文件结尾。(如果你的linux系统中从来没有建立过此文件,就在home目录下建立.netrc文件,将上面的信息加到新建的文件中去),  
4,下载地址的URI更改为https://android.googlesource.com/a/platform/manifest(中间加上了“/a”)。  

因为访问基本是匿名的,为了防止连接过多,对同一IP地址的连接数做了一定的限制。用gmail帐号进行认证。  
在公司网络内或者用虚拟机下载的话,会经常遇到这问题。  

如果遇到下面问题

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$ repo init -u https://android.googlesource.com/a/platform/manifest --config  

Your Name  [jianguo liao]: jianguo liao  
Your Email [liaojianguo19840726@gmail.com]: liaojianguo19840726@gmail.com  

Your identity is: jianguo liao <liaojianguo19840726@gmail.com>  
is this correct [y/N]? y  

repo has been initialized in /home/jianguoliao/WORKING_DIRECTORY  

解决

[html] view plaincopy

1
2
3
4
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$ repo init -u https://android.googlesource.com/platform/manifest  

Your identity is: jianguo liao <liaojianguo19840726@gmail.com>  
If you want to change this, please re-run 'repo init' with --config-name  

或者:注意没有/a哦

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$ repo init -u https://android.googlesource.com/platform/manifest --config  

Your Name  [jianguo liao]: jianguo liao  
Your Email [liaojianguo19840726@gmail.com]: liaojianguo19840726@gmail.com  

Your identity is: jianguo liao <liaojianguo19840726@gmail.com>  
is this correct [y/N]? y  

repo has been initialized in /home/jianguoliao/WORKING_DIRECTORY  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$   

接着搞:

[html] view plaincopy

1
2
3
4
5
6
7
8
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1  
.repo/manifests/: discarding 88 commits  

Your identity is: jianguo liao <liaojianguo19840726@gmail.com>  
If you want to change this, please re-run 'repo init' with --config-name  

repo has been initialized in /home/jianguoliao/WORKING_DIRECTORY  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$   

好吧,接下来最后一步了

[html] view plaincopy

1
$ repo sync  

网上有朋友建议,写个脚本如下:

[html] view plaincopy

1
2
3
4
5
6
7
8
#!/bin/bash    
echo "======start repo sync======"    
repo sync    
while [ $? = 1 ]; do    
echo "======sync failed, re-sync again======"    
sleep 3    
repo sync    
done  

其中还遇到如下问题,经常提示如下信息,网上有朋友建议:

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
error: Failed connect to android.googlesource.com:443;Connection refused while accessinghttps://android.googlesource.com/a/platform/frameworks/base/info/refs  

fatal: HTTP request failed  

error: Cannot fetch platform/tools/motodev  

error: Cannot fetch platform/frameworks/base  

error: Cannot fetch platform/prebuilts/sdk   

error: Exited sync due to fetch errors  

等错误信息。  

解决方法:编辑/etc/hosts文件  

 $ sudo gedit /etc/hosts  

增加下面内容,保存  

74.125.71.82 www.googlesource.com  

74.125.31.82 android.googlesource.com  

203.208.46.172 cache.pack.google.com  

59.24.3.173cache.pack.google.com  

早上起来发现代码下载好了,happy下!

下载完后,你可以查看最新所有的分子,下载你想要的比如最新的android source,比如4.3的代码

[html] view plaincopy

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$ ls -al  
total 92  
drwxrwxr-x  21 jianguoliao jianguoliao 4096 Aug  9 04:11 .  
drwxr-xr-x  30 jianguoliao jianguoliao 4096 Aug 11 08:16 ..  
drwxrwxr-x   3 jianguoliao jianguoliao 4096 Aug  9 04:06 abi  
drwxrwxr-x   9 jianguoliao jianguoliao 4096 Aug  9 04:06 bionic  
drwxrwxr-x   5 jianguoliao jianguoliao 4096 Aug  9 04:06 bootable  
drwxrwxr-x   7 jianguoliao jianguoliao 4096 Aug  9 04:06 build  
drwxrwxr-x   8 jianguoliao jianguoliao 4096 Aug  9 04:06 cts  
drwxrwxr-x  19 jianguoliao jianguoliao 4096 Aug  9 04:06 dalvik  
drwxrwxr-x  20 jianguoliao jianguoliao 4096 Aug  9 04:06 development  
drwxrwxr-x   8 jianguoliao jianguoliao 4096 Aug  9 04:06 device  
drwxrwxr-x   3 jianguoliao jianguoliao 4096 Aug  9 04:06 docs  
drwxrwxr-x 116 jianguoliao jianguoliao 4096 Aug  9 04:08 external  
drwxrwxr-x   8 jianguoliao jianguoliao 4096 Aug  9 04:08 frameworks  
drwxrwxr-x  10 jianguoliao jianguoliao 4096 Aug  9 04:08 hardware  
drwxrwxr-x  12 jianguoliao jianguoliao 4096 Aug  9 04:09 libcore  
-r--r--r--   1 jianguoliao jianguoliao   87 Aug  9 04:06 Makefile  
drwxrwxr-x   8 jianguoliao jianguoliao 4096 Aug  9 04:09 ndk  
drwxrwxr-x   7 jianguoliao jianguoliao 4096 Aug  9 04:09 packages  
drwxrwxr-x  15 jianguoliao jianguoliao 4096 Aug  9 04:11 prebuilt  
drwxrwxr-x   6 jianguoliao jianguoliao 4096 Aug  9 04:06 .repo  
-rwxrwxrwx   1 jianguoliao jianguoliao  161 Aug  8 21:39 repo_sync.sh  
drwxrwxr-x  39 jianguoliao jianguoliao 4096 Aug  9 04:11 sdk  
drwxrwxr-x   8 jianguoliao jianguoliao 4096 Aug  9 04:11 system  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY$ cd .repo/  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY/.repo$ ls  
manifests  manifests.git  manifest.xml  project.list  projects  repo  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY/.repo$ cd manifests  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY/.repo/manifests$ ls  
default.xml  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/WORKING_DIRECTORY/.repo/manifests$ git branch -al  
* default  
  remotes/m/android-4.0.1_r1 -> origin/android-4.0.1_r1  
  remotes/origin/android-1.6_r1  
  remotes/origin/android-1.6_r1.1  
  remotes/origin/android-1.6_r1.2  
  remotes/origin/android-1.6_r1.3  
  remotes/origin/android-1.6_r1.4  
  remotes/origin/android-1.6_r1.5  
  remotes/origin/android-1.6_r2  
  remotes/origin/android-2.0.1_r1  
  remotes/origin/android-2.0_r1  
  remotes/origin/android-2.1_r1  
  remotes/origin/android-2.1_r2  
  remotes/origin/android-2.1_r2.1p  
  remotes/origin/android-2.1_r2.1p2  
  remotes/origin/android-2.1_r2.1s  
  remotes/origin/android-2.2.1_r1  
  remotes/origin/android-2.2.1_r2  
  remotes/origin/android-2.2.2_r1  
  remotes/origin/android-2.2.3_r1  
  remotes/origin/android-2.2.3_r2  
  remotes/origin/android-2.2.3_r2.1  
  remotes/origin/android-2.2_r1  
  remotes/origin/android-2.2_r1.1  
  remotes/origin/android-2.2_r1.2  
  remotes/origin/android-2.2_r1.3  
  remotes/origin/android-2.3.1_r1  
  remotes/origin/android-2.3.2_r1  
  remotes/origin/android-2.3.3_r1  
  remotes/origin/android-2.3.3_r1.1  
  remotes/origin/android-2.3.4_r0.9  
  remotes/origin/android-2.3.4_r1  
  remotes/origin/android-2.3.5_r1  
  remotes/origin/android-2.3.6_r0.9  
  remotes/origin/android-2.3.6_r1  
  remotes/origin/android-2.3.7_r1  
  remotes/origin/android-2.3_r1  
  remotes/origin/android-4.0.1_r1  
  remotes/origin/android-4.0.1_r1.1  
  remotes/origin/android-4.0.1_r1.2  
  remotes/origin/android-4.0.2_r1  
  remotes/origin/android-4.0.3_r1  
  remotes/origin/android-4.0.3_r1.1  
  remotes/origin/android-4.0.4_r1  
  remotes/origin/android-4.0.4_r1.1  
  remotes/origin/android-4.0.4_r1.2  
  remotes/origin/android-4.0.4_r2  
  remotes/origin/android-4.0.4_r2.1  
  remotes/origin/android-4.1.1_r1  
  remotes/origin/android-4.1.1_r1.1  
  remotes/origin/android-4.1.1_r2  
  remotes/origin/android-4.1.1_r3  
  remotes/origin/android-4.1.1_r4  
  remotes/origin/android-4.1.1_r5  
  remotes/origin/android-4.1.1_r6  
  remotes/origin/android-4.1.1_r6.1  
  remotes/origin/android-4.1.2_r1  
  remotes/origin/android-4.1.2_r2  
  remotes/origin/android-4.1.2_r2.1  
  remotes/origin/android-4.2.1_r1  
  remotes/origin/android-4.2.1_r1.1  
  remotes/origin/android-4.2.1_r1.2  
  remotes/origin/android-4.2.2_r1  
  remotes/origin/android-4.2.2_r1.1  
  remotes/origin/android-4.2.2_r1.2  
  remotes/origin/android-4.2.2_r1.2b  
  remotes/origin/android-4.2_r1  
  remotes/origin/android-4.3_r0.9  
  remotes/origin/android-4.3_r0.9.1  
  remotes/origin/android-4.3_r1  
  remotes/origin/android-4.3_r2  
  remotes/origin/android-4.3_r2.1  
  remotes/origin/android-cts-2.2_r8  
  remotes/origin/android-cts-2.3_r10  
  remotes/origin/android-cts-2.3_r11  
  remotes/origin/android-cts-2.3_r12  
  remotes/origin/android-cts-4.0.3_r1  
  remotes/origin/android-cts-4.0.3_r2  
  remotes/origin/android-cts-4.0_r1  
  remotes/origin/android-cts-4.1_r1  
  remotes/origin/android-cts-4.1_r2  
  remotes/origin/android-cts-4.2_r2  
  remotes/origin/android-cts-verifier-4.0.3_r1  
  remotes/origin/android-cts-verifier-4.0_r1  
  remotes/origin/android-sdk-4.0.3-tools_r1  
  remotes/origin/android-sdk-4.0.3_r1  
  remotes/origin/android-sdk-adt_r16.0.1  
  remotes/origin/android-sdk-adt_r20  
  remotes/origin/android-sdk-support_r11  
  remotes/origin/froyo  
  remotes/origin/gingerbread  
  remotes/origin/gingerbread-release  
  remotes/origin/ics-mr0  
  remotes/origin/ics-mr1  
  remotes/origin/ics-plus-aosp  
  remotes/origin/jb-dev  
  remotes/origin/jb-mr1-dev  
  remotes/origin/jb-mr1-dev-plus-aosp  
  remotes/origin/jb-mr1.1-dev  
  remotes/origin/jb-mr1.1-dev-plus-aosp  
  remotes/origin/jb-mr2-dev  
  remotes/origin/jumper-stable  
  remotes/origin/master  
  remotes/origin/master-dalvik  
  remotes/origin/tools_r20  
  remotes/origin/tools_r21  
  remotes/origin/tools_r21.1  
  remotes/origin/tools_r22  
  remotes/origin/tradefed  

接下来我们下载4.3最新代码,其中遇到“cannot make .repo directory: Permission denied”看我怎么解决的,如果你是root用户不会有这个问题,就是权限问题

[html] view plaincopy

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ cd android_source/  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ ls  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$  repo init -u https://android.googlesource.com/platform/manifest  
fatal: cannot make .repo directory: Permission denied  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ chmod a+x ~/bin/repo  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ PATH=~/bin:$PATH  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ repo init -u https://android.googlesource.com/platform/manifest  
fatal: cannot make .repo directory: Permission denied  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ sudo chown -R jianguoliao:jianguoliao ./  
[sudo] password for jianguoliao:   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ repo init -u https://android.googlesource.com/platform/manifest  
Get https://gerrit.googlesource.com/git-repo  
remote: Counting objects: 101, done  
remote: Finding sources: 100% (101/101)  
remote: Total 2533 (delta 1442), reused 2533 (delta 1442)  
Receiving objects: 100% (2533/2533), 1.71 MiB | 912 KiB/s, done.  
Resolving deltas: 100% (1442/1442), done.  
From https://gerrit.googlesource.com/git-repo  
 * [new branch]      maint      -> origin/maint  
 * [new branch]      master     -> origin/master  
 * [new branch]      stable     -> origin/stable  
 * [new tag]         v1.0       -> v1.0  
 * [new tag]         v1.0.1     -> v1.0.1  
 * [new tag]         v1.0.2     -> v1.0.2  
 * [new tag]         v1.0.3     -> v1.0.3  
 * [new tag]         v1.0.4     -> v1.0.4  
 * [new tag]         v1.0.5     -> v1.0.5  
 * [new tag]         v1.0.6     -> v1.0.6  
 * [new tag]         v1.0.7     -> v1.0.7  
 * [new tag]         v1.0.8     -> v1.0.8  
 * [new tag]         v1.0.9     -> v1.0.9  
 * [new tag]         v1.1       -> v1.1  
 * [new tag]         v1.10.0    -> v1.10.0  
 * [new tag]         v1.10.1    -> v1.10.1  
 * [new tag]         v1.10.2    -> v1.10.2  
 * [new tag]         v1.10.3    -> v1.10.3  
 * [new tag]         v1.10.4    -> v1.10.4  
 * [new tag]         v1.11.0    -> v1.11.0  
 * [new tag]         v1.11.1    -> v1.11.1  
 * [new tag]         v1.12.0    -> v1.12.0  
 * [new tag]         v1.12.1    -> v1.12.1  
 * [new tag]         v1.12.2    -> v1.12.2  
 * [new tag]         v1.2       -> v1.2  
 * [new tag]         v1.3       -> v1.3  
 * [new tag]         v1.3.1     -> v1.3.1  
 * [new tag]         v1.3.2     -> v1.3.2  
 * [new tag]         v1.4       -> v1.4  
 * [new tag]         v1.4.1     -> v1.4.1  
 * [new tag]         v1.4.2     -> v1.4.2  
 * [new tag]         v1.4.3     -> v1.4.3  
 * [new tag]         v1.4.4     -> v1.4.4  
 * [new tag]         v1.5       -> v1.5  
 * [new tag]         v1.5.1     -> v1.5.1  
 * [new tag]         v1.6       -> v1.6  
 * [new tag]         v1.6.1     -> v1.6.1  
 * [new tag]         v1.6.10    -> v1.6.10  
 * [new tag]         v1.6.10.1  -> v1.6.10.1  
 * [new tag]         v1.6.10.2  -> v1.6.10.2  
 * [new tag]         v1.6.2     -> v1.6.2  
 * [new tag]         v1.6.3     -> v1.6.3  
 * [new tag]         v1.6.4     -> v1.6.4  
 * [new tag]         v1.6.5     -> v1.6.5  
 * [new tag]         v1.6.6     -> v1.6.6  
 * [new tag]         v1.6.7     -> v1.6.7  
 * [new tag]         v1.6.7.1   -> v1.6.7.1  
 * [new tag]         v1.6.7.2   -> v1.6.7.2  
 * [new tag]         v1.6.7.3   -> v1.6.7.3  
 * [new tag]         v1.6.7.4   -> v1.6.7.4  
 * [new tag]         v1.6.7.5   -> v1.6.7.5  
 * [new tag]         v1.6.8     -> v1.6.8  
 * [new tag]         v1.6.8.1   -> v1.6.8.1  
 * [new tag]         v1.6.8.10  -> v1.6.8.10  
 * [new tag]         v1.6.8.11  -> v1.6.8.11  
 * [new tag]         v1.6.8.2   -> v1.6.8.2  
 * [new tag]         v1.6.8.3   -> v1.6.8.3  
 * [new tag]         v1.6.8.4   -> v1.6.8.4  
 * [new tag]         v1.6.8.5   -> v1.6.8.5  
 * [new tag]         v1.6.8.6   -> v1.6.8.6  
 * [new tag]         v1.6.8.7   -> v1.6.8.7  
 * [new tag]         v1.6.8.8   -> v1.6.8.8  
 * [new tag]         v1.6.8.9   -> v1.6.8.9  
 * [new tag]         v1.6.9     -> v1.6.9  
 * [new tag]         v1.6.9.1   -> v1.6.9.1  
 * [new tag]         v1.6.9.2   -> v1.6.9.2  
 * [new tag]         v1.6.9.3   -> v1.6.9.3  
 * [new tag]         v1.6.9.4   -> v1.6.9.4  
 * [new tag]         v1.6.9.5   -> v1.6.9.5  
 * [new tag]         v1.6.9.6   -> v1.6.9.6  
 * [new tag]         v1.6.9.7   -> v1.6.9.7  
 * [new tag]         v1.6.9.8   -> v1.6.9.8  
 * [new tag]         v1.7       -> v1.7  
 * [new tag]         v1.7.1     -> v1.7.1  
 * [new tag]         v1.7.2     -> v1.7.2  
 * [new tag]         v1.7.3     -> v1.7.3  
 * [new tag]         v1.7.3.1   -> v1.7.3.1  
 * [new tag]         v1.7.4     -> v1.7.4  
 * [new tag]         v1.7.4.1   -> v1.7.4.1  
 * [new tag]         v1.7.4.2   -> v1.7.4.2  
 * [new tag]         v1.7.4.3   -> v1.7.4.3  
 * [new tag]         v1.7.5     -> v1.7.5  
 * [new tag]         v1.7.6     -> v1.7.6  
 * [new tag]         v1.7.6.1   -> v1.7.6.1  
 * [new tag]         v1.7.7     -> v1.7.7  
 * [new tag]         v1.7.7.1   -> v1.7.7.1  
 * [new tag]         v1.7.7.2   -> v1.7.7.2  
 * [new tag]         v1.7.7.3   -> v1.7.7.3  
 * [new tag]         v1.7.7.4   -> v1.7.7.4  
 * [new tag]         v1.7.7.5   -> v1.7.7.5  
 * [new tag]         v1.7.7.6   -> v1.7.7.6  
 * [new tag]         v1.7.8     -> v1.7.8  
 * [new tag]         v1.7.8.1   -> v1.7.8.1  
 * [new tag]         v1.7.8.2   -> v1.7.8.2  
 * [new tag]         v1.8.0     -> v1.8.0  
 * [new tag]         v1.8.1     -> v1.8.1  
 * [new tag]         v1.8.2     -> v1.8.2  
 * [new tag]         v1.9.0     -> v1.9.0  
 * [new tag]         v1.9.1     -> v1.9.1  
 * [new tag]         v1.9.2     -> v1.9.2  
 * [new tag]         v1.9.3     -> v1.9.3  
 * [new tag]         v1.9.4     -> v1.9.4  
 * [new tag]         v1.9.5     -> v1.9.5  
 * [new tag]         v1.9.6     -> v1.9.6  
Get https://android.googlesource.com/platform/manifest  
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                                 Dload  Upload   Total   Spent    Left  Speed  
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  
curl: (22) The requested URL returned error: 404  
Server does not provide clone.bundle; ignoring.  
remote: Counting objects: 92, done  
remote: Finding sources: 100% (92/92)  
remote: Total 816 (delta 96), reused 816 (delta 96)  
Receiving objects: 100% (816/816), 708.29 KiB | 926 KiB/s, done.  
Resolving deltas: 100% (96/96), done.  
From https://android.googlesource.com/platform/manifest  
 * [new branch]      android-1.6_r1 -> origin/android-1.6_r1  
 * [new branch]      android-1.6_r1.1 -> origin/android-1.6_r1.1  
 * [new branch]      android-1.6_r1.2 -> origin/android-1.6_r1.2  
 * [new branch]      android-1.6_r1.3 -> origin/android-1.6_r1.3  
 * [new branch]      android-1.6_r1.4 -> origin/android-1.6_r1.4  
 * [new branch]      android-1.6_r1.5 -> origin/android-1.6_r1.5  
 * [new branch]      android-1.6_r2 -> origin/android-1.6_r2  
 * [new branch]      android-2.0.1_r1 -> origin/android-2.0.1_r1  
 * [new branch]      android-2.0_r1 -> origin/android-2.0_r1  
 * [new branch]      android-2.1_r1 -> origin/android-2.1_r1  
 * [new branch]      android-2.1_r2 -> origin/android-2.1_r2  
 * [new branch]      android-2.1_r2.1p -> origin/android-2.1_r2.1p  
 * [new branch]      android-2.1_r2.1p2 -> origin/android-2.1_r2.1p2  
 * [new branch]      android-2.1_r2.1s -> origin/android-2.1_r2.1s  
 * [new branch]      android-2.2.1_r1 -> origin/android-2.2.1_r1  
 * [new branch]      android-2.2.1_r2 -> origin/android-2.2.1_r2  
 * [new branch]      android-2.2.2_r1 -> origin/android-2.2.2_r1  
 * [new branch]      android-2.2.3_r1 -> origin/android-2.2.3_r1  
 * [new branch]      android-2.2.3_r2 -> origin/android-2.2.3_r2  
 * [new branch]      android-2.2.3_r2.1 -> origin/android-2.2.3_r2.1  
 * [new branch]      android-2.2_r1 -> origin/android-2.2_r1  
 * [new branch]      android-2.2_r1.1 -> origin/android-2.2_r1.1  
 * [new branch]      android-2.2_r1.2 -> origin/android-2.2_r1.2  
 * [new branch]      android-2.2_r1.3 -> origin/android-2.2_r1.3  
 * [new branch]      android-2.3.1_r1 -> origin/android-2.3.1_r1  
 * [new branch]      android-2.3.2_r1 -> origin/android-2.3.2_r1  
 * [new branch]      android-2.3.3_r1 -> origin/android-2.3.3_r1  
 * [new branch]      android-2.3.3_r1.1 -> origin/android-2.3.3_r1.1  
 * [new branch]      android-2.3.4_r0.9 -> origin/android-2.3.4_r0.9  
 * [new branch]      android-2.3.4_r1 -> origin/android-2.3.4_r1  
 * [new branch]      android-2.3.5_r1 -> origin/android-2.3.5_r1  
 * [new branch]      android-2.3.6_r0.9 -> origin/android-2.3.6_r0.9  
 * [new branch]      android-2.3.6_r1 -> origin/android-2.3.6_r1  
 * [new branch]      android-2.3.7_r1 -> origin/android-2.3.7_r1  
 * [new branch]      android-2.3_r1 -> origin/android-2.3_r1  
 * [new branch]      android-4.0.1_r1 -> origin/android-4.0.1_r1  
 * [new branch]      android-4.0.1_r1.1 -> origin/android-4.0.1_r1.1  
 * [new branch]      android-4.0.1_r1.2 -> origin/android-4.0.1_r1.2  
 * [new branch]      android-4.0.2_r1 -> origin/android-4.0.2_r1  
 * [new branch]      android-4.0.3_r1 -> origin/android-4.0.3_r1  
 * [new branch]      android-4.0.3_r1.1 -> origin/android-4.0.3_r1.1  
 * [new branch]      android-4.0.4_r1 -> origin/android-4.0.4_r1  
 * [new branch]      android-4.0.4_r1.1 -> origin/android-4.0.4_r1.1  
 * [new branch]      android-4.0.4_r1.2 -> origin/android-4.0.4_r1.2  
 * [new branch]      android-4.0.4_r2 -> origin/android-4.0.4_r2  
 * [new branch]      android-4.0.4_r2.1 -> origin/android-4.0.4_r2.1  
 * [new branch]      android-4.1.1_r1 -> origin/android-4.1.1_r1  
 * [new branch]      android-4.1.1_r1.1 -> origin/android-4.1.1_r1.1  
 * [new branch]      android-4.1.1_r2 -> origin/android-4.1.1_r2  
 * [new branch]      android-4.1.1_r3 -> origin/android-4.1.1_r3  
 * [new branch]      android-4.1.1_r4 -> origin/android-4.1.1_r4  
 * [new branch]      android-4.1.1_r5 -> origin/android-4.1.1_r5  
 * [new branch]      android-4.1.1_r6 -> origin/android-4.1.1_r6  
 * [new branch]      android-4.1.1_r6.1 -> origin/android-4.1.1_r6.1  
 * [new branch]      android-4.1.2_r1 -> origin/android-4.1.2_r1  
 * [new branch]      android-4.1.2_r2 -> origin/android-4.1.2_r2  
 * [new branch]      android-4.1.2_r2.1 -> origin/android-4.1.2_r2.1  
 * [new branch]      android-4.2.1_r1 -> origin/android-4.2.1_r1  
 * [new branch]      android-4.2.1_r1.1 -> origin/android-4.2.1_r1.1  
 * [new branch]      android-4.2.1_r1.2 -> origin/android-4.2.1_r1.2  
 * [new branch]      android-4.2.2_r1 -> origin/android-4.2.2_r1  
 * [new branch]      android-4.2.2_r1.1 -> origin/android-4.2.2_r1.1  
 * [new branch]      android-4.2.2_r1.2 -> origin/android-4.2.2_r1.2  
 * [new branch]      android-4.2.2_r1.2b -> origin/android-4.2.2_r1.2b  
 * [new branch]      android-4.2_r1 -> origin/android-4.2_r1  
 * [new branch]      android-4.3_r0.9 -> origin/android-4.3_r0.9  
 * [new branch]      android-4.3_r0.9.1 -> origin/android-4.3_r0.9.1  
 * [new branch]      android-4.3_r1 -> origin/android-4.3_r1  
 * [new branch]      android-4.3_r2 -> origin/android-4.3_r2  
 * [new branch]      android-4.3_r2.1 -> origin/android-4.3_r2.1  
 * [new branch]      android-cts-2.2_r8 -> origin/android-cts-2.2_r8  
 * [new branch]      android-cts-2.3_r10 -> origin/android-cts-2.3_r10  
 * [new branch]      android-cts-2.3_r11 -> origin/android-cts-2.3_r11  
 * [new branch]      android-cts-2.3_r12 -> origin/android-cts-2.3_r12  
 * [new branch]      android-cts-4.0.3_r1 -> origin/android-cts-4.0.3_r1  
 * [new branch]      android-cts-4.0.3_r2 -> origin/android-cts-4.0.3_r2  
 * [new branch]      android-cts-4.0_r1 -> origin/android-cts-4.0_r1  
 * [new branch]      android-cts-4.1_r1 -> origin/android-cts-4.1_r1  
 * [new branch]      android-cts-4.1_r2 -> origin/android-cts-4.1_r2  
 * [new branch]      android-cts-4.2_r2 -> origin/android-cts-4.2_r2  
 * [new branch]      android-cts-verifier-4.0.3_r1 -> origin/android-cts-verifier-4.0.3_r1  
 * [new branch]      android-cts-verifier-4.0_r1 -> origin/android-cts-verifier-4.0_r1  
 * [new branch]      android-sdk-4.0.3-tools_r1 -> origin/android-sdk-4.0.3-tools_r1  
 * [new branch]      android-sdk-4.0.3_r1 -> origin/android-sdk-4.0.3_r1  
 * [new branch]      android-sdk-adt_r16.0.1 -> origin/android-sdk-adt_r16.0.1  
 * [new branch]      android-sdk-adt_r20 -> origin/android-sdk-adt_r20  
 * [new branch]      android-sdk-support_r11 -> origin/android-sdk-support_r11  
 * [new branch]      froyo      -> origin/froyo  
 * [new branch]      gingerbread -> origin/gingerbread  
 * [new branch]      gingerbread-release -> origin/gingerbread-release  
 * [new branch]      ics-mr0    -> origin/ics-mr0  
 * [new branch]      ics-mr1    -> origin/ics-mr1  
 * [new branch]      ics-plus-aosp -> origin/ics-plus-aosp  
 * [new branch]      jb-dev     -> origin/jb-dev  
 * [new branch]      jb-mr1-dev -> origin/jb-mr1-dev  
 * [new branch]      jb-mr1-dev-plus-aosp -> origin/jb-mr1-dev-plus-aosp  
 * [new branch]      jb-mr1.1-dev -> origin/jb-mr1.1-dev  
 * [new branch]      jb-mr1.1-dev-plus-aosp -> origin/jb-mr1.1-dev-plus-aosp  
 * [new branch]      jb-mr2-dev -> origin/jb-mr2-dev  
 * [new branch]      jumper-stable -> origin/jumper-stable  
 * [new branch]      master     -> origin/master  
 * [new branch]      master-dalvik -> origin/master-dalvik  
 * [new branch]      tools_r20  -> origin/tools_r20  
 * [new branch]      tools_r21  -> origin/tools_r21  
 * [new branch]      tools_r21.1 -> origin/tools_r21.1  
 * [new branch]      tools_r22  -> origin/tools_r22  
 * [new branch]      tradefed   -> origin/tradefed  
 * [new tag]         android-1.6_r1.1_ -> android-1.6_r1.1_  
 * [new tag]         android-1.6_r1.2_ -> android-1.6_r1.2_  
 * [new tag]         android-1.6_r1.3_ -> android-1.6_r1.3_  
 * [new tag]         android-1.6_r1.4_ -> android-1.6_r1.4_  
 * [new tag]         android-1.6_r1.5_ -> android-1.6_r1.5_  
 * [new tag]         android-1.6_r1_ -> android-1.6_r1_  
 * [new tag]         android-1.6_r2_ -> android-1.6_r2_  
 * [new tag]         android-2.0.1_r1_ -> android-2.0.1_r1_  
 * [new tag]         android-2.0_r1_ -> android-2.0_r1_  
 * [new tag]         android-2.1_r1_ -> android-2.1_r1_  
 * [new tag]         android-2.1_r2.1p2_ -> android-2.1_r2.1p2_  
 * [new tag]         android-2.1_r2.1p_ -> android-2.1_r2.1p_  
 * [new tag]         android-2.1_r2.1s_ -> android-2.1_r2.1s_  
 * [new tag]         android-2.1_r2_ -> android-2.1_r2_  
 * [new tag]         android-2.2.1_r1_ -> android-2.2.1_r1_  
 * [new tag]         android-2.2.1_r2_ -> android-2.2.1_r2_  
 * [new tag]         android-2.2.2_r1_ -> android-2.2.2_r1_  
 * [new tag]         android-2.2.3_r1 -> android-2.2.3_r1  
 * [new tag]         android-2.2.3_r2 -> android-2.2.3_r2  
 * [new tag]         android-2.2.3_r2.1 -> android-2.2.3_r2.1  
 * [new tag]         android-2.2_r1.1_ -> android-2.2_r1.1_  
 * [new tag]         android-2.2_r1.2_ -> android-2.2_r1.2_  
 * [new tag]         android-2.2_r1.3_ -> android-2.2_r1.3_  
 * [new tag]         android-2.2_r1_ -> android-2.2_r1_  
 * [new tag]         android-2.3.1_r1_ -> android-2.3.1_r1_  
 * [new tag]         android-2.3.2_r1_ -> android-2.3.2_r1_  
 * [new tag]         android-2.3.3_r1.1_ -> android-2.3.3_r1.1_  
 * [new tag]         android-2.3.3_r1_ -> android-2.3.3_r1_  
 * [new tag]         android-2.3.4_r0.9_ -> android-2.3.4_r0.9_  
 * [new tag]         android-2.3.4_r1_ -> android-2.3.4_r1_  
 * [new tag]         android-2.3.5_r1_ -> android-2.3.5_r1_  
 * [new tag]         android-2.3.6_r0.9 -> android-2.3.6_r0.9  
 * [new tag]         android-2.3.6_r1 -> android-2.3.6_r1  
 * [new tag]         android-2.3.7_r1 -> android-2.3.7_r1  
 * [new tag]         android-2.3_r1_ -> android-2.3_r1_  
 * [new tag]         android-4.0.1_r1 -> android-4.0.1_r1  
 * [new tag]         android-4.0.1_r1.1 -> android-4.0.1_r1.1  
 * [new tag]         android-4.0.1_r1.2 -> android-4.0.1_r1.2  
 * [new tag]         android-4.0.2_r1 -> android-4.0.2_r1  
 * [new tag]         android-4.0.3_r1 -> android-4.0.3_r1  
 * [new tag]         android-4.0.3_r1.1 -> android-4.0.3_r1.1  
 * [new tag]         android-4.0.4_r1 -> android-4.0.4_r1  
 * [new tag]         android-4.0.4_r1.1 -> android-4.0.4_r1.1  
 * [new tag]         android-4.0.4_r1.2 -> android-4.0.4_r1.2  
 * [new tag]         android-4.0.4_r2 -> android-4.0.4_r2  
 * [new tag]         android-4.0.4_r2.1 -> android-4.0.4_r2.1  
 * [new tag]         android-4.1.1_r1 -> android-4.1.1_r1  
 * [new tag]         android-4.1.1_r1.1 -> android-4.1.1_r1.1  
 * [new tag]         android-4.1.1_r1_ -> android-4.1.1_r1_  
 * [new tag]         android-4.1.1_r2 -> android-4.1.1_r2  
 * [new tag]         android-4.1.1_r3 -> android-4.1.1_r3  
 * [new tag]         android-4.1.1_r4 -> android-4.1.1_r4  
 * [new tag]         android-4.1.1_r5 -> android-4.1.1_r5  
 * [new tag]         android-4.1.1_r6 -> android-4.1.1_r6  
 * [new tag]         android-4.1.1_r6.1 -> android-4.1.1_r6.1  
 * [new tag]         android-4.1.2_r1 -> android-4.1.2_r1  
 * [new tag]         android-4.1.2_r2 -> android-4.1.2_r2  
 * [new tag]         android-4.1.2_r2.1 -> android-4.1.2_r2.1  
 * [new tag]         android-4.2.1_r1.1 -> android-4.2.1_r1.1  
 * [new tag]         android-4.2.1_r1.2 -> android-4.2.1_r1.2  
 * [new tag]         android-4.2.1_r1__ -> android-4.2.1_r1__  
 * [new tag]         android-4.2.2_r1.1 -> android-4.2.2_r1.1  
 * [new tag]         android-4.2.2_r1.2 -> android-4.2.2_r1.2  
 * [new tag]         android-4.2.2_r1_ -> android-4.2.2_r1_  
 * [new tag]         android-4.2_r1___ -> android-4.2_r1___  
 * [new tag]         android-4.3_r0.9 -> android-4.3_r0.9  
 * [new tag]         android-4.3_r0.9.1 -> android-4.3_r0.9.1  
 * [new tag]         android-4.3_r0.9.1_ -> android-4.3_r0.9.1_  
 * [new tag]         android-4.3_r0.9_ -> android-4.3_r0.9_  
 * [new tag]         android-4.3_r1 -> android-4.3_r1  
 * [new tag]         android-4.3_r1_ -> android-4.3_r1_  
 * [new tag]         android-4.3_r2 -> android-4.3_r2  
 * [new tag]         android-4.3_r2.1_ -> android-4.3_r2.1_  
 * [new tag]         android-4.3_r2.1__ -> android-4.3_r2.1__  
 * [new tag]         android-4.3_r2_ -> android-4.3_r2_  
 * [new tag]         android-cts-2.2_r8 -> android-cts-2.2_r8  
 * [new tag]         android-cts-2.3_r10 -> android-cts-2.3_r10  
 * [new tag]         android-cts-2.3_r11 -> android-cts-2.3_r11  
 * [new tag]         android-cts-2.3_r12 -> android-cts-2.3_r12  
 * [new tag]         android-cts-4.0.3_r1 -> android-cts-4.0.3_r1  
 * [new tag]         android-cts-4.0.3_r2 -> android-cts-4.0.3_r2  
 * [new tag]         android-cts-4.0_r1 -> android-cts-4.0_r1  
 * [new tag]         android-cts-4.1_r1 -> android-cts-4.1_r1  
 * [new tag]         android-cts-4.1_r2 -> android-cts-4.1_r2  
 * [new tag]         android-cts-4.2_r2 -> android-cts-4.2_r2  
 * [new tag]         android-cts-verifier-4.0.3_r1 -> android-cts-verifier-4.0.3_r1  
 * [new tag]         android-cts-verifier-4.0_r1 -> android-cts-verifier-4.0_r1  
 * [new tag]         android-sdk-4.0.3-tools_r1 -> android-sdk-4.0.3-tools_r1  
 * [new tag]         android-sdk-4.0.3_r1 -> android-sdk-4.0.3_r1  
 * [new tag]         android-sdk-adt_r16.0.1 -> android-sdk-adt_r16.0.1  
 * [new tag]         android-sdk-adt_r20 -> android-sdk-adt_r20  
 * [new tag]         android-sdk-support_r11 -> android-sdk-support_r11  

Your identity is: jianguo liao <liaojianguo19840726@gmail.com>  
If you want to change this, please re-run 'repo init' with --config-name  

repo has been initialized in /home/jianguoliao/android_source  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.3_r2.1  
.repo/manifests/: discarding 1 commits  

Your identity is: jianguo liao <liaojianguo19840726@gmail.com>  
If you want to change this, please re-run 'repo init' with --config-name  

repo has been initialized in /home/jianguoliao/android_source  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ touch repo_sync.sh  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ gedit repo_sync.sh   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$   

[html] view plaincopy

1
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ chmod 777 repo_sync.sh  

执行脚本:./repo_sync.sh 就ok了,下面就是下载了,等待吧,呵呵

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ ls  
repo_sync.sh  repo_sync.sh~  
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ ./repo_sync.sh   
======start repo sync======  
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                    %     To   t  a l        D lo%ad   ReUpcleoadiv e  dTot %a l X  Sfeprentd      ALvefet  raSpgeede   
 ed 0       Ti 0m e    0     T   im0 e   0     0      0      0 --:--:-- --: -- :- -  - -:-Ti-:-me-      C 0urrent  
                                 Dload  Upload   Total   Spent    Left  Speed  
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                                 Dload  Upload   Total   Spent    Left  Speed  
  0     0    0     0    0     0      0      0 --:--:-- --:--:- -  --%:- -T:-o- t  a  l0    % Received % Xferd  Average Speed   Time    Time     Time  Current  
                                 Dload  Upload   Total   Spent    Left  Speed  
100     1  100     1    0     0      3      0 --:--:-- --:--:-- --:--:--     5  
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  
curl: (22) The requested URL returned error: 404  
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  
curl: (22) The requested URL returned error: 404  
Server does not provide clone.bundle; ignoring.  
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  
curl: (22) The requested URL returned error: 404  
Server does not provide clone.bundle; ignoring.  
remote: Counting objects: 48, done  
remote: Finding sources: 100% (48/48)  
remote: Counting objects: 87, done  
remote: Total 83 (delta 18), reused 83 (delta 18)  
remote: Finding sources: 100% (87/87)  
Unpacking objects: 100% (83/83), done.  
From https://android.googlesource.com/platform/abi/cpp  
 * [new branch]      ics-factoryrom-2-release -> aosp/ics-factoryrom-2-release  
 * [new branch]      ics-mr0    -> aosp/ics-mr0  
 * [new branch]      ics-mr0-release -> aosp/ics-mr0-release  
 * [new branch]      ics-mr1    -> aosp/ics-mr1  
 * [new branch]      ics-mr1-release -> aosp/ics-mr1-release  

这个看上去好舒服

[html] view plaincopy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Fetching projects: 100% (362/362), done.    
Checking out files: 100% (18349/18349), done. files:  31% (5855/18349)     
Checking out files: 100% (5465/5465), done.out files:  31% (1702/5465)     
Checking out files: 100% (7363/7363), done.out files:  20% (1539/7363)     
Checking out files: 100% (5403/5403), done.out files:  36% (1980/5403)     
Checking out files: 100% (10532/10532), done.ut files:  25% (2637/10532)     
Checking out files: 100% (24603/24603), done.ut files:  40% (10050/24603)     
Checking out files: 100% (19709/19709), done.ut files:   9% (1857/19709)     
Checking out files: 100% (4406/4406), done. out files:  39% (1746/4406)     
Checking out files: 100% (7394/7394), done.  
Checking out files: 100% (1774/1774), done. out files:  11% (211/1774)     
Checking out files: 100% (1386/1386), done. out files:  32% (450/1386)     
Checking out files: 100% (108/108), done.ng out files:  49% (53/108)     
Checking out files: 100% (431/431), done.ng out files:  10% (45/431)     
Checking out files: 100% (150/150), done.  
Checking out files: 100% (175/175), done.ng out files:  43% (76/175)     
Checking out files: 100% (181/181), done.  
Checking out files: 100% (192/192), done.ng out files:  12% (24/192)     
Checking out files: 100% (378/378), done.  
Checking out files: 100% (151/151), done.ng out files:  11% (17/151)     
Checking out files: 100% (2407/2407), done.  
Checking out files: 100% (2482/2482), done.  
Checking out files: 100% (2484/2484), done. out files:  36% (901/2484)     
Checking out files: 100% (177/177), done.  
Checking out files: 100% (182/182), done.  
Checking out files: 100% (137/137), done.  
Checking out files: 100% (193/193), done.ng out files:   4% (8/193)     
Checking out files: 100% (37353/37353), done.  
Checking out files: 100% (26/26), done.  
Checking out files: 100% (158/158), done.ng out files:   1% (2/158)     
Checking out files: 100% (1141/1141), done.  
Checking out files: 100% (3149/3149), done.  
Syncing work tree: 100% (362/362), done.    

jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$   
jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~/android_source$ 

&lt;think&gt;嗯,用户遇到了一个错误信息:/bin/sh: $&#39;\302\240&#39;: command not found,并且执行Dockerfile里的命令时返回了错误代码127。我需要帮他们分析这个问题。 首先,错误信息里的$&#39;\302\240&#39;看起来像是一个非打印字符。在ASCII中,302和240是八进制的数值,转换成十六进制是0xC2和0xA0,这组合起来就是Unicode的U+00A0,也就是不换行空格(non-breaking space)。普通空格是0x20,而这里用了不换行空格,可能用户在输入命令时不小心用了这种空格,导致shell无法识别。 接下来,错误代码127通常表示命令未找到。但这里的情况可能不同,因为错误信息提到了无法识别的字符,所以更可能的是语法问题而非命令不存在。需要确认用户命令中的空格是否正确。 用户提供的命令是: rm -rf /etc/yum.repos.d/CentOS-Base.repo &amp;&amp; &nbsp; &nbsp; curl -# -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 看起来在&amp;&amp;后面有多个空格,但可能其中包含不换行空格。需要检查这些空格是否是正常的ASCII空格。用户可能在编辑Dockerfile时,复制粘贴了带有特殊空格的命令,导致shell解析出错。 解决方法包括手动输入命令,避免复制粘贴,或者用sed或tr命令替换掉非ASCII字符。另外,建议用户在编辑器中显示不可见字符,以便检查是否有异常空格。 另外,也要注意是否curl命令不存在,但错误提示更可能先出现特殊字符的问题。如果解决了空格问题后仍然报错,再检查curl是否安装,但CentOS 7通常预装了curl,如果没有的话需要用yum安装,不过需要先配置好仓库,这里可能存在循环依赖,所以优先处理空格问题。&lt;/think&gt;这个错误通常是由于命令中存在**非法空格字符**导致的,属于常见的Shell脚本编写问题。以下是逐步分析: --- ### **1. 错误信息解读** 错误提示中的 `$&#39;\302\240&#39;` 是一个**非打印字符**(Non-breaking Space,Unicode `U+00A0`),它在终端中表现为&ldquo;看似正常&rdquo;的空格,但实际上属于非法字符。 Shell 只能识别普通空格(ASCII `0x20`),无法解析这种特殊空格,因此报错 `command not found`。 --- ### **2. 问题定位** 你的原始命令: ```bash /bin/sh -c rm -rf /etc/yum.repos.d/CentOS-Base.repo &amp;&amp; &nbsp; &nbsp; curl -# -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo ``` - **关键问题**:`&amp;&amp;` 后面的多个空格中混入了 `U+00A0` 字符(例如从网页复制命令时可能携带)。 --- ### **3. 解决方法** #### **方法 1:手动重写命令** 直接**手动输入命令**,避免从网页或文档复制粘贴。确保所有空格和符号为普通ASCII字符。 #### **方法 2:使用工具清理非法字符** 在脚本中添加预处理步骤,替换非法空格: ```bash sed -i &#39;s/\xc2\xa0/ /g&#39; your_script.sh # 替换所有非断行空格为普通空格 ``` #### **方法 3(推荐):检查编辑器设置** 在代码编辑器(如VS Code、Vim)中启用「显示不可见字符」功能,直接定位并删除非法空格。 --- ### **4. 补充说明** - **错误码 127**:通常表示&ldquo;命令未找到&rdquo;,但此例中实际是**语法解析失败**导致的&ldquo;伪未找到&rdquo;。 - **依赖检查**:如果修复空格后仍报错,需确认 `curl` 是否已安装(CentOS 7 默认可能未安装): ```bash yum install -y curl # 安装curl ``` --- ### **5. 正确命令示例** ```bash /bin/sh -c &quot;rm -rf /etc/yum.repos.d/CentOS-Base.repo &amp;&amp; \ curl -# -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo&quot; ``` - 使用 `\` 换行符提高可读性。 - 确保所有空格为普通ASCII字符。 --- 通过以上步骤,可彻底解决此问题。如果涉及Dockerfile构建,建议在本地调试通过后再生成镜像。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值