Ubuntu16.04编译Android6.0源码

本文详细介绍了在openJDK7环境下,编译Android6.0源码的全过程,包括安装必要依赖包、下载及配置硬件驱动、编译源码至最终刷机步骤。适用于希望深入了解Android系统底层或定制ROM的开发者。

准备工作

环境要求:openJDK7其他版本的不行(如何安装自行百度),Android6.0源码,

安装依赖包:
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
在这个安装依赖包的过程中可能会遇到 E: Unable to correct problems, you have held broken pack 这个问题,请参考https://mp.youkuaiyun.com/mdeditor/87823160# 解决。

下载好源码之后,我们要将驱动文件加入源码中。我们可以在https://developers.google.com/android/nexus/drivers#hikey中找到对应设备与源码分支的硬件驱动。此时,上一步中的build码就该派上用场了,我们根据build码来找到对应的驱动程序,我们刚才选择的源码分支所对应的build码是KTU84P,因此,就下载此代号的驱动程序即可。
在这里插入图片描述
下载得到的是三个tgz文件,我们只需依次解压三个文件,得到的是三个shell脚本文件,我们先将其置于源码根目录中。
在这里插入图片描述
依次执行这三个脚本文件,这里要注意,三个脚本文件的作用是生成驱动文件,但是在执行操作前,它会让你阅读相关协议,你必须一直按enter键一行一行往下读,更不能一键摁到底,因为程序在最后会让你输入“I ACCEPT”,如果你一键摁到底,也就是说最后一步也摁enter键的话它就会执行默认操作,即不接受此协议,那生成驱动文件的操作就不会执行。这里有个小窍门,一直摁住enter,注意命令行中闪过的协议项,当读到第八项时可以放慢速度,一下一下的摁enter键了,最后慢慢的到最后一步,输入I ACCEPT即可。这三个文件都是这样的操作流程。上图展示了在执行完脚本文件后生成的驱动文件目录

编译

命令行进入源码目录:

1、初始化编译环境,输入 . build/envsetup.sh
会出现这样的效果。
在这里插入图片描述
2、加载机型,输入lunch命令,会列出不同设备可能编译出的结果。
在这里插入图片描述
在选择好设备之后,系统会生成详细的编译信息,这里我们可以再确认一下源码的分支,build号是否正确。
在这里插入图片描述
然后我们就可以进行编译了,输入make –j12,j后面的参数取决于你电脑处理器的核心数,x=核心数*2,由于我的电脑是6核的,因此我选择12.

在经过将近三个小时的编译后,我们的源码终于编译完成,而此时,在源码根目录中多出了一个out目录,编译的结果就存放在里面。
在这里插入图片描述

刷机

源码编译完成后,我们开始将编译好的系统烧录进手机中。首先,先将我们的Nexus 5连接到电脑上,注意一定要打开USB调试,连接后手机可能会提示电脑要调试这台手机,允许即可。然后,我们令手机进入recovery模式,还是刚才的terminal(在源码根目录下),输入以下命令:

sudo adb reboot bootloader

随后手机就会进入recovery模式。

在这里插入图片描述
然后,我们开始刷机:

fastboot flashall –w 或者 fastboot -w flashall

或者:进入目录 android/out/target/product/shamu
sudo fastboot flash system system.img
sudo fastboot flash userdata userdata.img
sudo fastboot flsah boot boot.img(boot可刷可不刷)

刷机的过程大概在一至两分钟左右,刷机结束后会自动开机。
在这里插入图片描述
刷机成功,我们看到了我们编译好的原生aosp版本的源码。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值