系统: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下载和编译的更多相关文章

  1. android源码环境下用mmm/mm编译模块,输出编译log到文件的方法

    android源码环境下用mmm/mm编译模块,输出编译log到文件的方法 1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/ ...

  2. Android源码分析(二)-----如何编译修改后的framework资源文件

    一 : 编译framework资源文件 如果修改android framework资源文件,需要先编译资源文件,然后再编译framework才可以正常引用, 进入项目目录 cd work/source ...

  3. 查看android源码,windows环境下载源码

    查看源码 参考: http://blog.csdn.net/janronehoo/article/details/8560304 步骤: 添加chrome插件 Android SDK Search 进 ...

  4. 编译android源码官方教程(3)下载代码

    https://source.android.com/source/downloading.html Downloading the Source IN THIS DOCUMENT Installin ...

  5. Android源码是这样搞到的(图解)

    Android学习到一定程度,就一定要多读代码多思考,Android源码就是很好的学习材料,本文就是把Android的源码下载下来.我们知道Android的源码是用Git这个分布式版本号控制工具管理的 ...

  6. Android 源码编译之旅

    目录 前言 背景 安装软件 正文 Mac 分区 移动硬盘分区 Repo 下载源码 编译 源码导入 Android Studio 查看 碰到的问题 Could not find a supported ...

  7. Android源码分析(四)-----Android源码编译及刷机步骤

    一 : 获取源码: 每个公司服务器地址不同,以如下源码地址为例: http://10.1.14.6/android/Qualcomm/msm89xx/branches/msm89xx svn环境执行: ...

  8. 编译android源码m、mm、mmm命令的使用

    http://blog.163.com/zz_forward/blog/static/212898222201442873435471/ gcc怎么查看它的默认include路径和库的路径呢? //- ...

  9. Android源码分析(六)-----蓝牙Bluetooth源码目录分析

    一 :Bluetooth 的设置应用 packages\apps\Settings\src\com\android\settings\bluetooth* 蓝牙设置应用及设置参数,蓝牙状态,蓝牙设备等 ...

随机推荐

  1. Visual Studio Code 工具使用教程

    软件下载这里就不用讲了,安装完之后: 1.切换中文: 选择扩展 搜索“Language”,在下列选项选择 Chinese (Simplified) Language Pack for Visual S ...

  2. Python简要标准库(2)

    集合 堆 和 双端队列 1.集合 创建集合 s = set(range(10)) 和字典一样,集合元素的顺序是随意的,因此不能以元素的顺序作为依据编程 集合支持的运算 a = set([1,2,3]) ...

  3. 【movable-area、movable-view】 可移动区域组件说明

    movable-area.movable-view 可移动区域组件 原型: <movable-area scale-area="[Boolean]"> <mova ...

  4. java实现遍历一个字符串的每一个字母(总结)

    基础:牢记字符串操作的各种方法: ​​​ ​ String s = "aaaljlfeakdsflkjsadjaefdsafhaasdasd"; // 出现次数 int num = ...

  5. 【zabbix 监控】第一章 zabbix的安装配置

    安装前准备 一.下载网络yum源: http://mirrors.163.com/.help/centos.html https://opsx.alibaba.com/mirror 1.首先备份/et ...

  6. es6从零学习(三):Class的基本用法

    es6从零学习(三):Class的基本用法 一:定义一个类 //定义类 class Point { constructor(x, y) { this.x = x; this.y = y; } toSt ...

  7. Tarball——以源代码的方式安装软件

    一.Tarball文件 形成:将软件的所有源码文件先以tar打包,然后再以压缩技术(如gzip)来压缩.因为源码文件很大. 描述:一个软件包,解压缩后得到源代码文件.检测程序文件.软件的简易说明与安装 ...

  8. maven把项目打包成jar包后找不到velocity模板的bug

    使用springmvc 开发时候要实现发送velcotiy模板邮件,在配置正常后,在本地测试正常后,使用maven打包成jar包后,报以下错误, Caused by: org.apache.veloc ...

  9. Mysql 工作原理

    刚开始接触一个新的事物的时候,我觉得很有必要从其工作原理入手,弄清楚这个东西的来龙去脉,为接下来的继续深入学习做好铺垫,掌握好其原理有助于我们从整体上来把握这个东西,并且帮助我们在排错过程中理清思路. ...

  10. iOS开发改变字符串中指定字符颜色,大小等等

    NSString *strJTGZ = [NSString stringWithFormat:@"交通管制%d处 ",[jtgz intValue]]; NSMutableAttr ...