以下教程基于mt6737模块;
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字样,如果失败,也不要着急,仔细检查上面的步骤,找度娘,或者留言,都可以,大家一起探讨;
下一篇我们来讲一讲硬件相关,模块购买后,还需要自己搭一下电路,如果你不会焊接,不懂硬件,那你不是一个合格的驱动工程师,做底层开发,最起码的焊接,原理图,是要学会的;