下载安卓 5.0源代码并烧录到Nexus

来源:互联网 发布:淘宝贷款记录在哪里看 编辑:程序博客网 时间:2024/06/06 01:46

  • 安卓源码编译刷机全教程
    • 下载安卓源码
      • Repo工具的安装
      • 全部下载
      • 部分下载
    • 驱动下载文件
    • 系统编译
    • 刷机

安卓源码编译刷机全教程

作为一个标准的安卓程序猿,不会编译一个自己的安卓系统有点说不过去了,其中的好处不多说了,直接开搞吧!
首先我们得准备原材料:

  • 一台安装了linux系统的电脑
  • 一部nexus手机
  • 数据线
  • 有网络的网线

下载安卓源码

下载安卓源码有两种方式,一种是全部下载,一种是部分下载。全部下载的意思就是把所有版本的安卓源码下载过来,压缩下来大概30g,解压之后80g,如果你硬盘和网速都足够,可以选择全部下载,但是我显然不达标,所以我选择部分下载。不管使用全部下载还是部分下载,我们都可以选择国内的镜像,我这里用的是清华的,国外镜像不仅慢还需要翻墙。

Repo工具的安装

假设我们得工具类的路径放在~/bin下,那么我们这样:

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

完了之后,repo指令就能够使用了。
repo说白了就是对git指令做了一层封装。

全部下载:

想省事一点的建议直接下载压缩包,https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar ,下载完成后记得根据 checksum.txt 的内容校验一下。
由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以我们只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。

使用方法如下:

wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包tar xf aosp-latest.tarcd AOSP   # 解压得到的 AOSP 工程目录# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录repo sync # 正常同步一遍即可得到完整目录# 或 repo sync -l 仅checkout代码

此后,每次只需运行 repo sync 即可保持同步。
因为第一次同步需要下载很大的数据,因此建议选择睡觉前同步。

部分下载

这个就省事一些了,我们新建一个文件夹放要下载的源码,然后我们进入到这个目录,执行初始化:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.0.0_r6

然后在该目录下执行

repo sync

这个时候刷刷刷一大片代码闪过,开始下东西了,网速好的话半个小时就能下完。

到这里安卓源码的下载就完成了,下面我们来开始编译源码镜像。

驱动下载文件

刚刚我们只是下载了源码,但是由于版权问题镜像是需要自己编译的,在google提供的设备驱动页面有我们刷nexus4需要的驱动。我们找到对应Nexus 4 (“mako”)得驱动,总共有三个,对应我们得安卓系统版本号,down下来。

将这三个tgz的包解压之后会有三个shell的脚本。

使用解压指令
比如将/source/kernel.tgz解压到 /source/linux-2.6.29 目录
tar zxvf /source/kernel.tgz /source/ linux-2.6.29

分别运行这三个脚本的话,会生成一个vendor的文件夹,里面有broadcom lge qcom三个子文件夹。
这样的话,把vendor放到android源码的根目录下,参加编译。

系统编译

依次执行:
source build/envsetup.sh
lunch aosp_mako-userdebug
然后make -j12 开始编译。

-j12数字的选用一般根据线程数x2决定,比如我电脑是8核16线程,那就是 make -j32

刷机

在编译完成了之后,进入到out目录下,会有boot.img, userdata.img, system.img
连接手机,安装好驱动后,usb调试连接电脑,使用adb命令重启到fastboot,进入刷机模式:

adb reboot bootloader

进入到fastboot后执行双清

fastboot format cachefastboot format userdata

依次使用

fastboot flash boot boot.imgfastboot flash userdata userdata.imgfastboot flash system system.img

烧机结束后,使用fastboot reboot重启就可以了。

我自己的电脑上是这样的:

adb reboot bootloaderZ:cd Z:\nexus_source\out\target\product\makofastboot format cachefastboot format userdatafastboot flash boot boot.imgfastboot flash userdata userdata.imgfastboot flash system system.imgfastboot reboot

刷机过程中出现的问题:
1.

< waiting for device >sending 'boot' (6350 KB)... OKAYwriting 'boot'... FAILED (remote: not supported in locked device)

说的是我的n4没有解锁,需要先解锁。

百度之,发现一条解锁命令:

Fastboot oem unlock

然后提示解锁,电源键确认后就解锁了,重复上述刷机动作。

2.

sending 'boot' (344149 KB)... OKAYwriting 'boot'... FAILED (remote: size too large)

提示空间不足,需要双清,然后我按照教程刷了第三方recovery

3.
上面上调fastboot命令接的参数不一样,一个是boot,一个是system,一个是userdata,别搞错了

原创粉丝点击