Android开发之Android5.1.1(CM12.1)源码下载及其编译详细流程

由于工作的需要,需要对Android framework层的源代码就行修改。所以需要下载Android的源代码并进行编译。
其实网络上的这种教程也是很多了,本来我也不打算写得,但是老总一直喊我总结一下,所以迫不得已,只好将其整理出来
希望能帮助到其他人,当然如果你已经都是一只开始脱毛的老鸟了,就直接飞过吧!

一、安装VM11+Ubuntu14.04操作系统

好了,现在开始今天我的主要内容了。下载Android源代码之前,我们需要一台Linux操作系统,这儿我选择的是:VM11+Ubuntu14.04
如下所示:
这里写图片描述
安装VM虚拟机和Ubuntu系统,我相信大家都会了吧!不会的话参考一下这篇文字吧:http://jingyan.baidu.com/article/0320e2c1ef9f6c1b87507bf6.html
网上有很多关于配置的说法,这儿我只能说,当然你的机器配置越好肯定对后面的编译速度来说越好。硬盘最好分至少200个G,因为源码很大!解压之后更大!
我主机的配置很渣,主机还是4G的内存,我说了几次电脑太卡,才再给我加了一根4G。哎…
这里写图片描述

希望以上操作都对你来说都是些渣渣!不然你真的不能进行下面的操作了。

下面就是对Ubuntu虚拟机进行一些常规的配置:

1)、获取Ubuntu的ROOT权限

在Ubuntu下打开终端窗口输入以下命令:
sudo passwd root 回车
这里写图片描述
第一次输入Ubuntu启动密码,也就是安装时候输入的密码。
第二次输入你要设置的ROOT密码
第三次输入刚刚设置的ROOT密码
自此 ROOT密码设置完毕
这里写图片描述
验证:输入:su 命令
之后输入刚刚设置的root密码
这是用户名前面出现root及表示获取root权限成功

2)、在Ubuntu中安装VMware Tools

首先点击虚拟机菜单中“安装VMware Tools工具”选项
之后就会在Ubuntu界面上出现VMware Tools的图标,右键打开它出现如下内容:
这里写图片描述
如果没有,重启Ubuntu系统。
将红色框框选中的文件复制到桌面,然后右键选择提取到此处。
之后打开终端,使用root权限登录。
这儿我推荐大家使用win下面的一个思想,就是进入到文件夹中直接右键选择“在终端打开”这样既可直接进入到该目录下
如图:
这里写图片描述
之后获取root权限。
详细操作如下:
这里写图片描述
输入yes既可,之后一路回车
出现如下界面,及表示安装成功。重启Ubuntu既可。从主机向虚拟机中复制小文件。

3)、在Ubuntu中使用共享目录

我现在安装的Ubuntu系统版本为14.04,之前我安装了15.04但是不知道是因为15.04有BUG还是什么,一直看不到共享文件,由于时间问题,我也没有仔细深入去研究了,所以重新安装了14.04系统。
如何设置共享文件夹呢?
如下图:
这里写图片描述
记住选择总是启用。
这时候,我们在Ubuntu终端输入:cd /mnt/hgfs 命令即可。
最后输入:ls 命令,就可以看到你共享的目录文件信息。
自此共享成功。

4 )、在Ubuntu中安装JDK
a.在Windows系统下下载Liunx 版本JDK,我下的是jdk-6u45-linux-x64.bin
b.复制到Ubuntu中
c.手动安装JDK(我安装到了/usr/local/java/jdk1.6.0_45下):
先修改权限 sudo chmod u+x jdk-6u43-linux-i586.bin
安装 sudo -s ./ jdk-6u45-linux-x64.bin
d.配置环境变量
打开profile文件 sudo nano /etc/profile
在文件最下面加入
export JAVA_HOME=/usr/local/bin/jdk1.6.0_45
export CLASSPATH=”.:JAVAHOME/lib:CLASSPATH”
export PATH=”JAVAHOME/:PATH”
e.手动设置系统默认JDK
在终端依次输入命令:
sudo update-alternatives –install /usr/bin/java java /usr/local/java/jdk1.6.0_45/bin/java 300
sudo update-alternatives –install /usr/bin/javac javac /usr/local/ java/jdk1.6.0_45/bin/javac 300
sudo update-alternatives –install /usr/bin/jar jar /usr/local/ java/jdk1.6.0_45/bin/jar 300
sudo update-alternatives –install /usr/bin/javah javah /usr/local/ java/jdk1.6.0_45/bin/javah 300
sudo update-alternatives –install /usr/bin/javap javap /usr/local/ java/jdk1.6.0_45/bin/javap 300
然后执行以下代码选择我们安装的JDK版本:
sudo update-alternatives –config java
f.验证JDK是否安装成功。重启Shell终端,执行“java -version”,若输入以下命令,则说明安装成功:
java version “1.6.0_45”
Java(TM) SE Runtime Environment (build 1.6.0_45-b01)
Java HotSpot(TM) Client VM (build 20.14-b01, mixed mode, sharing)

