Xposed 集成 Android 6.0.1环境中,总结

本文介绍将Xposed集成到Android源码以生成自带Xposed功能ROM的步骤,包括下载并编译Android源码、替换art文件夹内容、拷贝相关代码和工具、新建配置文件、执行编译命令等,还提及可能遇到的问题及解决办法,并给出相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  由于工作需要,需要将xposed集成到android源码中,生成新的ROM就自带xposed的功能。

下面大体上说一下步骤和遇到的问题。

1、下载,并编译android源码,成功。

2、下载 https://github.com/rovo89/android_art 中,在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))
Android.mk

       3.2、Android源码根目录,执行命令(多个)

source build/envsetup.sh
lunch 17
mmm XposedBridge-art

       3.3、如果成功,会在out/target/product/angler/system/framework/XposedBridge.jar

       3.4、如果失败,可能出现错误如下:build/core/host_shared_library_internal.mk:44

需要在android源码根目录执行命令:

cp /usr/bin/ld.gold  prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
make update-api 

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
View Code

  5.3、拷贝,生成的XposedBridge.jar到XposedTools中,XposedTools-89/out/java/XposedBridge.jar 没有的文件夹,请新建。

  5.4、执行命令:./build.pl -t arm:23 可能会缺少环境,就需要安装perl环境了。

       先执行,三条命令如下,

apt-cache search Config::IniFiles
libconfig-inifiles-perl - Read .ini-style configuration files
sudo apt install libconfig-inifiles-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 源码 https://www.jianshu.com/p/c14eafe5e1d7

Xposed 编译(二) - 编译 Android 源码   https://blog.youkuaiyun.com/weixin_33832340/article/details/87512976

编译Xposed https://www.cnblogs.com/luoyesiqiu/p/9524651.html

xposed源码编译与集成 https://www.jianshu.com/p/6471bab49cb1

xposed源码编译&安装--第2步编译XposedBridge  https://juejin.im/post/5be3afeae51d4535b07d0f4e   // 朋友的文章,重点推荐,很有帮助。

ubuntu16.04 下android源码编译以及环境配置(含xposed)--交接笔记 https://blog.youkuaiyun.com/weixin_34392906/article/details/87531704

xposed源码编译与集成 https://blog.youkuaiyun.com/weixin_33726943/article/details/87195857

xposed源码编译与集成 https://www.cnblogs.com/coffee520/p/9648243.html

makefile中常见的错误—missing separator. Stop.—原因命令行缺少tab键 https://blog.youkuaiyun.com/dumgeewang/article/details/7709412

还有等等,参考了很多,已经窗口关闭,找不到了。。。

 

转载于:https://www.cnblogs.com/Supperlitt/p/10928899.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值