Android故事

Android 8.0源码编译及刷入nexus

2017-09-10  本文已影响521人  骑着海去看蜗牛

下载源码

创建分区

由于Android源码是区分大小写的,所以如果是mac设备,需要新建一个区分大小写的分区来存储下载的源码。
创建命令:
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg
因为下载后的源码大概有60G,编译建议留70G的空间,否则可能遇到编译失败。如果把分区卸载了重新加载再编译,会重头开始编译,意味着你可能又需要70G的空间,所以no zuo no die,编译存储空间预留大一点。
增加空间命令:
hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage

下载必要的工具

通过 MacPorts 获取 Make、Git 和 GPG 程序包:
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

下载repo

确保主目录下有一个 bin/ 目录,并且该目录包含在路径中:
$ mkdir ~/bin
$ PATH=~/bin:$PATH

下载 Repo 工具,并确保它可执行:

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

新建一个文件作为存储目录

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

使用你注册过的google账户作为git账户下载

这会增加你下载成功的几率,如果不做,google可能会在中途断掉链接
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"

初始化源码树

repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r4

开始下载

repo sync

搭建编译环境

下载nexus5x的驱动

下载后解压会得到一个名为extract-lge-bullhead.sh的文件,放到下载好的源码根目录,然后执行脚本/.extract-lge-bullhead.sh,这个时候源码根目录会生成一个vendor文件夹,这就是驱动文件。

编译准备工作

开始编译

source build/envsetup.sh
lunch + shift键会提示你可以编译的分支,比如bullhead_userdebug
make -j8

编译成功

刷入nexus5x

进入recovery模式,在源码根目录运行fastboot -w flashall,等待刷机成功,享受自己编译的android系统。
terminal运行adb root,可以看到系统已经是root。

源码导入android studio阅读

编译源码idegen模块及生成AS配置文件(*.ipr)

在源码根目录执行
mmm development/tools/idegen/
结果如下图


生成成功

执行脚本
/. development/tools/idegen/idegen.sh

屏幕快照 2017-09-08 下午5.45.48.png

这时候去源码根目录看会发现多了android.ipr和android.iml。

解决跳转问题

这时候你打开Activity.java,然后随便点击一个类,不会跳转到源码相关目录,而是会去引用的library里的类。
删除除图片外的所有引用


删除后保留下的
上一篇下一篇

猜你喜欢

热点阅读