编译android源码刷机到Nexus5x
基础环境
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相关推荐
- 对google手机编译android源码刷机
一.简介 最近因为修改系统源码层某功能的代码,对多个版本的系统源码进行了编译,并刷到手机中.如果是单纯研究Android源码或Android手机系统层的某个功能,以google原生Android手机和 ...
- Android 源码刷机版本号、支持设备对照表(AOSP )
Android 源码刷机版本号.支持设备对照表(AOSP ) Android 官方地址:https://source.android.com/setup/start/build-numbers#sou ...
- Android逆向之源码刷机及Root
前言 作为一个软件逆向分析师,拥有一台干净纯粹的手机,是一件开心事情. 对于拥有Google Nexus系列机器的我, 编译Android源码并刷入机器中,一件振奋人心的事情,我们今天就来带大家一块来 ...
- ubuntu 20.04编译Android源码
一直以来想编译android源码,趁闲编译了下,ubuntu版本:20.04,android源码版本:android-9.0.0_r30.总体还比较顺畅,中间遇到了一些报错,在文中也有记录,详情见下文 ...
- 《深入解析Android 虚拟机》——第1章,第1.3节编译Android源码
本节书摘来自异步社区<深入解析Android 虚拟机>一书中的第1章,第1.3节编译Android源码,作者 钟世礼,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- 编译Android源码
通过参考网上的相关资料,我编译Android源码的步骤如下: 1 我的系统是Ubuntu 8.04 2 系统上必须安装以下工具(摘自网上的资料): sudo apt-get install bu ...
- (转)编译Android源码的全过程
在网上看到一篇编译android源码的文章,照着做挺行的, 通过参考网上的相关资料,我编译Android源码的步骤如下: * 1 我的系统是Ubuntu 8.04 * 2 系统上必须安装以下 ...
- ubuntu 11.10下载和编译Android源码
ubuntu 11.10下载和编译Android源码 由衷感谢网上的各个博主的文章,给了小弟我莫大的帮助.这里呢,小弟也把自己的经历记录下来,以供大家参考^^.这篇应该算是零基础.从无到有的流程介绍了 ...
- Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决
Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决 参考文章: (1)Ubuntu12.04编译Android ...
最新文章
- VOLTE parameter in Attach Request/Accept message
- python定义的关键数据类型_Python基本数据类型
- Windows 家族的十二种常用密码破解法
- 网络工程师面试PK--胜者为王
- mysql 枚举_是否推荐使用MySQL的enum类型?
- MySQL基本操作命令和数据表高级操作
- Mysql 日期、字符串、时间戳互转
- Opencv 找轮廓并画出相应的矩形
- [Leedcode][JAVA][第55题][跳跃游戏][贪心][动态规划]
- 海德堡大学 BMCV 组(Master/Diploma/Bachelor)研究机会,生物医学图像分析方向
- CSS 字体风格 font-style属性
- 计算机视觉开源代码集合(转载)
- 从 VMWare 到阿里神龙,虚拟化技术 40 年演进史
- candence 知识积累3
- CSS3过渡动画关键帧动画
- 数学原理(The Principles of Mathmatics)
- seckill配置补发
- html盒子里的内容溢出,[经验] HTML页面中子盒子溢出了怎么办
- 微信小程序开发语言一般有哪些?
- Java 获取对象占用内存大小