如何在Ubuntu 11.10(32位)下载Android 4.0源码(图文)

企鹅博客
企鹅博客
企鹅博客
25193
文章
0
评论
2020年8月31日21:53:28 评论 30 views

1 开始

1.1    初始化构建环境

这节主要是描述如何设置你的本地工作环境,怎么使用repo这个工具获取Android文件,怎么创建你机器上的文件。使用Linux或Mac Os才能构建Android源文件,Windows目前不支持.

注:源文件有6G大小。构建时,你需要25G空间来完成单独构建,而完整构建时需要80G空间。

1.2 设置Linux构建环境
注:在虚拟机内构建Android也是可以的。如果那样的话,那么你至少需要16G内存或交换分区和30G以上的磁盘空间。
一般来说你需要以下工具:
Python 2.4 -- 2.7, 你可从这下载python.org.
JDK 6 (Gingerbread 或更新版本), JDK 5 (Froyo 或更老版本.) 这些你都可以从 java.sun.com下载.

Git 1.7 或更新版本. 你可以git-scm.com下载.

1.2.1 安装JDK
     Sun JDK不再包含在Ubuntu的服务器上了,如果你要下载,你需要添加源和指明那个版本是你想要下载的.
安装Java6的方法:
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

1.2.2 安装需要的包

安装如下包:

$ 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

执行如下指令:

$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so

1.3 配置USB
在GNU/linux系统下,默认情况下,正常用户不能访问USB设备,而此时需要配置其可以访问.建议方法是在目录/etc/udev/rules.d/下以root权限创建一个51-android.rules文件:
$sudo gedit /etc/udev/rules.d/51-android.rules
然后将以下的内容复制并保存,注:需要将字符串username替换成你的用户名,即开机登陆时你的用户名.
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on maguro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"

这样配置完成只有重新插入USB才会生效.

2 下载源文件
2.1 下载源文件树
2.1.1 安装repo
       Repo是Android的源码管理工具,以下步骤是安装,初始化,配置repo.
第一步:要主目录下新建一个bin文件夹,并将其设置为环境参数PATH内.
$ mkdir ~/bin

$ PATH=~/bin:$PATH

第二步:下载repo脚本文件,并使其可执行.

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

$ chmod a+x ~/bin/repo

2.1.2 初如化repo客户端

第一步:在主目录上新建一个文件夹WORKING_DIRECTORY,然后进入这个路径.

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY

第二步:清单库初始化

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

这个命令会要求你输入你的用户名和邮箱

2.2 获取Android源文件

同步:

$ repo sync

接下来就是正式开始下载源码了,要很长时间才能下完,可以使用

$ repo sync -j10

来加快下载速度,即使用10个线程并行下载.

接下来就是等了,一直等到下载完,估计要两三天才能下完哦,要做好心理准备.

注:在下载过程中,在WORKING_DIRECTORY目录会自动生成一个隐藏的目录.repo,这个目录就是下载的内容,不过是隐藏的,用ls是看不见的.

如果在下载过程中出现错误的话,可再打开另一个终端,输入以下命令:

$ PATH=~/bin:$PATH

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

$ repo sync -j10

上两条命令都会要求你输入用户名和邮箱,输入即可,每次下载中断都要重复一次这样的操作,最郁闷的是一旦中断了,终端就死在那了,很长时候就没有动,最好是打开System Monitor这个工具查看当前的网络下载流量,一量出现流量小于4K以下的话就关闭终端,重新输入上述三条指令,不断这样操作。

另外,重复操作上述三条指令还不够,因为有时候下载某个节点一旦出现错误,重复上述三条指令还是会错误,终端如下提示:

www.linuxidc.com @linuxidc ~/android

# ../bin/repo sync

Fetching projects:93% (154/165)fatal: Not a git repository: '/home/你的用户名/WORKING_DIRECTORY/.repo/projects/packages/wallpapers/LivePicker.git'

error: Cannot fetch platform/packages/wallpapers/LivePicker

这个时候你就必须手动删除这个 LivePicker.git文件夹了,即:

rm -rf /home/你的用户名/WORKING_DIRECTORY/.repo/projects/packages/wallpapers/LivePicker.git

然后再重复上述三条指令即可,如此,就可以完成源码下载了。

下载结束如下图所示:

2.3 验证Git Tags

$gpg --import

然后复制下面的内容,粘贴到终端,再按CTRL+D

-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.2.2 (GNU/Linux) mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7 8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq /HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5 jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4 MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9 b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI 2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+ OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM= =Wi5D -----END PGP PUBLIC KEY BLOCK-----

如何在Ubuntu 11.10(32位)下载Android 4.0源码(图文)

继续阅读
企鹅博客
  • 本文由 发表于 2020年8月31日21:53:28
  • 转载请务必保留本文链接:https://www.qieseo.com/209394.html
Git 分支的创建、合并、管理和删除 Linux教程

Git 分支的创建、合并、管理和删除

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: