美文网首页
Android编译6.0系统源码(vmware)完美爬坑

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

作者: easyworkshop | 来源:发表于2020-06-08 19:58 被阅读0次

    一、环境搭建

    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)完美爬坑

          本文链接:https://www.haomeiwen.com/subject/hrrdtktx.html