android系统开发3-编译android系统

  • Post author:
  • Post category:其他


以下教程基于mt6737模块;

购买链接:

https://item.taobao.com/item.htm?spm=a230r.1.14.107.3b74243a8ctKlK&id=611065312082&ns=1&abbucket=3#detail

qq群: 1092105957

通过之前的两篇文章,我们的模块成功跑起来了,这一篇介绍如何编译自己的android系统;

我们分一下几步来完成:

  • Android源码开发环境搭建;
  • Android源码编译;
  • Android源码烧写;

1 安装虚拟机和ubuntu

1.1 参考文档

可参考资料包中的“Android_Build_Environment_on_Ubuntu_12.04_64-bit_Installation_SOP.pdf”

1.2 下载并安装VMware

我们首先需要一个虚拟机,来安装我们的linux系统,不管是用VMWare还是VirtualBox都可以,我们尽量按照说明文档来操作;

笔者这里用的是VMware,从网上下载一个最新版本就可以,安装好后运行VMware,如下图:

接下来在VMware中安装Ubuntu系统,笔者使用的是Ubuntu15.10,现在比较新的版本已经是ubuntu18,不同的版本会有些许差异,搭建编译环境可能会遇到不同问题,建议使用和笔者同样的版本;

这里用ubuntu15.10 桌面版来做说明,因为网上都可以找到,笔者没有放到资料包中;

接下来我们在虚拟机中安装ubuntu;

上图点击”完成“,然后去喝杯咖啡,等待一段时间之后,我们的linux系统就在虚拟机中安装好了,启动虚拟机,如下如,输入在安装时设置的账号和密码:

2 安装编译android所需的依赖库

2.1 参考文档

“Android_Build_Environment_on_Ubuntu_12.04_64-bit_Installation_SOP.pdf”

2.2  更新软件源

你可能会问,什么是软件源,其实就是一堆服务器地址,差不多相当于linux的应用商店;

这里我们先切换说下如何切换root用户,在后续的操作中,笔者建议都是用root用户,避免出现一些权限问题;使用如下命令,输入密码,但在root用户操作一定要小心,万一删了系统文件,那麻烦就大了;

切换到root用户后,打开sources.list进行编辑;

打开sources.lis后,删除原来的所有内容,用下面的内容代替:



deb-src http://mirror.neu.edu.cn/ubuntu/ xenial main restricted #Added by software-properties



deb http://mirror.neu.edu.cn/ubuntu/ xenial main restricted



deb-src http://mirror.neu.edu.cn/ubuntu/ xenial restricted multiverse universe #Added by software-properties



deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted



deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties



deb http://mirror.neu.edu.cn/ubuntu/ xenial universe



deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates universe



deb http://mirror.neu.edu.cn/ubuntu/ xenial multiverse



deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates multiverse



deb http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse



deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties



deb http://archive.canonical.com/ubuntu xenial partner



deb-src http://archive.canonical.com/ubuntu xenial partner



deb http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted



deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties



deb http://mirror.neu.edu.cn/ubuntu/ xenial-security universe



deb http://mirror.neu.edu.cn/ubuntu/ xenial-security multiverse



deb http://us.archive.ubuntu.com/ubuntu trusty main universe

保存后,执行update命令,更新软件源,会花点时间下载资源,如下图,注意要保证网络通畅,不然没有办法更新软件源:

2.3 安装依赖库

笔者将需要的依赖库都做了列举,一条条执行就可以,如果有个别安装失败,别担心,失败是成功他娘,遇到具体问题去网上搜一下,这种问题一般和软件源及系统版本有关,网上一般能找到答案,如果还是有问题,可以留言,博主也可以看一看;

下面的依赖库不要漏掉,不然后面编译系统还是会出问题;

sudo apt-get update

sudo apt-get install Git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev

sudo apt-get install lib32z1 lib32ncurses5

sudo apt-get install  x11proto-core-dev libx11-dev lib32z1-dev

apt-get install libgl1-mesa-dev

apt-get install g++-multilib

apt-get install mingw32

apt-get install tofrodos Python-markdown libxml2-utils

apt-get install lib32readline-gplv2-dev


##jdk安装,这里要使用jdk1.7版本,不能使用高版本

sudo add-apt-repository ppa:openjdk-r/ppa

sudo apt-get update

sudo apt-get install openjdk-7-jdk

sudo update-alternatives –config java

sudo update-alternatives –config javac

3 android源码编译

3.1 参考文档

见资料包中的,“Driver_All_in_One_V1.0_MT6735_6753.pdf”

3.2 android源码解压

Android源码比较庞大,已经打包放到网盘,因为百度网盘地址容易失效,请联系卖家询问最新下载地址;

源码下载后,放到虚拟机中,在虚拟机用使用快捷键 ctrl+alt+t,打开teminal,然后cd到源码目录,如下图,笔者源码位置在/home/william下,

则执行命令

cd /home/william

然后执行解压命令,由于android源码分多个包压缩,解压时使用如下命令,这里要注意,资料包的源码可能会更新,下面解压文件的名称也会变,执行出错时可以对比文件名是否一致;

cat android6_6735_M_161114.tar.bz2.a* | tar -jx

如果没有出错,等待一会就可以看到android源码了;

进入android源码目录,执行 ls命令,居然有这么多文件,欢迎打开android的大门!!!!!

3.3 编译android

资料包中给出的android源码是适配好的,执行下面几个命令,就可以完成编译;

  • Step1 进入源码目录 cd
  • Step 2 初始化环境变量 source source build/envsetup.sh,输出如下

  • Step3 用lunch命令列出所有工程,如下
  • Step4 因为我们的模块支持全网通,这里选择工程40(eng是开发版本),直接输入数字40即可,如下,如果输入错误也没有关系,ctrl + C退出再执行lunch命令就可以;
  • Step5 执行make操作,如果你用的是自己笔记本编译,那恭喜你,可能需要一天时间;

如果前面的步骤没有问题,那经过一段时间的等待,就会看到success字样,如果失败,也不要着急,仔细检查上面的步骤,找度娘,或者留言,都可以,大家一起探讨;

下一篇我们来讲一讲硬件相关,模块购买后,还需要自己搭一下电路,如果你不会焊接,不懂硬件,那你不是一个合格的驱动工程师,做底层开发,最起码的焊接,原理图,是要学会的;



版权声明:本文为william198757原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。