android 源码下载过程(记录下,留个纪念)

前期准备工具
U盘安装 ubuntu 

1.安装git

    sudo apt-get install git-core


2.安装curl

    sudo apt-get install git-core curl


3.创建存储目录

mkdir ~/bin创建目录 repo存储目录

mkdir ~/android 创建目录 源码存储目录


4.repo 获取(这个地址的repo验证过了不需要修改就可以直接使用),下载好了repo,同时记得给他赋予执行权限,最后记得添加全局路径,这样子才能在任意目录他用repo命令

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

chmod a+x ~/bin/repo

export PATH=$PATH:~/bin


5.因为google虽然支持匿名下载,但是防止ip连接过程频繁,需要登陆google账号获取一下你的账号密码相关信息,具体做法如下

打开下面网站:https://android.googlesource.com/new-password (需要登陆)

然后会看到类似于如下相关信息


怎么操作也有详细说明,大概说下,就是打开 ~/.netrc文件, 把我先中的那一段信息,保存到 ~/.netrc文件里面,

然后设置 chmod 600 ~/.netrc,让文件有读写权限就可以了,我账号的验证信息,贴给大家了,具体能不能用,看命运的抉择吧,(不行就登陆自己账号获取一次)

machine android.googlesource.com login git-dy145xp.gmail.com password 1/hPJmxsn0lICkdBrOi3V44Sj39JgynJgFRm0CJqUFvxQ

machine android-review.googlesource.com login git-dy145xp.gmail.com password 1/hPJmxsn0lICkdBrOi3V44Sj39JgynJgFRm0CJqUFvxQ


6.初始化相关信息,按网上专业说法是构造本地仓库,对git不是很熟悉,哎

cd ~/android

repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2(我要下载的是4.2.2的源码,所以直接构造的这个节点的相关信息)

查看分支 地址:https://android.googlesource.com/platform/manifest/+refs 

git-dy145xp.gmail.com  因为我们上次在本地已经设置好了账号验证信息可以这里填写对应的验证使用的账号与邮箱

git-dy145xp@gmail.com

本地仓库初始化完成后,我们修改一次地方,~/android 目录 是我们准备存放源码的目录,初始化完成以后会有一个隐藏目录 叫.repo,里面是一个git脚本,用于下载android所有节点的源码的.

执行命令 sudo vim android/.repo/manifest.xml,注意下图红框处,下面图是我已经修改过的文件,大家在打开文件的时候会注意到,fetch属性,默认是"...",所以我们需要修改此处属性为https://android.googlesource.com/,也就是 fetch= "https://android.googlesource.com/"


修改manifest.xml 主要为了解决如下错误信息:

fatal: '../platform/abi/cpp.git' does not appear to be a git repository

fatal: The remote end hung up unexpectedly

error: Cannot fetch platform/abi/cpp

在.repo目录下的manifest.xml里找到fetch属性

fetch= "https://android.googlesource.com/"

7.最后  repo sync

接下来,我们就可以开始我们的 repo sync大业了,由于天朝网络的坑爹性,中间可能会出现网络中断之类的,下面是网络上流利的一个脚本,会自动 repo sync

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

脚本如何使用大家可以自行百度下,哈哈,因为我自己没尝试过,哥的网络太棒了,一次repo sync,睡一觉醒来,尼玛下载好了,果断网络给力就是好啊,哈哈








posted on 2015-05-26 17:46  lsqingchis  阅读(361)  评论(0编辑  收藏  举报

导航