AOSP ON MAKO(在NEXUS 4上刷ANDROID 4.4 源代码包-下载/配置/编译/刷机)



特别感谢google官方文档及AOSP源代码开放

參考链接:

https://source.android.com/source/building-devices.html (官方源代码刷device)

https://developers.google.com/android/nexus/drivers#makokrt16s (硬件驱动包, 如仅仅是执行模拟器则直接安装就可以)

https://developers.google.com/android/nexus/images (官方刷机包-下载image直接刷)



步骤:

1. 下载android 4.4源代码包, 因为GFW原因, 通过谷歌官方站点repo下载源代码比較难, 所以我选择了国内android牛人innost提供的压缩包. (有10G)

  牛人博客: http://blog.csdn.net/innost/article/details/14002899

  115网盘下载: http://115.com/lb/5lbcb7joklq

2. 解压到文件夹, 在这里我解压到 ~/android4.4 (设为ANDROID_HOME)

3. 环境变量设置(编辑~/.bashrc文件,在末尾加入例如以下三行)

   export ANDROID_HOME=~/android4.4

   export PATH=$PATH:${ANDROID_HOME}/out/host/linux-x86/bin

   export ANDROID_PRODUCT_OUT=${ANDROID_HOME}/out/target/product/mako

4. 下载必须的源代码刷手机的驱动文件并配置(一開始我直接lunch选mako, 但最后fastboot -w flashall 时,提示成功, 但手机启动时一直停留在google启动界面上, 后来经多方验证才发现system.image包中少了硬件驱动)

  1) 进 https://developers.google.com/android/nexus/drivers 依据手机型号选相应的驱动包, 我的手机是nexus 4, 源代码包是android 4.4, 于是进入该链接  https://developers.google.com/android/nexus/drivers#makokrt16s

  2) 下载三个驱动包: broadcom-mako-krt16s-f54c9ff9.tgz, lge-mako-krt16s-23ef7d53.tgz, qcom-mako-krt16s-cc4bd932.tgz 

  3) 解压到源代码根文件夹(也就是~/android4.4)

  4) 执行三个解压后的sh文件, 在根文件夹下会多出vendor文件夹, 这就是硬件驱动文件夹

5. 安装编译源代码包所须要的一些依赖包(这中间可能会遇到非常多问题, 依据错误提示google 一一解决).

參考链接: https://source.android.com/source/building-running.html

6. 编译生成adb和fastboot命令: make fastboot adb (adb 用于进入 fastboot刷机模式, fastboot用于刷image进手机. 当然也能够手动进入刷机模式, 此步可跳过)

7. 配置刷机前环境变量并编译生成image

  1) 打开终端, 进入源代码根文件夹

  2) 导入编译android环境变量: source build/envsetup.sh (主要是让终端找到命令位置)

  3) 设置编译缓存大小: prebuilts/misc/linux-x86/ccache/ccache -M 50G

  4) 选择编译终端类型: lunch full_mako-userdebug (注意: 直接lunch 是没有 full_mako-userdebug选项的, 我是依照谷歌官方文档直接执行该命令的)

  5) 编译源代码: make -j16 (依据机器CPU核数选择是16还是8等, 我总共花了28分钟)

8. 正式刷机

  1) 进入刷机模式: adb reboot bootloader

  2) 刷image进手机: fastboot -w flashall (注意: 这里可能会出现waiting for device, 并一直停留在这里, 后来我发现执行该命令须要根用户权限, 于是就su root, 切换到根用户环境下, 同一时候再次配置相关变量后, 再次执行fastboot -w flashall, 命令执行成功, 哈哈...)

以下是日志和截图:

--------------------------------------------

Bootloader Version...: MAKOZ30d

Baseband Version.....: M9615A-CEFWMAZM-2.0.1700.98

Serial Number........: 017cf480db62e55e

--------------------------------------------

checking product...

OKAY [  0.002s]

sending 'boot' (6340 KB)...

OKAY [  0.204s]

writing 'boot'...

OKAY [  0.351s]

sending 'recovery' (6886 KB)...

OKAY [  0.221s]

writing 'recovery'...

OKAY [  0.418s]

erasing 'system'...

OKAY [  0.676s]

sending 'system' (295871 KB)...

OKAY [  9.358s]

writing 'system'...

OKAY [ 19.851s]

erasing 'userdata'...

OKAY [  1.960s]

formatting 'userdata' partition...

Creating filesystem with parameters:

    Size: 6189744128

    Block size: 4096

    Blocks per group: 32768

    Inodes per group: 8048

    Inode size: 256

    Journal blocks: 23612

    Label: 

    Blocks: 1511168

    Block groups: 47

    Reserved block group size: 375

Created filesystem with 11/378256 inodes and 50366/1511168 blocks

sending 'userdata' (98413 KB)...

writing 'userdata'...

OKAY [  8.988s]

erasing 'cache'...

OKAY [  0.051s]

formatting 'cache' partition...

Creating filesystem with parameters:

    Size: 587202560

    Block size: 4096

    Blocks per group: 32768

    Inodes per group: 7168

    Inode size: 256

    Journal blocks: 2240

    Label: 

    Blocks: 143360

    Block groups: 5

    Reserved block group size: 39