二、下载Android5.1.1的源代码

如果在上面的操作,你都成功了的话,那恭喜你可以进行下面的操作了。下载Android源代码有些步骤可能需要一些翻墙的处理,当然如何翻,这个你就自己看着办了
为了照顾很多不会翻墙或者像我一样来自大山里面的孩子(穷人家的孩子),这儿我提供一个后面需要用到的:repo文件,下载地址:http://download.csdn.net/detail/poison_h/9468034

重头戏开始了,一定要有耐心,这特么的不是什么技术活,真正的是一个耐心活!
a、第一步打开终端,输入:sudo apt-get update
b、输入:sudo apt-get install git 这一步是安装git工具
c、然后你需要用install命令将下面全部安装到你电脑上(32bit或者64bit都要安装这些):
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev

d、除上述之外,对于64位系统,你需要额外安装这些:
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev

上诉c、d两步安装的时间可能很长,耐心等待吧,这也取决于你的网速!
e、创建目录:
mkdir -p ~/bin
mkdir -p ~/android/system

f、下载repo: curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
如果你没有翻墙工具,你就用我上面提供的吧。直接将repo 放到bin目录里面。然后跳过这步。

g、权限添加:chmod a+x ~/bin/repo
h、设置环境变量:使用root权限,然后输入:vi ~/.profile
将以下添加到里面:
set PATH so it includes user’s private bin if it exists
if [ -d “HOME/bin];thenPATH=HOME/bin:$PATH”
Fi
然后输入:”:q”退出

i、然后初始化以下repo: repo init -u https://github.com/CyanogenMod/android.git -b cm-12.1
后面的cm-12.1即对应Android5.1.1的源码。这儿你可以下载你喜欢版本的源码。反正你高兴就好

j、真正的下载源码:repo sync 这一步完全就是拼网速了,网速不好可能就是一周,因为那个人就是我!
如果你电脑配置好,内存给得多,网速又快。可以使用:-j 4。即开四个线程下载。后面数字随意,你高兴就好!
如果中途报错,自己将错误百度或者google一下,解决了之后再执行一下:repo sync即可。反正我没有遇到。

三、编译Android源代码

希望上面你都能一帆风顺,如果你成功的度过了上面的劫,那么下你还得继续度一个。哈哈。要有耐心哦!

打开终端,输入以下命令:
a、cd ~/android/system/vendor/cm
b、./get-prebuilts
c、使其生效:source build/envsetup.sh
d、下载目标手机的device和kernel源码:breakfast kltechnduo
这一步我要说明一下,由于我是下载CM的Android源码,编译目标机器是三星S5,而三星S5在CM里面的代号是kltechnduo,
所以执行:breakfast kltechnduo命令。
e、这一步需要你将手机连接到电脑,至于如何连接,你百度或者google一下吧,很简单的,不要嫌麻烦就行,
因为这一步需要抽取一些你手机里面的东西:./extract-files.sh
f、croot
g、这一步就开始编译源代码了,这下就取决于你电脑的配置了:brunch kltechnduo

如果以上步骤有报错,百度或google解决一下就行了。当你修改了代码之后,只需要执行:a、b、c、f、g步骤即可!

自此,你就已经成功的学会了如何编译ROM了,是时候装一波B了。如果有什么疑问或者错误,欢迎留言讨论!
如果你觉得帮助了你,请点个赞。谢谢各位大哥大姐大叔大婶了!

展开阅读全文

没有更多推荐了,返回首页