Android6.0源码下载编译刷入真机
编译环境是Ubuntu12.04。手机nexus 5,编译安卓6.0.1源码并烧录到真机。
源码用的是科大的镜像:http://mirrors.ustc.edu.cn/aosp-monthly/,下载完之后会有一个aosp-latest.tar文件,然后新建一个仓库,把它解压到你的仓库里。这里下载会需要点时间。
然后repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b 你的版本,比如现在我们编译6.0.1的版本,就直接repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.1_r1
完了之后执行 repo sync ,同步更新你的代码,这里会花费点时间。
注:这里有些人如果第一次用repo的话,得先要安装repo。然后才能用
repo sync 完了之后,会在你的仓库里面出现很多文件。如下图,刚开始第一次编译的时候是没有out生成的。

因为还要刷入真机,所以我们还需要驱动,你们可以看自己用的是什么机型,然后去官网找相对应的驱动,
驱动网址 https://developers.google.com/android/nexus/drivers#hammerheadmra58k
我这里用的是Nexus5,所以我自己下了一个,如果官网进不了的话,我这里有一个Nexus5的驱动,链接:https://pan.baidu.com/s/1kx4J8pf2CV3yH54tgwEXUA 密码:s9n6
里面有三个.sh文件,把它们放在你们项目的根目录,然后分别执行.sh文件,执行之后,它会有说明,一直按回车,这时要注意,在执行每个文件最后的时候,它会提示让你输入 I ACCEPT。输入完了之后,就会在当前目录生成vendor文件。
这时所有东西都就绪了,下一步就可以开始编译源码。
source build/envsetup.sh
执行lunch命令,选择你要编译的手机的版本,我这里nexus 5选择hammerhead。如下图所示


选择完之后,然后执行以下make clobber,清除无用的编译。
然后执行prebuilts/misc/linux-x86/ccache/ccache -M 50G设置缓存大小。
通常是根据你机器cup的核心来确定:core*2,即当前cpu的核心的2倍.
查看核心数量
grep 'core id' /proc/cpuinfo | sort -u | wc -l
查看线程数
grep 'processor' /proc/cpuinfo | sort -u | wc -l
比如,我现在的笔记本是双核四线程的,因此根据公式,最快速的编译可以make -j8.
然后就直接等编译了。
PS:在编译的过程中有可能会遇到以下的失败:
out/host/linux-x86/bin/jack-admin: 行 37: SETTING_VERSION: 为绑定变量
make: *** [out/host/linux-x86/framework/jack.jar] 错误 1
make: *** 正在删除文件“out/host/linux-x86/framework/jack.jar”
修改方法:在./prebuilts/sdk/tools/jack-admin里面SETTING添加SETTING_VERSION=2
在“SETTING_VERSION -lt 2”改为“SETTING_VERSION -eq 2”。然后重新编译即可。
大概编译2个多小时,就编译成功了。生成的镜像文件在out/target/product/文件下面。
这时候可以烧录到真机了。把调试模式打开,然后接上USB调试。
输入一个命令提示符:adb reboot bootloader。
然后手机屏幕显示 等待bootloader界面在屏幕上出现: fastboot oem unlock
接着一个unlock bootloader的选择确认页面会出现。用音量来选择到“YES,”,用电源键来确定。
这时你手机上的所有数据都将被抹去,LOCK STATE将变成unlocked。不应该超过一两分钟。
重新开机后的画面下面出现了一个打开的锁,以后刷机都会在解锁状态下了。

然后进入到你刚刚的那个目录下,里面有.img镜像文件。通过fastboot刷入即可,首先你先看看你的fastboot 能不能识别到设备,输入fastboot devices
如果出现 no permissions fastboot ,就直接进入到out/host/linux-x86/bin 下面输入以下的命令:
sudo chown root:root fastboot
sudo chmod +s fastboot
然后再重新看下设备是否能识别到,输入fastboot devices
如果识别到了,再进入到镜像文件img那个文件里面执行以下命令进行烧录。
fastboot flash boot boot.img
fastboot flash cache cache.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot reboot
最后一条命令是重启命令,等大约两分钟,就会出现


至此,源码编译烧录真机完成。
Android6.0源码下载编译刷入真机的更多相关文章
- 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
分类: Android 系统开发(5) 作者同类文章X 版权声明:本文为博主原创文章 ...
- 在Ubuntu Server14.04上编译Android6.0源码
此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把An ...
- Android6.0 源码修改之 Contacts应用
一.Contacts应用的主界面和联系人详情界面增加顶部菜单添加退出按钮 通过Hierarchy View 工具可以发现 主界面对应的类为 PeopleActivity 联系人详情界面对应的类为 Qu ...
- Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮
前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar 在某些特殊定制的版本中要求 ...
- linux2.4.0源码下载地址(配合毛德操情景分析)
https://www.kernel.org/pub/linux/kernel/v2.4/
- 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...
- Docker编译Android6.0源码
docker环境配置 更正时区时间 # 查看当前时间 $ date # 修改当前时间 $ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ech ...
- Ubuntu16.04下编译android6.0源码
http://blog.csdn.net/cnliwy/article/details/52189349 作为一名合格的android开发人员,怎么能不会编译android源码呢!一定要来一次说编译就 ...
- Android 11 源码下载+编译教程
下载AOSP源码 这里我使用的是外国语大学的镜像执行的下载,Mac系统的话,一定要在区分大小姐的磁盘下执行 repo init -u https://mirrors.bfsu.edu.cn/git/A ...
随机推荐
- Testing - 软件测试知识梳理 - 基础概念
测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计.实施.维护的的整个生命周期过程. 仅仅发现Bug是测试的初步,而分析出根本原因推动问题的解决,却要有很深的功底. 不同的测试岗位从事不同的 ...
- 【不遮遮掩掩】Github上传本地代码以及常见问题解决方案
2019.20.18更新: 把完整命令打一遍吧,不然看完太累了不是 //初始化文件夹 git init //初始化目录,把基本文件下载下来,如ignore文件 git pull --rebase or ...
- 必须熟练的基础linux命令
推荐:命令大全 http://man.linuxde.net/ 重要的几个热键[Tab],[ctrl]-c, [ctrl]-d [Tab]按键---具有『命令补全』不『档案补齐』的功能 [Ctrl]- ...
- 14-使用glusterfs做持久化存储
使用glusterfs做持久化存储 我们复用kubernetes的三台主机做glusterfs存储. 以下步骤参考自:https://www.xf80.com/2017/04/21/kubernete ...
- Java 架构师+高并发+性能优化+Spring boot大型分布式项目实战
视频课程内容包含: 高级 Java 架构师包含:Spring boot.Spring cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.Zer ...
- jQuery事件委托
jQuery事件委托 <ul id="ulBox"> <li data-id="1"></li> <li data-i ...
- Ubuntu下安装程序的三种方法(转)
引言 在Ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. 一.apt-get方法 ...
- JConsole观察分析Java程序的运行状态
Java 自带性能监控工具:监视和管理控制台 jconsole,它可以提供 Java 某个进程的内存.线程.类加载.jvm 概要以及 MBean 等的实时信息. 通过Java SE Developme ...
- Rsync文件同步工具
前段时间因公司需求,需要把备份的文件进行同步保存,后面就想到了我们大家都最熟悉的文件同步工作Rsync,于是就捣鼓了一下午时间,然后总结了下大概过程和参数详情. 首先了解了下rsync同步的大致原理: ...
- 【转】ASP.NET Core MVC 配置全局路由前缀
本文地址:http://www.cnblogs.com/savorboard/p/dontnet-IApplicationModelConvention.html作者博客:Savorboard 前言 ...