Created filesystem with 11/35840 inodes and 4616/143360 blocks

sending 'cache' (10984 KB)...

writing 'cache'...

OKAY [  1.022s]

rebooting...

AOSP ON MAKO(在NEXUS 4上刷ANDROID 4.4 源代码包-下载/配置/编译/刷机)的更多相关文章

  1. MAC环境下 Android P 系统源码下载、编译、导入到AS、Pixel2xl刷机 实战

    一.下载源码 1 . 确保主目录下有一个 bin/ 目录,并且该目录包含在路径中: mkdir ~/bin PATH=~/bin:$PATH 2 . 下载 Repo 工具,并确保它可执行: curl ...

  2. 编译Android内核 For nexus 5 以及绕过Android的反调试

    本文博客链接:http://blog.csdn.net/qq1084283172/article/details/54880488 前面的博客中已经记录了Nexus 5手机的Android 4.4.4 ...

  3. 编译Android 4.4.4 r1的源码刷Nexus 5手机详细教程

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/54562606 网上关于编译Android源码的教程已经很多了,但是讲怎么编译And ...

  4. Android 7.1.1系统源码下载、编译、刷机-Nexus 6实战

    想成为一位合格的Android程序员或者一位Android高级工程师是十分有必要知道Android的框架层的工作原理,要知道其工作原理那么就需要阅读Android的源代码. 想要阅读Android的源 ...

  5. Windows下Nexus 5的Android 5.0以上版本官方ROM的刷机教程

    博客链接:http://blog.csdn.net/qq1084283172/article/details/52334452 折腾Android逆向的时候,经常需要给Nexus 5刷机.最近给Nex ...

  6. macOS(Sierra 10.12)上Android源码(AOSP)的下载、编译与导入到Android Studio

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  7. NEXUS 上传到私仓的SNAPSHOT 包下载不下来

    使用NEXUS 上传 SNAPSHOT版本的jar包到服务器上,但是下载不下来,报错提示:Dependency ... not found 后来百度到一句话: Maven内置的插件远程仓库配置,关闭了 ...

  8. Maven私服(Nexus)资源上传下载

    1.settings.xml (向私服上传资源需要) <!-- Snapshot包的管理/Releases包的管理/第三方包管理--> <server> <id>l ...

  9. 【树莓派】树莓派上刷android系统

    这位前辈之前做了基于android2.3版本刷入树莓派的事情,http://blog.csdn.net/lichwei1983/article/details/44082669 1.android 镜 ...

随机推荐

  1. Unity3D - UGUI的手动搭建

    了解UGUI组件的搭建方式,有助于搭建我们自己的UI界面. Text 文本 text 是UGUI中的基本控件,在Hierarchyi面板创建一个空物体 - 给这个空物体添加一个Text组件即可实现与t ...

  2. oracle报错处理

    oracle安装过程报错 报错一:Error in invoking target 'install' of makefile '/u01/app/oracle/product/11.2.0/dbho ...

  3. 《分布式对象存储》作者手把手教你写 GO 语言单元测试!

    第一部分:如何写Go语言单元测试 Go语言内建了单元测试(Unit Test)框架.这是为了从语言层面规范写UT的方式. Go语言的命名规则会将以_test.go结尾的go文件视作单元测试代码. 当我 ...

  4. bzoj 2801 [Poi2012]Minimalist Security 设一个,求出所有

    题目大意 给出一个N个顶点.M条边的无向图,边(u,v)有权值w(u,v),顶点i也有权值p(i), 并且对于每条边(u,v)都满足p(u)+p(v)>=w(u,v). 现在要将顶点i的权值减去 ...

  5. 树上的路径 BZOJ 3784

    树上的路径 [问题描述] 给定一个N个结点的树,结点用正整数1..N编号.每条边有一个正整数权值.用d(a,b)表示从结点a到结点b路边上经过边的权值.其中要求a<b.将这n*(n-1)/2个距 ...

  6. 用Linux完成Oracle自动物理备份

    https://blog.csdn.net/24024846/article/details/115292

  7. Cryptography I 学习笔记 --- 流密码

    1. 对于一次性密码本(one time pad),没有唯密文攻击(cypher text only attack),也就是说如果攻击者只能拿到密文,他什么也做不了 2. 完美密码:密钥长度大于密文长 ...

  8. 微信小程序 之wx.getLocation()获取地理信息中的小坑

    提到wx.getLocation()这个方法,大家都知道是获取地理信息的 今天用这个方法获取定位经纬度后传给后台取得附近markers标记集合, 在开发工具上都正常有标记出现 ,但是在手机测试时,死活 ...

  9. (4)ASP.NET HttpRequest 类

    HttpRequest 类的主要作用是读取客户端在 Web 请求期间发送的 HTTP 值. https://msdn.microsoft.com/zh-cn/library/system.web.ht ...

  10. Akka简介与Actor模型

    Akka是一个构建在JVM上,基于Actor模型的的并发框架,为构建伸缩性强,有弹性的响应式并发应用提高更好的平台.本文主要是个人对Akka的学习和应用中的一些理解. Actor模型 Akka的核心就 ...