Xposed集成到Android系统

XposedBridge
下载源码,然后编写Android.mk文件放入源码根目录

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_DEX_PREOPT = false
LOCAL_MODULE := XposedBridge
LOCAL_SRC_FILES := \
    $(call all-java-files-under, src) \
    $(call all-java-files-under, lib/apache-commons-lang/external) \
    $(call all-java-files-under, hiddenapistubs/src)
include $(BUILD_JAVA_LIBRARY)
$(LOCAL_INTERMEDIA_TARGETS): PRIVATE_EXTRA_JAR_ARGS := -C "$(LOCAL_PATH)" \
assets -C "#(LOCAL_PATH)" NOTICE.txt
include $(call all-makefiles-under, $(LOCAL_PATH))

然后导入Android Studio中,点Build->Rebuild Project,会在app/build/output/apk/release目录下生成apk文件,重命名为XposedBridge.jar

如果想生成供Xposed模块调用的XposedBridge.jar,则在Android Studio的右侧打开Gradle Project,双击jarStubs就会在app/build/api生成api.jar

Android ART
将Android源码下的art目录移动到其他路径备份

在Android源码目录执行

git clone https://github.com/rovo89/android_art -b xposed-nougat-mr2 art

将修改过的android art放到Android源码根目录

注:请注意上面选择的分支是xposed-nougat-mr2,我使用的是 Android7.1.2的源码,所以选择该分支。请根据Android源码版本选择分支

git clone https://github.com/rovo89/android_art -b xposed-lollipop art

git clone https://github.com/rovo89/android_art -b xposed-lollipop-mr1 art

git clone https://github.com/rovo89/android_art -b xposed-marshmallow art

git clone https://github.com/rovo89/android_art -b xposed-nougat art

git clone https://github.com/rovo89/android_art -b xposed-nougat-mr2 art

Xposed
转到frameworks/base/cmds目录,执行

git clone https://github.com/rovo89/Xposed xposed

将Xposed Native部分的源码下载

XposedTools
在任意目录执行

git clone https://github.com/rovo89/XposedTools

将XposedTools目录下的build.conf.sample复制一份,并将它重命名为build.conf,build.conf文件用于配置构建环境,我们来看他的内容:

[General]
outdir = /home/glj81/Android6.0/out
[Build]
version = 89 (custom build by guanlingji / %s)
makeflags = -j12
[GPG]
sign = release
user = 852109AA!
[AospDir]
23 = /home/glj81/Android6.0
[BusyBox]
arm = 23
x86 = 23
armv5 = 23```

outdir: 指定Android源码中的out目录

javadir: 指定XposedBridge目录,不需要编译XposedBridge.jar可以不指定

version: Xposed版本,这个版本号将显示在XposedInstaller上

ApospDir: 设置sdk版本对应的Android源码

在源码目录下out下,新建java文件夹,放入XposedBridge.jar

配置完成后,就可以执行build.pl编译

进入到XposedTools目录下执行

./build.pl -t arm:23 编译生成供cpu架构为arm,sdk为22平台使用的Xposed

编译完成后,将在Android源码目录[outdir]/sdk22/arm生成可刷入手机的zip文件

XposedTools所需要的依赖库
在使用 build.pl 时,它还依赖一些 Perl 的类库,请童鞋们按照下面步骤下载这些依赖库:

sudo apt-get install libconfig-inifiles-perl

sudo apt-get install libio-all-perl

sudo apt-get install libfile-readbackwards-perl

sudo apt-get install libfile-tail-perl

sudo apt-get install libtie-ixhash-perl

build.pl 执行过程中,如果报还有其他依赖库未找到,请通过下面命令

apt-cache search perl XXX 来查找需要 apt-get install 哪个目标库。XXX 是 build.pl 执行过程中报错时提供的库信息

Xposed集成到系统

1.在Android源码目录out/sdk23/arm/files/下

把system目录整个覆盖到out/target/product/手机代号/目录下

2.进入/Android6.0/out/target/product/hammerhead/system /bin目录删掉app_process32,然后把app_process32_xposed版的app_process32改成这个名字

3.从生成的SDK zip刷机包中找到XposedBridge.jar 放到/Android6.0/out/target/product/hammerhead/system/framework目录下

4.把XposedInstaller_3.1.5放到/Android6.0/out/target/product/hammerhead/system/app目录下

5.然后再安卓源码目录下 执行

source ./build/envsetup.sh

lunch

make snod

猜你喜欢

转载自blog.csdn.net/YJJYXM/article/details/106852262