编译Android6.0源码并刷机到Nexus 6P中

准备工作:

  1. Nexus 6P真机
  2. Linux系统(建议使用Ubuntu)
    这里需要注意的是不要用window子系统,因为编译andorid需要区分大小的文件系统,而window是不区分大小写的
  3. 科学上网工具
  4. 至少300G的硬盘空间
  5. docker(找了好久也没找到openjdk7,但是docker环境我看了下是有的)

1. 安装git

apt-get install git 
git config --global user.name "Your Name"   
git config --global user.email "Your Gmail@gmail.com"

2. 下载Android6.0源码

首先下载 repo 工具。
参考链接:
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
https://lug.ustc.edu.cn/wiki/mirrors/help/aosp/

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
## 如果上述 URL 不可访问,可以用下面的:
## curl -sSL  'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo

然后建立一个工作目录(名字任意)

mkdir android-6.0.1_r62
cd android-6.0.1_r62

指定Android 版本初始化仓库Android 版本列表
之前有试过android-6.0.0_r11版本,一直卡在开机页面,换了版本就好了

image.png

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.1_r62
## 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
## REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'

新建脚本开始同步(防止出现网络异常可以自动重试)

vim down.sh

输入以下内容保存并退出

#!/bin/bash
PATH=/home/zhd/bin:$PATH # /home/zhd/bin为~/bin对应的绝对路径
echo $PATH


repo sync  -j4
while [ $? = 1 ]; do
        echo “======sync failed, re-sync again======”  
        sleep 3
        repo sync  -j4
done

运行同步脚本,等待一个晚上就好了

sudo ./down.sh

3. 编译Android源码

安装docker
参考:
https://www.runoob.com/docker/ubuntu-docker-install.html
官方教程地址太卡,可以使用上面的链接步骤进行安装

下载openjdk7镜像

由于网上找了很久也没找到openjdk7安装的方法,很多下载链接都已经实效了,所以这里就采用docker的openjdk7镜像进行anroid源码的编译

openjdk镜像链接:
https://registry.hub.docker.com/_/openjdk
选择Oldest进行排序

image.png

找到7u111版本(其他版本没去试过)


image.png

拉取镜像

docker pull openjdk:7u111
image.png

运行镜像

sudo docker run -dit -v /home/zhd/aosp:/tmp/aosp 5dc48a6b75af /bin/bash

将下载好的源码目录挂载到容器tmp/aosp目录中,并以交互模式并后台运行


image.png

安装编译的需要的扩展
安装vim

apt-get update
apt-get install vim

安装https支持

apt-get install -y apt-transport-https
update-ca-certificates -f
apt-get install --reinstall ca-certificates

修改源,提高下载速度
先备份

cp /etc/apt/sources.list /etc/apt/sources.list.bak

选择适合的源
https://mirrors.tuna.tsinghua.edu.cn/help/debian/

查看linux版本

cat /etc/issue
image.png
image.png
image.png

修改源
vim /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ jessie main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ jessie main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ jessie-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ jessie-updates main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security jessie/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security jessie/updates main contrib non-free

更新软件版本信息

apt-get update

如果报证书错误
可以用以下命令解决

touch /etc/apt/apt.conf.d/99verify-peer.conf && echo >>/etc/apt/apt.conf.d/99verify-peer.conf "Acquire { https::Verify-Peer false }"

安装扩展(可能有些扩展会安装失败,可忽略,命令一行一行复制执行)

apt-get install rsync
apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 
apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib 
apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 
apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
apt-get install git-core gnupg flex bison gperf build-essential  
apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib 
apt-get install libc6-dev-i386 
apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev 
apt-get install lib32z-dev ccache
apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

设置环境变量

export USER=$(whoami)  

导入编译Android源码所需的环境变量和其它参数:

source build/envsetup.sh

为了提高编译效率,设置编译器高速缓存:

prebuilts/misc/linux-x86/ccache/ccache -M 50G

运行lunch命令选择编译目标:

lunch

aosp_angler-userdebug ,解释一下,angler是nexus 6p的代号(code name),每个设备对应的代号如下:

image.png

userdebug 是编译类型,含义如下:


image.png

这里选择aosp_angler-userdebug选项
开始编译

make -j8

等待完成就行了

4. 刷机

退出docker容器
进入bootloader或同时按住音量-和电源键直到进入bootloader

adb reboot bootloader

新建文件夹
~/nexus6p

cd
mkdir nexus6p
cd nexus6p

下载工厂镜像
https://developers.google.com/android/images#angler

image.png

将下载好的工厂镜像进行解压,进入目录

cd ~/nexus6p/angler-mtc20f-factory-4355fe06/angler-mtc20f
./flash-all.sh

进入源码编译好的目录

cd ~/aosp/android-6.0.1_r62_MTC20F/out/target/product/angler

fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot flash cache cache.img
fastboot reboot

开机可能会出现


image.png

点ok就行不用管

文章参考:https://blog.csdn.net/chen1234219/article/details/90342071

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容