下载、编译官方Android 4.1.2 源码

本文详细介绍了如何搭建编译环境,包括查看和安装必要的软件版本,解决下载源码时遇到的问题,以及如何配置ccache以提升编译速度。在下载源码过程中,作者分享了遇到的挑战和解决方案,最终成功编译Android 4.1.2源码的经验。
摘要由CSDN通过智能技术生成


(一)、搭建编译环境



1. 查看linux编译环境软件版本

1.1 python版本
$ python -V


1.2 make版本
$ make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

 这个程序创建为 x86_64-pc-linux-gnu


1.4 GIT

上面3个都是系统自带的,git没有随系统安装。安装命令 sudo apt-get intall git



2 安装JDK

安装与配置,详见


查看版本

$ java -version

java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)




3. 安装需求包


$ sudo apt-get install git-core 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 openjdk-6-jdk 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
直接copy过来代码,在命令行中执行,总是不能按预期的那样当成一条命令执行,干脆直接把文档的布局和内容都copy过来

如果出现错误:

在处理时有错误发生:
 libc6-dev:i386
E: Sub-process /usr/bin/dpkg returned an error code (1)

执行以下命令
sudo apt-get -f install


4. 配置USB访问    详见


5.  配置ccahe

用于提高编译速度,也可以不安装



(二)、下载4.1.2源码



创建所需目录

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


一、下载repo工具,需使用代理(我使用的是goagent


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

白天不行,晚上尽然就可以正常下载 。。。。
curl https://dl-ssl.google.com/dl/googlesource/git-repo 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 20774  100 20774    0     0  20765      0  0:00:01  0:00:01 --:--:-- 32870


二、 配置repo
1. 创建本地保存Android源码目录
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

2. repo初始化
选择下载那个版本的源码,打开以下网址可以看到Branches
先测试以下,如果上面的不行,可以使用下面的(后续命令也得改)

通过以下命令进行初始化,其中最后一个参数是从上一个网址中自己根据相应版本获取的Branches名称
$ repo init -u https://android.googlesource.com/platform/manifest -b  android-4.1.2_r1

需要输入用户名 和 邮箱地址

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r1
.repo/manifests/: discarding 10 commits

Your Name  [YourName]: YourName
Your Email [YourName@YourName]: YourEmailAddress@mail.com

Your identity is: YourName <YourEmailAddress@mail.com>
is this correct [y/N]? y

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white 
  bold     dim      ul       reverse 
Enable color display in this user account (y/N)? y

repo initialized in /home/YourName/WORKING_DIRECTORY



三、 下载源码

可以先设置代理
$ repo sync

温馨提示,可能需要几个小时



* repo配置使用代理
$ export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
$ export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

* 网络设置,通常不需要使用
$ sudo sysctl -w net.ipv4.tcp_window_scaling=0
$ repo sync -j1


* 使用本地镜像

* 检验Git Tags


参考资料
android 官网文档 :   Downloading the Source Tree 



(三)下载Android源码遇到问题



    昨天晚上下载一夜,到今天早上还是没有完全下载完,而且还遇到了问题

From https://android.googlesource.com/platform/prebuilt
 * [new branch]      ics-plus-aosp -> aosp/ics-plus-aosp
   f37f794..f6e5b79  jb-dev     -> aosp/jb-dev
 * [new branch]      jb-mr0-release -> aosp/jb-mr0-release
   f787b1d..1e1589a  jb-release -> aosp/jb-release
 * [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_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]
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值