Android源码4.4.4_r1下载和编译
系统:ubuntu 16.04.2 TLS
1.源码下载:
sudo apt-get install curl
curl https://storage.googleapis.com/git-repo-downloads/repo > repo
chmod a+x repo mkdir srcAndroid
cd srcAndroid
git config --global user.name "xunbu7"
git config --global user.email "xunbu7@gmail.com"
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.4_r1
repo sync
选择目标版本源码,参考编译版本标签对照表:
https://source.android.com/source/build-numbers
2.驱动下载:
https://developers.google.com/android/drivers

将下载下来的3个压缩包加压到源码目录,分别执行3个sh文件,输入“I ACCEPT”。可以看到源码目录多了一个vendor目录。删除sh文件即可。
3.环境配置
3.1 jdk环境
4.4.4_r1需要jdk6环境,而标准库不支持旧版本,所以下载方式如下:
Open the terminal and execute below commands one by one. It will install JDk as well as JRE. No need to configure anything. It will take care of everything.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update sudo apt-get install oracle-java6-installer //JDK 6 along with JRE
sudo apt-get install oracle-java7-installer //OR FOR JDK 7
有时候不知道java安装在哪里了,通过whereis java命令不能知道java真实的安装路径,可以通过update-alternatives --config java命令查看
bean@ubuntu :~$ update-alternatives --config java
There is only one alternative in link group java: /usr/lib/jvm/java--oracle/jre/bin/java
Nothing to configure.
或者官网下载到本地后
seven@ThinkPad:~/Downloads$ chmod a+x jdk-6u45-linux-x64.bin
seven@ThinkPad:~/Downloads$ ./jdk-6u45-linux-x64.bin
移动到自定义目录:
seven@ThinkPad:~/Documents/Android$ mv -f ~/Downloads/jdk1..0_45/ .
seven@ThinkPad:~/Documents/Android/jdk1..0_45$ pwd
/home/seven/Documents/Android/jdk1..0_45
修改配置文件:
seven@ThinkPad:~$ vim .bashrc
内容:
export JAVA_HOME=/home/seven/Documents/Android/jdk1..0_45
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib seven@ThinkPad:~$ source .bashrc
seven@ThinkPad:~$ javac -version
javac 1.6.0_45
3.2 安装make
ubuntu16.04自带的make版本过高,无法编译。因此需要将make降至3.82.
下载地址ftp://ftp.gnu.org/gnu/make/
下载后到Downloads下将文件拷到其他目录(home下即可),然后解压
tar -zxvf make3.8.2.tar.gz
解压后进入到make3.8.2的目录下
./configure
make
sudo make install
执行完后在/usr/local/bin中可得到新版本的make,复制到/usr/bin中即可
seven@ThinkPad:/usr/local/bin$ sudo mv make /usr/bin
注:make过程中可能会出现错误,不用理会,只要make install能够成功执行即可。
3.3 安装其他编译环境
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install lib32z-dev ccache
sudo apt-get install unzip m4
4.编译
echo export USE_CCACHE=1 >> ~/.bashrc
prebuilts/misc/linux-x86/ccache/ccache -M 50G
source build/envsetup.sh
lunch aosp_hammerhead-userdebug
//虚拟机中当时必须用sudo su (切换su,root下:否则上面5儿子配置会被虚拟机配置覆盖),后来用真实机不用也ok。
make –j8
5.刷机
源码编译完成后,我们开始将编译好的系统烧录进手机中。首先,先将我们的Nexus 5连接到电脑上,注意一定要打开USB调试,连接后手机可能会提示电脑要调试这台手机,允许即可。然后,我们令手机进入recovery模式,还是刚才的terminal(在源码根目录下),输入以下命令:
seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ ./adb reboot bootloader
seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ sudo ./fastboot devices(用sudo,否则发现不了设备)
[sudo] password for seven:
072ba3800ae5fd9c fastboot
seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ sudo ANDROID_PRODUCT_OUT=/home/seven/srcAndroid/src4.4.4_r1/out/target/product/hammerhead ./fastboot flashall -w(用sudo,否则发现不了设备)
或者也可以一个个img刷入:
、重启进入刷机模式
adb reboot bootloader
、依次刷入其他镜像文件:
fastboot flash recovery recovery.img
fastboot flash boot boot.img
fastboot flash system system.img
、强烈建议双清(注意备份数据):
fastboot flash cache cache.img
fastboot flash userdata userdata.img
、再次重启:
fastboot reboot
Android源码4.4.4_r1下载和编译的更多相关文章
- android源码环境下用mmm/mm编译模块,输出编译log到文件的方法
android源码环境下用mmm/mm编译模块,输出编译log到文件的方法 1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/ ...
- Android源码分析(二)-----如何编译修改后的framework资源文件
一 : 编译framework资源文件 如果修改android framework资源文件,需要先编译资源文件,然后再编译framework才可以正常引用, 进入项目目录 cd work/source ...
- 查看android源码,windows环境下载源码
查看源码 参考: http://blog.csdn.net/janronehoo/article/details/8560304 步骤: 添加chrome插件 Android SDK Search 进 ...
- 编译android源码官方教程(3)下载代码
https://source.android.com/source/downloading.html Downloading the Source IN THIS DOCUMENT Installin ...
- Android源码是这样搞到的(图解)
Android学习到一定程度,就一定要多读代码多思考,Android源码就是很好的学习材料,本文就是把Android的源码下载下来.我们知道Android的源码是用Git这个分布式版本号控制工具管理的 ...
- Android 源码编译之旅
目录 前言 背景 安装软件 正文 Mac 分区 移动硬盘分区 Repo 下载源码 编译 源码导入 Android Studio 查看 碰到的问题 Could not find a supported ...
- Android源码分析(四)-----Android源码编译及刷机步骤
一 : 获取源码: 每个公司服务器地址不同,以如下源码地址为例: http://10.1.14.6/android/Qualcomm/msm89xx/branches/msm89xx svn环境执行: ...
- 编译android源码m、mm、mmm命令的使用
http://blog.163.com/zz_forward/blog/static/212898222201442873435471/ gcc怎么查看它的默认include路径和库的路径呢? //- ...
- Android源码分析(六)-----蓝牙Bluetooth源码目录分析
一 :Bluetooth 的设置应用 packages\apps\Settings\src\com\android\settings\bluetooth* 蓝牙设置应用及设置参数,蓝牙状态,蓝牙设备等 ...
随机推荐
- Git命令使用大全
一前言 最近公司在使用vue和WebAPI前后端分离的项目开发,使用的代码管理工具是git,刚开始使用的时候前端的vue文件还比较好处理,但是后端的C#文件在每一次自己编译之后上传都会和其他小伙伴的代 ...
- 缓存 memcache 小白笔记
W: Memcached是神魔? Q:Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. W:原理图 Q:如下 1浏览器 2 服务器 3 数据库 4 memcac ...
- Centos7下安装mysql服务
yum install -y perl-Module-Install.noarch yum -y install perl perl-devel #命令下载mysql wget http://dev. ...
- php常用方法汇总
xml格式转成array <?php $str='<xml><node><![CDATA[content]]></node></xml> ...
- JavaScript筑基篇(二)->JavaScript数据类型
说明 介绍JavaScript数据类型 目录 前言 参考来源 前置技术要求 JavaScript的6种数据类型 哪6种数据类型 undefined 类型 null 类型 boolean 类型 numb ...
- “Hello World!团队”Alpha发布—视频链接+文案+美工
视频链接:http://v.youku.com/v_show/id_XMzEyNjc2MTAyOA==.html?sharefrom=iphone&sharekey=5378037f8b710 ...
- ZOJ 1711 H-Sum It Up
https://vjudge.net/contest/67836#problem/H Given a specified total t and a list of n integers, find ...
- HDU 2148 Score
http://acm.hdu.edu.cn/showproblem.php?pid=2148 Problem Description 转眼又到了一年的年末,Lele又一次迎来了期末考试.虽然说每年都要 ...
- linux解压zip
用 unzip 的先安装 yum install -y unzip #unzip file.zip -d /root -d指解压路径 ,不写的话默认当前目录
- C# 压缩组件介绍与入门
1.前言 作为吉日嘎拉权限管理系统最早的一批学习版用户,学了不少东西,在群里面也结识了很多朋友,更重要的是闲余时间,大家都发布很多可靠的外包工作.这次也是由于吉日嘎拉发布了一个有关“压缩文件损坏检测” ...