上回书我们说到,Ubuntu系统的安装和配置,既然是Android系统的开发,那我们就要有Android系统,那好,目标很明确,接下来我们就来操作,看看源码是怎么来的
一、Android 源码下载(同步sync)
Android源码的下载,也叫同步,其实吧也不是很复杂,就是下载的东西比较多,所以你要多注意一下
1、安装软件
上文我们说到了git的安装,之前装过就不要装了,但是还是要重点说一下,Android源码是托管在github上,无论是访问国外的还是国内的,源码托管的环境都是git,所以要安装git来管理源码
sudo apt-get install git
以下罗列软件,请挨个的安装完,都是基本需要的,如果遗漏的直接sudo apt-get install 软件名 来安装,部分需要输入y后按回车键进行安装
sudo apt-get install openjdk-8-jdk //jdk 这个不用说了吧
sudo apt-get install python //Repo 是基于 Python 2.x 中的特定功能构建的,与 Python 3 不兼容
sudo apt-get install phablet-tools //git工具包
sudo apt-get install curl //上传和下载数据的工具
sudo apt-get install build-essential //提供编译程序必须软件包的列表信息
sudo apt-get install make //源码编译工具
sudo apt-get install gcc //GNU编译器套件
sudo apt-get install g++
sudo apt-get install libc6-dev //共享库
sudo apt-get install patch //补丁工具
sudo apt-get install texinfo //文档系统
sudo apt-get install libncurses-dev //系统的必备库
sudo apt-get install git-core gnupg //git的工具包,虽然有git了,但是有备无患
sudo apt-get install ncurses-dev //编译内核的时候需要
sudo apt-get install valgrind //内存检查器
2、环境配置
(1)、多的话懒得说,首先创建目录
mkdir ~/bin
(2)、下载repo脚本到本地bin文件夹下
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
(3)、根据实际情况,创建源码存放目录,然后赋予目录的读写权限
mkdir /home/android_aosp/android_9.0 (根据实际情况来新建目录)
chmod 777 /home/android_aosp/android_9.0
cd /home/android_aosp/android_9.0
借用大佬的忠告:在此再强调一下,既然要编译源码,乃至后期的源码编译修改等,都是要在linux下进行的,所以一些基本的常识和命令,还是很希望大家能够去学习或者复习一下
3、同步源码(sync)
以上一系列的操作都是为接下来的源码同步工作做准备,你以为这样就可以了么,那你错了,接下来我继续配置 git的邮箱和用户,如果你没有,那么劳烦你去注册一个,github和码云(Gitee)都可以
git config --global user.name Your Name
git config --global user.email you@example.com
(1)、初始化仓库
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
☆这里重点注意了,如果按照之前的步骤来操作,这个位置一定是请求不到反应的,原因是因为~/bin/repo配置下有一句话需要修改
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改成
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
(2)、repo指定Android版本
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r46
(3)、同步源码,aosp 9.0的源码大概有30多G,漫长等待源码下载的过程中请备好饭,当然也视网络区别,如若失败请检查网络等原因,[虚拟机如果出现两个小时以上都不动的话,请关机后再操作一遍上面的环境配置和源码同步]
repo sync
二、驱动下载(make)
1、下载手机驱动,查看源代码标记和 build版本,用于查看下载适合的驱动版本。
2、从上图可知要下载PQ3A.190801.002的驱动(这里以piexl一代、android9.0.0_r46为例,请按照实际情况下载),查找驱动并下载。
3、将下载的文件解压放在源码根目录,授权执行sh文件,运行后,会提示你查看证书,按Enter键一行行的查看,出现输入提示时,输入 I ACCEPT,解压到了vendor 目录下
./extract-google_devices-sailfish.sh
./extract-qcom-sailfish.sh
三、源码编译(make)
下载完的源码,编译后可能会变成一两百G,所以要准备好磁盘,接下来我们就开始编译了
1、初始化编译环境
source build/envsetup.sh
2、选择编译的目标包,建议和驱动型号一致
lunch (lunch选定的版本按照实际情况来,默认选第一个)
3、接下来就是重要的环节,编译
make -j8 (后面数字和cpu有关,适当调整数字)
4、完成编译标识
#### build completed successfully (01:35:28 (hh:mm:ss)) ####
本节内容就讲到这里,整个编译过程中可能会出现各种错误,请根据错误提示进行相关的排除,下节我们讲samba服务器的配置