Ubuntu 下载 & 编译 Android5.1 源码
ustc & tsinghua android src
https://lug.ustc.edu.cn/wiki/mirrors/help/aosp
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
1.安装openjdk-7-jdk
Android 5.1 用到的jdk不再是Oracle 的 jdk ,而是开源的 openjdk,在ubuntu安装好后,使用如下命令安装jdk:
$sudo apt-get install openjdk-7-jdk
安装好后,设置环境变量:
在/etc/profile 文件末尾加上:
- JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
- PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
- export JAVA_HOME
- export PATH
2.安装编译依赖的软件
使用如下命令安装依赖软件:
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- dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
3.配置Cache
使用如下命令配置cache:
sudo apt-get install ccache
source ~/.bashrc
4.下载repo
1)创建repo目录
mkdir ~/bin
PATH=~/bin:$PATH
2)下载repo(官方的repo下载不了,其他的repo大多比较旧,这个时比较新的,我找了很久大哭)
/// tsinghua的现在不可用了: git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
// ustc的也是空内容:curl https://storage-googleapis.lug.ustc.edu.cn/git-repo-downloads/repo > ~/bin/repo
repo download:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
克隆下来后将git-repo中的repo文件拷贝到bin目录
cp git-repo/repo ~/bin/
修改repo文件,设置REPO_URL如下:
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
5.初始化repo
1)创建目录
mkdir ~/aosp
2)初始化repo
cd ~/aosp
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-6.0.1_r22
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-n-preview-1
ps:在初始化时,提示需要email验证,使用如下命令:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
6.替换已有的AOSP源代码的remote
如果你之前已经通过某种途径获得了AOSP的源码,但是你希望以后通过TUNA同步,只需要将.repo/manifest.xml中的
- <remote name="aosp"
- fetch=".."
- review="https://android-review.googlesource.com/" />
改为下面的code即可:
- <remote name="aosp"
- fetch="git://aosp.tuna.tsinghua.edu.cn/android/"
- review="https://android-review.googlesource.com/" />
这个方法也可以用来在同步Cyanogenmod代码的时候从TUNA同步部分代码
7.下载源码
repo sync
ps:这里就是下载源码了,需要的时间比较长,我下行为1M的宽带需要4小时以上
8.源码编译
ps:编译过程比较就,我电脑双核的,使用单线程编译的,时间位12小时左右,如果使用多线程,时间应该会成倍减少
1)设置cache
cd aosp
prebuilts/misc/linux-x86/ccache/ccache -M 50G
2)初始化编译环境
. build/envsetup.sh
3)选择编译目标包
ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的
lunch aosp_arm-eng
4)编译
make
ps: 1.make后面可以更参数:如你的机器时双核,每核双线程的话,使用make -j4,这样速度更快,但编译时使用的内存也更多
2.make失败或停止后,可以使用make -k 继续编译
9.结果展示:
$emulator &
Ref:
Ubuntu14.10 编译 Android5.0 源码:
http://blog.csdn.net/chouretang/article/details/43769839
编译时参考的博文:
1.http://blog.csdn.net/gobitan/article/details/24367439
2.https://wiki.tuna.tsinghua.edu.cn/MirrorUsage/android
Ubuntu 下载 & 编译 Android5.1 源码的更多相关文章
- 编译android5.0源码的
java环境 Android 5.1 用到的jdk不再是Oracle 的 jdk ,而是开源的 openjdk,在ubuntu安装好后,使用如下命令安装jdk: $sudo apt-get insta ...
- 在Ubuntu Server14.04上编译Android6.0源码
此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把An ...
- Android5.1源码Xposed框架编译
介绍 Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作 . 对于Android5.1系统,官方提供 ...
- 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...
- ubuntu13.04下载android4.0.1源码过程
最初我参考的是老罗的博客http://blog.csdn.net/luoshengyang/article/details/6559955 进行下载安装的,但弄着弄着就发现不太对劲了.这里记录下详细过 ...
- 【转】如何在Ubuntu11.10(32位)下编译Android4.0源码(图文)
原文网址:http://blog.csdn.net/flydream0/article/details/7046612 关于如何下载Android4.0的源码请参考我的另一篇文章: http://bl ...
- 【转】编译Android系统源码和内核源码
原文网址:http://blog.csdn.net/jiangwei0910410003/article/details/37988637 好长时间没有写blog了,之所以没有写,主要还是工作上的事, ...
- Ubuntu12.04下载Android4.0.1源码全过程,附若干问题解决[转]
学校里一直在做应用层开发,考虑到日后就业问题,这次决定研究源码和驱动,并进行编译.没想到就下载源码这一步折腾了我整整两天,期间遇到很多问题,哎,记录于此,希望日后再下源码的人不要再走无谓的弯路了.事实 ...
- [2013.7.5新鲜出炉] Ubuntu12.04下载Android4.0.1源码全过程----------------折腾两天,终于下好,附若干问题解决
本文转至 http://blog.csdn.net/yanzi1225627/article/details/9255457 下载源码这一步折腾了我整整两天,期间遇到很多问题,哎,记录于此,希望日后再 ...
随机推荐
- sdutoj 2623 The number of steps
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2623 The number of steps ...
- 大数的乘法(C++)
题目:POJ 2398 Bull Math Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13410 Accepted: ...
- c# 中get和post的方法
用GET发送数据则用REQUEST.QUERYSTRING[''ID'']接收 一.request.aspx 二.request.aspx.cs 三运行效果: 以下是数据发送的途径http://loc ...
- struts2笔记4
1.自定义struts拦截器 应用场景:如果用户登陆后可以访问action中的所有方法,如果用户没有登陆不允许访问action中的方法,并且提示“你没有操作权限” 1)两个页面,一个用户登陆user. ...
- java ftp下载文件
1.使用官方正规的jar commons-net-1.4.1.jar jakarta-oro-2.0.8.jar 注意:使用ftp从windows服务器下载文件和从linux服务器下载文件不一样 2. ...
- 解决secureCRT数据库里没有找到防火墙 '无'问题
中文版的secureCRT由于汉化的问题(把null翻译成无了),导致每次打开都会有个防火墙的错误提示:数据库里没有找到防火墙 '无' 此会话将尝试不通过防火墙进行连接.出现这个错误的原因是在secu ...
- 浙江理工2015.12校赛-F Landlocked
Landlocked Time Limit: 5 Sec Memory Limit: 128 MB Submit: 288 Solved: 39 Description Canada is not a ...
- java并发编程参考资料
1.java编程思想 2.java并发编程实战 3.java并发编程的艺术 4.http://www.infoq.com/cn/author/%E7%A8%8B%E6%99%93%E6%98%8E#文 ...
- python time模块
time模块 (有效时间1970-2038) (1)本地时间 (2)时间戳 (3)延时 time.localtime([secs]) #struct_time time.time() #timesta ...
- 使用IE11抓包,防止在网页跳转时抓包数据被清除的方法
引:最近在研究使用python实现模拟登陆各大网站,在使用IE11进行抓包分析网站登陆的逻辑结构的时候,发现每次在抓包的时候,当网页跳转的时候,抓包数据会被清除,让我很是郁闷,最终在查阅相关资料以及自 ...