媚惑无疆,聚土网,纽伊斯特
由于工作需要,需要将xposed集成到android源码中,生成新的rom就自带xposed的功能。
下面大体上说一下步骤和遇到的问题。
1、下载,并编译android源码,成功。
2、下载 中,在release中找到当前6.0对应的sdk23版本。替换到android源码,根目录下的art文件夹中的内容。
3、下载 https://github.com/rovo89/xposedbridge ,得到xposed文件夹xposedbridge-art,或者特定版本。将文件夹拷贝到,android源码根目录和art同级。
3.1、xposedbridge-art源码中,新建android.mk用于编译xposedbridge-art生成对应的xposedbridge.jar .android.mk文件内容如下:
1 # copyright 2007 the android open source project 2 # 3 local_path:= $(call my-dir) 4 include $(clear_vars) 5 local_dex_preopt = false 6 local_module := xposedbridge 7 8 local_src_files := \ 9 $(call all-java-files-under, src) \ 10 $(call all-java-files-under, lib/apache-commons-lang/external) \ 11 $(call all-java-files-under, hiddenapistubs/src) 12 13 include $(build_java_library) 14 15 $(local_intermedia_targets): private_extra_jar_args := -c "$(local_path)" \ 16 assets -c "#(local_path)" notice.txt 17 18 include $(call all-makefiles-under, $(local_path))
3.2、android源码根目录,执行命令(多个)
source build/envsetup.sh lunch 17 mmm xposedbridge-art
3.3、如果成功,会在out/target/product/angler/system/framework/xposedbridge.jar
4、下载 https://github.com/rovo89/xposed 得到xposed c++的代码,拷贝到 源码根目录下frameworks/base/cmds/xposed中。
5、下载 https://github.com/rovo89/xposedtools 得到 xposedtools工具,用于执行perl脚本,用于编译xposed,下载保存的位置无特定要求,所以我没有放到android源码目录中。
5.1、源码外部,新建文件夹保存,xposedtools内容。
5.2、根据xposedtools源码中的build.conf.sample新建一个文件build.conf。编辑内容,如下:
[general] # 注释,可删除:指定,输出编译结果目录 outdir = /var/android_source/xposed/xposedtools-89/out [build] # 版本无所谓 version = 1(custom build by author ) makeflags = -j16 [aospdir] # android源码根目录 23 = /var/android_source/android6.0.1
5.3、拷贝,生成的xposedbridge.jar到xposedtools中,xposedtools-89/out/java/xposedbridge.jar 没有的文件夹,请新建。
5.4、执行命令:./build.pl -t arm:23 可能会缺少环境,就需要安装perl环境了。
perl环境需求,执行命令,1,2,3
perl -mcpan -e 'install config::inifiles' perl -mcpan -e 'install file::tail' perl -mcpan -e 'install file::readbackwards'
5.5、再次编译,可以看到生成了,会在xposedtools的out/arm23中,找到我们生成的,正确的,app_process32_xposed,发现android源码中也被拷贝了一份。。。
注意:
1、替换art之后,编译可能还是会遇到clang错误,需要再次修改配置文件。art/build/android.common_build.mk,解决clang错误
2、版本选择一样。
3、不同产品文件夹不一样,请根据自己的版本和手机选择。
资料:参考文献
xposed 编译(二) - 编译 android 源码
xposed 编译(二) - 编译 android 源码 https://blog.csdn.net/weixin_33832340/article/details/87512976
编译xposed
xposed源码编译与集成
xposed源码编译&安装--第2步编译xposedbridge https://juejin.im/post/5be3afeae51d4535b07d0f4e // 朋友的文章,重点推荐,很有帮助。
ubuntu16.04 下android源码编译以及环境配置(含xposed)--交接笔记
xposed源码编译与集成
xposed源码编译与集成
makefile中常见的错误—missing separator. stop.—原因命令行缺少tab键
还有等等,参考了很多,已经窗口关闭,找不到了。。。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论