文章正文
Android6.0镜像编译烧机全过程
一、android代码下载
在国内由于某墙的原因,不能直接下载google的代码,幸好清华大学有AOSP的镜像源。
先搬出清华的地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/,与在android网站上下载源码一样,只是地址有点改变。
1、下载 repo 工具:
$mkdir ~/bin $PATH=~/bin:$PATH $curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $chmod a+x ~/bin/repo上面的地址可能下不下来,如果真不能下载,百度一个repo就好了,修改repo文件,设置REPO_URL如下:
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
设置一下名称和邮箱,免得后面要做。
$git config --global user.name "Your Name" $git config --global user.email "you@example.com"2、建立工作目录:
$mkdir android $cd android3、初始化仓库:
$repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r11
这里下载6.0.1.r11分支的代码是因为r11或是r17支持nexus 6p,俺要烧镜像给6P哈哈~ 如果想给google别的机器烧,需要到https://source.android.com/source/build-numbers.html,查看下载相应的分支代码。
4、下载代码$repo sync -c -j4这里要说明的是清华的源只支持4线程下载,多的自动会断掉。
二、代码编译
不得不说现在编译android的代码简单了很多,环境变量都不用设置,原来编2.3的代码的时候碰到各种问题,现在编6.0的很是顺利。
1、安装依赖软件
$sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ libgl1-mesa-dev libxml2-utils xsltproc unzip
如果某个软件没有去掉就好了。
2、安装jdk
$sudo apt-get install openjdk-7-jdk
这里安装这个jdk是必须的,目前android代码只支持这个jdk了。
3、编译
$source ./build/envsetup.sh
这是使用必须使用source,不然后面的lunch命令不能使用。
$lunch aosp_arm-eng $make
后面就是漫长的等待了,我的机器第一次编译大约用了6个小时。
三、烧写镜像
1、下载镜像
首先从https://developers.google.com/android/nexus/images#ryu,下载好对应的镜像,并见解压缩,nexus 6p的内容如下,将自己编译好的文件替换zip里面的内容。
2、进入设备里面的开发者选项,打开允许里面的OEM解锁
3、进入bootloader并解锁
$adb reboot bootloader
等到设备出现bootlader模式运行
$fastboot flashing unlock
如果找不到adb和fastboot命令,可以到源码中make adb fastboot,最后在out/host/linux-x86/bin目录会有生成。
4、运行烧机脚本
$./flash-all.sh
5、从新进入手机bootloader模式,并加锁。
$adb reboot bootloader
等到设备出现bootlader模式运行
$fastboot flashing lock
到此,整个的烧机过程就结束了,如果想编译内核请看下一篇。看看成果
March 17, 2016, 8:09 a.m. 作者:zachary 分类:Android 阅读(2071) 评论(0)
评论: