首先下载AOSP代码,这个可以参考以前的文章 http://kswapd.cn/article/aosp-build-to-evaluator/

上篇文章介绍了编译后启动模拟器,模拟器不需要驱动,所以比较容易,但是运行缓慢,下面我们学习将aosp编译到真机。

这一步假设我们已经成功下载了AOSP代码,但是因为需要刷入真机,所以还需要下载驱动,重新编译等步骤。

repo 使用

AOSP开发离不开使用Repo这个工具,我们先来看下基本时使用。

使用repo sync同步最新的代码。

然后我们新建一个自己的分支,便于我们比较改动。

详细参考资料 https://source.android.com/setup/develop/repo https://blog.csdn.net/salmon_zhang/article/details/79180075

下载驱动

repo保持在当前分支即可,无须特意切换,我们需要根据手机机型下载对应的驱动。

编译aosp时会生成system.img文件,这个文件是最终刷机用的,但是system.img文件必须依赖驱动文件生成,如果没有放入对应的驱动就编译,那么生成的镜像也是无法正常刷机的。

下面通过这个网站查找对应的手机代号,也可以直接下镜像使用fastboot刷入: https://developers.google.com/android/images

这里我是用的pixel手机测试的,经过查找该手机代号是sailfash,然后到这个网站上找镜像。 https://developers.google.com/android/drivers

因为是基于最新代码编译,所以我们下载最新版即可,如果是基于其他分支的代码编译,我们就需要下载对应分支的驱动。

两个文件都需要下载解压,得到两个脚本文件。

执行两个脚本,即可提取出驱动,将提取出的vendor/目录放到aosp根目录。

驱动下载完成。

全部编译aosp

这个时候需要将aosp全部编译下,因为我们之后就使用mm部分编译了,使用部分编译之前,需要先全部编译一次。

大约需要2小时,aosp编译完成,这个时候我们使用

即可将镜像刷入手机。

AOSP导入Android Studio

生成idea的相关文件

这个时候,可以使用Android Studio 导入这个android.ipr文件,导入之前可以删除一些文件夹,提高导入速度。

修改android.iml,提高导入速度

如果只是修改framework模块的代码,那么只导入framework模块即可,x。 主要是修改<sourceFolder><excludeFolder>标签,仅导入framework/base模块。

参考:

配置源码跳转

将 Project Setting 中的依赖都删除。ClassPath仅保留这两个,SourcePath都删除。

将自动编译关掉,否则会卡。

配置完成后,源码就可以正常跳转了。 同样,这样配置完成后也可以使用Android Studio进行Debug源码。

修改AOSP

下面我们演示下修改aosp中的framework代码。

我们把ActivityManagerService的LOG开关全部打开,然后重新编译个Rom刷入手机。 改动如下:

然后在aosp目录执行

然后刷入手机,跟之前步骤一样。

重启手机,AOSP已经运行在我们手机上了。

看下ActivityManagerService的LOG,说明我们的改动生效了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注