xposed编译系类文章
xposed源码编译--源码及工具概述
xposed源码编译--第一步android源码编译以及环境配置
xposed源码编译--第2步编译XposedBridge
xposed源码编译--第3步编译XposedInstall.apkXposed源码编辑&安装--第4步di自定义Xposed框架(涉及商业机密仅罗列大纲,细节暂时不便公开)
欢迎我今日关注今日头条号--可以私信哦
https://www.toutiao.com/c/user/2754992843/#mid=1563033596209153
环境准备
- ubuntu 16.04
- jdk或Openjkd (注意配置好环境变量)
- Android L 到 android M使用openjdk7(ndroid5.1源码编译需要使用openjdk,不再使用oracle的jdk)
- gradle4.6(注意配置好环境变量)
目标--编译xposed的XposedBridge.jar 和Xposed Install.apk
- 编译xposed的XposedBridge.jar
- 编译Xposed install.apk
- 提取编译Android 后的镜像文件img(原始)
- 提取编译Android +xposed后的镜像文件img(带有xposed框架的img)
一、android源码编译
在线源码阅读:http://androidxref.com/
android源码编译4步骤
#下载并解压android源码
#初始化编译环境---命令是用来将envsetup.sh里的所有用到的命令加载到环境变量里去
source build/envsetup.sh
#选择版本 ---lunch命令是envsetup.sh里定义的一个命令,用来让用户选择编译项,来定义Product和编译过程中用到的全局变量。
lunch
#编译android源码 ---就是让8个线程让4个核心竞争的执行
make –j8
- 1、下载Android源码
方式2:网络下载他人提供的压缩包android-XXXX.7z。
如海哥的
android-4.4.4_r1.7z,android-5.0.2_r1.7z,android-5.1.1_r1.7z,android-6.0.1_r72.7z,android-7.0.0_r1.7z,android-7.1.2_r1.7z
用下面命令解压。
7za x android-XXXX.7z -r -o./
- 2、初始化Android编译环境--使用Android源码build目录下的envsetup.sh脚本
在Linux的shell命令中执行
#初始化编译环境---命令是用来将envsetup.sh里的所有用到的命令加载到环境变量里去
source build/envsetup.sh
envsetup在shell中初始化的效果截图
- 3、选择版本--编译的Android目标版本
在envsetup的运行环境中选择目标android版本
#选择版本 ---lunch命令是envsetup.sh里定义的一个命令,用来让用户选择编译项,来定义Product和编译过程中用到的全局变量。
lunch
#版本分别arm,arm64,x86对应的,在lunch时分别选择对应的aosp_arm-eng,aosp_arm64-eng,aosp_x86-eng
- 4、初始化Android编译环境
接着在android源码目录下执行make
命令编译源码。第一次编译android源码建议使用make命令进行编译。为了加快编译速度,可以开多个线程进行编译。例如make -j16
命令,开16线程编译android源码。
make编译android源码的所有模块,如果用mmm仅编译指定的模块(之后编译xposed部分可以采用mmm进行指定编译xposed模块)。在使用mmm编译指定模块之前,需要保证之前使用make命令对整个源代码进行编译。
#编译android源码 ---就是让8个线程让4个核心竞争的执行
make –j8
- 5、提取编译后的Android镜像文件
编译结果--在android源码./out/target/product/下面
- 6、将android的img文件刷入手机或用Ext2explore打开
img镜像文件打开情况
Android studio 打开android源码的方法
以上若已经编译成功的话,我们进入到Android源码的路径下面,首先我们需要生成AndroidStudio所需要的格式
#mmm 是envsetupzhong 上的命令
source ./build/envsetup.sh
mmm development/tools/idegen/
执行成功后,在执行
sudo sh ./development/tools/idegen/idegen.sh
关于mmm命令参考老罗的文章
Android Studio导入整个Android系统源码-csdn
注意事项
make update-api
You have tried to change the API from what has been previously approved.
To make these errors go away, you have two choices:
1) You can add "@hide" javadoc comments to the methods, etc. listed
in the
errors above.
2) You can update current.xml by executing the following commands:
p4 edit frameworks/base/api/current.xml
make update-api
To check in the revised current.xml, you will need OWNERS
approval.
原因是:
参考资料
Android源码阅读-编译8.0源码及Android studio中查看源码--清华源
Google官方教程source.android.com/source/buil…
要想让用AOSP源码编译出的系统镜像在特定的设备中运行,仅仅编译AOSP分支的源代码是不够的,必须下载相应的与硬件相关的其他专有库。比如NEXUS 5 专用的二进制源码https://developers.google.com/android/drivers (注:试了多种科学上网后,终于有一个方式可以访问)
Google官方教程https://source.android.com/source/building
[
I.MX6Q-Android6.0.1]源码编译笔记
https://blog.csdn.net/u013115811/article/details/79858959
自己动手编译Android源码(超详细)
https://www.jianshu.com/p/367f0886e62b