Android编译6.0系统源码(vmware)完美爬坑

一、环境搭建

1、系统:Ubuntu 16.04.6 LTS (Xenial Xerus) amd64

推荐阿里镜像站下载,速度比ubuntu官网快

地址:https://developer.aliyun.com/mirror/

下载完成后开始安装到虚拟机,由于使用VMware Workstation 15 Pro偶尔会出现莫名其妙的问题,比如大小写错乱,鼠标滚轮卡顿等,本文使用的是 VMware Workstation 12 Pro 12.5.4 build-5192485 版本

步骤:

新建虚拟机选择(典型) --> 稍后安装系统 --> Linux( Ubuntu 64位 ) -->选择虚拟机保存位置

--> 磁盘分配推荐100G左右(储存为单个文件) --> 自定义硬件 --> 完成 --> 开机


ubuntu 安装取消勾选安装时下载更新会安装的快些,然后一直下一步,清除磁盘那一步可能会慢些,但并不是卡死了,而是正在格式化磁盘。



安装到正在下载文件的时候可以直接点击skip跳过下载继续安装,安装完成重启。

安装界面点的重启按钮会卡在重启界面里,黑屏。这里需要手动重启虚拟机,之后就等待重启到登录界面

登录成功后是这样子的。屏幕显示的非常小,设置里调整分辨率无果,全部选项都是Unknown Display,可能是由于没安装vmware tools的原因造成的吧。

这里借鉴下别人的解决方式:https://blog.csdn.net/xuguokun1986/article/details/52072575

可以使用xrandr命令调节分辨率

终端命令:

ctrl+t

xrandr

出现如下界面,带*号的即使当前的分辨率

终端命令:

xrandr -s 1440x900

即可设置分辨率为1440x900 (x是英文字母小写),此命令只是作为临时设置,重启后会变回原来的设置

如果想永久设置成选定分辨率则需要重新输入命令

终端:

xrandr --output Virtual1 --mode 1440x900

不知道是不是VMware Workstation 12 虚拟机管理工具的问题还是系统本身的问题,在vm12上

xrandr --output Virtual1 --mode 1440x900 命令在重启后还是一样会变回原来的分辨率,或许更高版本的不会出现这样的情况,在此也不做过多的试验了,重点只要能解决问题,稳定运行就ok

分辨率永久修改,并跟随虚拟机窗口大小自动调整,在vm12 里需要安装 vmware tools

点击虚拟机 --> 安装vmware Tools

此时系统自动装在vmware tools光盘镜像。进入光盘如果没有显示出光盘内容,需要弹出光盘,再次点击安装vmware Tools装载

右键vmware Tools-xxx.tar.gz 提取到指定文件夹内

本文解压到Home路径里,进入解压目录,右键鼠标选择在终端打开,终端自动切换到本目录

手动安装,需要手动确认,一路回车

终端命令:

sudo -s //管理员权限

./vmare-install.pl

全自动安装命令

终端命令:

./vmare-install.pl -d

安装成功,出现如下界面:


2、open jdk 安装

Ubuntu16.04的软件源已经默认没有openjdk1.7了,所以要自己手动添加仓库:

终端命令:

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

sudo apt-get update

sudo apt-get install openjdk-7-jdk

由于jdk1.7的安装源是国外的,敲下回车开始漫长的等待....安装完成后环境变量是自动设置的

检查是否安装并设置成功

终端命令:

java -version

如果配置正确验证如下图为成功

3、更换软件源

爬坑之际,各种百度,google,试过清华源,中科大,阿里源 等千篇一律的修改 sources.list 文件,其实都并没有什么卵用,都在最后安装依赖的时候各种报错,各种依赖问题(只是对于本版本来说,其他版本不知道)

最简单的方法,在系统设置里选择软件源,而不是手动修改文件去设置,对于本篇所需的依赖,只有华为源成功安装

选择完关闭,重新载入列表,相当于 : sudo apt-get update ,速度也是杠杠的

4、安装依赖

爬坑2天,最终选择华为源才得以顺利安装

一个一个装

终端命令:

sudo -s

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 g++-multilib

sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386

sudo apt-get install dpkg-dev libsdl1.2-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 libgl1-mesa-dev libxml2-utils xsltproc unzip m4

在此奉上已安装好环境vmware镜像,珍爱生命,少走弯路,ctrl多锻炼

链接:https://pan.baidu.com/s/1Ttxv3BvhaTOc9Cpfb3rDEQ 提取码:ajym

5、源码下载

最简单的因属于网盘下载吧

链接:https://pan.baidu.com/s/1FP2Lfcizi2WHbTCFV9HrMg 提取码:r9li

当然也是可以repo同步,祥见文章末尾推荐参考

因为虚拟机系统已经安装了vmware tools,所以下载下来的源码压缩包可以直接复制粘贴到虚拟机里,并解压

解压目录不要有中文,中文目录可能会出现莫名其妙的问题

二、编译

进入源码根目录

修改文件 /art/build/Android.common_build.mk

2个true都改为 false

见下图修改后

正式开始编译:

在 .bashrc文件末尾添加:export USE_CCACHE = 1

终端命令:

echo export USE_CCACHE=1 >> ~/.bashrc

为了提高编译效率,设置编译器高速缓存:

终端命令:

prebuilts/misc/linux-x86/ccache/ccache -M 50G

导入编译脚本

终端命令:

source build/envsetup.sh

lunch

输入序号选择编译目标

开始编译,执行make -j8, 8为同时编译的线程数,一般google推荐这个数字为2倍的cpu个数再加上2,比如4核,就是10。

终端命令:

make -j8

漫长的等待.....

编译完成后输出如下:

终端命令:

emulator    //启动模拟器

至此,成功编译并运行,第一次启动稍微慢点。

三、问题

(1)emulator: WARNING: system partition size adjusted to match image file (1280 MB > 200 MB)

emulator: WARNING: data partition size adjusted to match image file (550 MB > 200 MB)

emulator: ERROR: x86 emulation currently requires hardware acceleration!Please ensure KVM is properly installed and usable.CPU acceleration status: KVM is not installed on this machine (/dev/kvm is missing).

其实注意看也是一眼就能看出什么问题了,CPU未开启虚化造成,可以在创建虚拟机的时候直接勾选

解决方式:

参考资料:

清华大学开源软件镜像站 https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/官方源码下载文档https://source.android.com/setup/downloadingrepo命令参考资料 https://source.android.com/setup/using-repo.html

参考文章

https://blog.csdn.net/lookinthefog/article/details/98677773

https://www.jianshu.com/p/367f0886e62b

https://www.cnblogs.com/zzb-Dream-90Time/p/7236402.html

你可能感兴趣的:(Android编译6.0系统源码(vmware)完美爬坑)