Xposed 包名修改(防检测)

Xposed源码编译

该实现需要基于Xposed源码编译, 不会源码编译的建议先研究下如何编译, 推荐下面的文章
https://www.jianshu.com/p/73e01e7b1bd8
https://www.jianshu.com/p/c14eafe5e1d7
https://www.jianshu.com/p/c731cd44e82b

XposedBridge包名修改

  1. 直接修改整个包名路径, 原路径为app/src/main/java/de/robv/android/xposed, 将包名部分修改为其他, 如app/src/main/java/com/xped/api
  2. 替换XposedBridge源码中包名引用, 全局替换de.robv.android.xposed 为 com.xped.api(注意: XposedInit.INSTALLER_PACKAGE_NAME 这个千万不要替换掉了, 这个是XposedInstaller的包名)

Xposed Framework部分修改(frameworks/base/cmds/xposed)

其实在这个目录下使用搜索关键字就可以知道要修改什么地方了(grep ‘robv’ -r ./)
搜索到一下内容替换包名就可以了

  1. aosp/frameworks/base/cmds/xposed/xposed.h
    efine XPOSED_CLASS_DOTS_ZYGOTE
    efine XPOSED_CLASS_DOTS_TOOLS
  2. aosp/frameworks/base/cmds/xposed/libposed_common.h
    efine CLASS_XPOSED_BRIDGE
    efine CLASS_ZYGOTE_SERVICE
    efine CLASS_FILE_RESULT
  3. aosp/frameworks/base/cmds/xposed/xposed_service.cpp
    IMPLEMENT_META_INTERFACE(XposedService, “”)

编译源码并刷入手机

将编译完成后的xposed-vxx-sdkxx-xxx-xxx.zip刷入手机, 将XposedBridge.jar中的dex文件转换成jar包放入自己的模块中就可以了

弊端

因为替换了包名, 所以只能使用自己的模块, 其他第三方的模块就无法正常使用了, 搞机有风险, 修改需谨慎哦~

你可能感兴趣的:(Xposed,android)