基础环境

1.系统:ubuntu16.04
2.安卓版本: android-8.1.0_r1
3.openjdk: 1.8
4.python版本: 2.7(系统默认)

1.设置ubuntu镜像源

/etc/apt/sources.list追加

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

2.安装依赖库

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

3.安装openjdk8

安装openjdk8(这里安装jdk8)
sudo apt-get install openjdk-8-jdk
卸载jdk:sudo apt-get remove openjdk-8-jdk
卸载jre: sudo apt-get remove openjdk-8-jre-headless
安装openjdk7
sudo add-apt-repository ppa:openjdk-r/ppa  //更新下载链接
sudo apt-get update
sudo apt-get install openjdk-7-jdk

4.下载repo

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
加入环境变量
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

5.下载android源码

1)通过初始化包下载源码
aosp-latest.tar大概110G
wget -c -t 0 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
tar -xvf aosp-latest.tar
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.1.0_r1
repo sync2)传统方式直接下载源码(大约1个多小时,android8.0源码大约60G)
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.1.0_r1
repo sync

6.下载驱动

这里我们下载的是android-8.1.0_r1
版本代号
https://source.android.google.cn/setup/start/build-numbers#source-code-tags-and-builds
找到对应的Build: OPM1.171019.011
执行的设备: Pixel 2 XL、Pixel 2、Pixel XL、Pixel、Pixel C、Nexus 6P、Nexus 5X
驱动地址
https://developers.google.cn/android/drivers
通过OPM1.171019.011和Nexus5x找到对应的驱动将两个驱动放在源码根目录下如: android-8.1.0_r1目录下解压执行,生成Vendor文件夹

7.设置jack服务内存

设置jack服务内存prebuilts/sdk/tools/jack-admin
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx8g"
或者搜索
JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation}"
注:每个版本不一样,主要添加 -Xmx8g

8.编译源码

source build/envsetup.sh
lunch 选择29 aosp_bullhead-userdebug
make -j10  (我的是4核心,建议2*核心+2)

注: 我MAC16G内存,4核 编译大概2个半小时

9.刷机到Nexus5x

设置环境变量/etc/profile
export ANDROID_PRODUCT_OUT=/aosp/android-8.1.0_r1/out/target/product/bullhead
生效
source /etc/profile
进入fastboot刷机模式
adb reboot bootloader
解锁手机(前提是在开发者选项中开启oem解锁)(可选:手机已经解锁,就不需要这步啦)
fastboot flashing unlock
执行刷机(在哪个目录执行均可,因为前面已经设置ANDROID_PRODUCT_OUT环境变量)
fastboot -w flashall
注:out/target/product/bullhead是编译后的img包地址

编译android源码刷机到Nexus5x相关推荐

  1. 对google手机编译android源码刷机

    一.简介 最近因为修改系统源码层某功能的代码,对多个版本的系统源码进行了编译,并刷到手机中.如果是单纯研究Android源码或Android手机系统层的某个功能,以google原生Android手机和 ...

  2. Android 源码刷机版本号、支持设备对照表(AOSP )

    Android 源码刷机版本号.支持设备对照表(AOSP ) Android 官方地址:https://source.android.com/setup/start/build-numbers#sou ...

  3. Android逆向之源码刷机及Root

    前言 作为一个软件逆向分析师,拥有一台干净纯粹的手机,是一件开心事情. 对于拥有Google Nexus系列机器的我, 编译Android源码并刷入机器中,一件振奋人心的事情,我们今天就来带大家一块来 ...

  4. ubuntu 20.04编译Android源码

    一直以来想编译android源码,趁闲编译了下,ubuntu版本:20.04,android源码版本:android-9.0.0_r30.总体还比较顺畅,中间遇到了一些报错,在文中也有记录,详情见下文 ...

  5. 《深入解析Android 虚拟机》——第1章,第1.3节编译Android源码

    本节书摘来自异步社区<深入解析Android 虚拟机>一书中的第1章,第1.3节编译Android源码,作者 钟世礼,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  6. 编译Android源码

    通过参考网上的相关资料,我编译Android源码的步骤如下: 1 我的系统是Ubuntu 8.04 2 系统上必须安装以下工具(摘自网上的资料):    sudo apt-get install bu ...

  7. (转)编译Android源码的全过程

    在网上看到一篇编译android源码的文章,照着做挺行的, 通过参考网上的相关资料,我编译Android源码的步骤如下: * 1 我的系统是Ubuntu 8.04      * 2 系统上必须安装以下 ...

  8. ubuntu 11.10下载和编译Android源码

    ubuntu 11.10下载和编译Android源码 由衷感谢网上的各个博主的文章,给了小弟我莫大的帮助.这里呢,小弟也把自己的经历记录下来,以供大家参考^^.这篇应该算是零基础.从无到有的流程介绍了 ...

  9. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决 参考文章: (1)Ubuntu12.04编译Android ...

最新文章

  1. VOLTE parameter in Attach Request/Accept message
  2. python定义的关键数据类型_Python基本数据类型
  3. Windows 家族的十二种常用密码破解法
  4. 网络工程师面试PK--胜者为王
  5. mysql 枚举_是否推荐使用MySQL的enum类型?
  6. MySQL基本操作命令和数据表高级操作
  7. Mysql 日期、字符串、时间戳互转
  8. Opencv 找轮廓并画出相应的矩形
  9. [Leedcode][JAVA][第55题][跳跃游戏][贪心][动态规划]
  10. 海德堡大学 BMCV 组(Master/Diploma/Bachelor)研究机会,生物医学图像分析方向
  11. CSS 字体风格 font-style属性
  12. 计算机视觉开源代码集合(转载)
  13. 从 VMWare 到阿里神龙,虚拟化技术 40 年演进史
  14. candence 知识积累3
  15. CSS3过渡动画关键帧动画
  16. 数学原理(The Principles of Mathmatics)
  17. seckill配置补发
  18. html盒子里的内容溢出,[经验] HTML页面中子盒子溢出了怎么办
  19. 微信小程序开发语言一般有哪些?
  20. Java 获取对象占用内存大小

热门文章

  1. 齐二TK6916/20/26/32系列数控落地铣镗床简介2
  2. 中庸——粗浅阅读后的感受,在此勉励
  3. 现代程序员 VS. 古典程序员,你属于哪一类?
  4. 64位Slitaz Linux下Glibc 2.20编译式更新安装成功
  5. 分享150个ASP源码,总有一款适合您
  6. 服务器验收性能标准,云服务器 验收
  7. 如何从ZIP文件解压缩文件
  8. LDPC码简介【定义、特点、算法、Tanner】
  9. 微服务项目部署服务器,第3章 3.2 部署服务器 - 编排多个微服务
  10. 未来计算机可能无处不在,未来计算机科学的发展趋势是什么?