探索Xposed:深度定制Android的利器

更新:11-16 名人轶事 我要投稿 纠错 投诉

这篇文章给大家聊聊关于探索Xposed:深度定制Android的利器,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

场景

需求开发完成,测试通过,制作正式包,加固,上传应用市场。第二天突然发现线上申请有bug,测试环境无法出现。如果使用在线官方包,则看不到日志、调试等。

当然,你说可以在本地构建一个正式的包,可以调试,可以读取日志。如果你觉得不麻烦,当然可以(对于较大的项目可能需要一点时间来编译和打包),但是如果应用程序进行了加固,那么它仍然需要加固,并且调试和修复bug可能有点头疼。

这时候可以用xpose写个插件来调试官方包,打开日志开关,提供崩溃的对话框提示等,这样就不会在原项目中添加任何代码或修改,非常方便。

参考

xposed 开源框架地址xposed-github xposed 插件Xposed Module Repository 不同sdk 版本的框架下载地址Frameworkxpose 编译工具XposedTools 重启系统即可生效。

说明

当然,关于插件开发过程中如何避免修改后重启,网上有解决方案。你可以自己搜索一下。

免重启

设备

root手机、xpose卡刷机包

从框架下载xposed卡刷机包。下载时请务必检查您手机的系统版本和CPU型号。你可以在百度上查CPU型号。使用第三方recovery来刷xposed卡刷写包。 Xpose安装程序.apk

从xda-developers 安装包将其安装到您的手机上。重启手机并打开Xpose installer.apk

如果出现如下界面则说明安装成功。

截图2020-04-13 PM 3.19.27.png 右上角可以打开或关闭xpose。左上角菜单中的模块列出了手机当前安装的xpose插件。它们可以在内部打开或关闭,但需要重新启动系统才能生效。

安装

开发xposed插件需要XposedBridge包。下载后放入项目中。

新建筑

Android Studio 创建一个新的Android 项目或模块来编写钩子类public class XposedHookTest Implements IXposedHookLoadPackage {

@覆盖

公共无效handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam)抛出Throwable {

//待办事项

}

当然,不仅仅可以实现IXposeHookLoadPackage,xpose的具体用法可以自行百度。告诉xpose插件hook实现类

在assets目录下新建xposed_init文件,然后写入hook类的全路径名,例如:com.pds.xposed.hook.XposedHookTest告诉xposed该模块是一个xposed插件

在manifest下的application标签下配置如下代码:安装并启用插件

在手机上安装插件,然后打开上面安装的xpose软件,在模块中找到自己的xpose插件,打开,然后重启系统。核实

重启后,你可以验证一下你的插件是否有效或者你的hook逻辑是否有问题。

开发

如果我们想修改应用程序中的某个变量

公共无效handleLoadPackage(XC_LoadPackage.LoadPackageParam paramLoadPackageParam)抛出Throwable {

//通过包名判断是否是我们要修改的应用程序

if (HOOK_APP_PACKAGE_NAME .equals(packageParam.packageName)){

//查找变量所在的类文件

clazz=XposedHelpers.findClass("com.pds.base.network.RetrofitConfig",classLoader);

//修订

XposeHelpers.setStaticIntField(clazz,"level",2);

}

}

修改变量

现在许多应用程序都使用第三方进行加固。此时传入handleLoadPackage方法的XC_LoadPackage.LoadPackageParam参数中获取的ClassLoader就是第三方加固程序的ClassLoader。如果我们使用这个ClassLoader来查找自己应用程序中的类,就会报“class not found”异常。

加固程序会在自己的Application类中执行一些解密操作。我们可以hook加固程序的Application来获取应用程序真实的ClassLoader实例。下面是360加固的解释。

加固

获取应用程序真正的ClassLoader实现:

私人无效_360Firm(最终XC_LoadPackage.LoadPackageParam packageParam){

//挂钩360外壳

XposeHelpers.findAndHookMethod("com.stub.StubApp", packageParam.classLoader,"getOrigApplicationContext", Context.class, new XC_MethodHook() {

@覆盖

protected void afterHookedMethod(MethodHookParam param) 抛出Throwable {

super.afterHookedMethod(param);

XposeBridge.log("_360Firm afterHookedMethod");

//获取360的Context对象,通过该对象获取classloader

上下文上下文=(上下文) param.args[0];

//获取360的classloader,然后hook加固后的代码就会使用这个classloader

类加载器classLoader=context.getClassLoader();

//替换classloader和hook加固后的真实代码

hookMethod(packageParam,classLoader);

}

});由于第三方加固可能随时修改Application名称、文件位置、方法名称等,所以你还是要懂得自己分析。

分析

首先,解压应用程序,获取解密用的未加固的dex,使用工具反编译成jar,检查Application实现。然后进行相应的修改即可。

360加固

幸运补丁

Xpose模块,有各种破解功能以及网上资料,可以破解HttpCanary,但是我没有成功。

相信我

Xpose模块,关闭证书检测,让https可以直接抓包。

用户评论

孤岛晴空

我一直想试试Xposed框架,听说可以自定义很多手机功能。

    有6位网友表示赞同!

寻鱼水之欢

最近看到有人说Xposed框架很好用,有没有哪个模块比较推荐的吗?

    有16位网友表示赞同!

一纸愁肠。

Xposed的框架这么强大吗?感觉玩了安卓多年还是有些没接触过~

    有13位网友表示赞同!

滴在键盘上的泪

我有一段时间想要刷机,但是担心可能会出现问题。听说Xposed可以不需要刷机就能修改手机功能?

    有14位网友表示赞同!

孤城暮雨

想在手机上安装某个第三方应用,可是需要root权限,听别人说Xposed可以用么?

    有14位网友表示赞同!

旧事酒浓

玩安卓的同学们,有没有用过Xposed框架的建议?有哪些需要注意的地方?

    有11位网友表示赞同!

繁华若梦

感觉很多手机的功能都比较固化,如果能用Xposed自己修改就好了。

    有18位网友表示赞同!

肆忌

听说Xposed框架可以提高手机性能?是真的吗?

    有9位网友表示赞同!

素婉纤尘

之前我用手机的时候经常会遇到一些bug,不知道用Xposed会不会解决这些问题?

    有20位网友表示赞同!

打个酱油卖个萌

最近在网上看有人说Xposed框架比较危险,真的这样吗?

    有13位网友表示赞同!

巷口酒肆

有没有使用过Xposed的同学分享一下你们的使用经验呢?什么模块好用啊?

    有20位网友表示赞同!

雁過藍天

Xposed框架的教程比较难学吗?想尝试一下但不知道从哪开始。

    有20位网友表示赞同!

将妓就计

用Xposed修改手机功能会对手机造成风险吗?会不会影响保修?

    有7位网友表示赞同!

放血

我已经root权限了,那么可以用Xposed来进行一些操作了是么?

    有18位网友表示赞同!

花海

想知道Xposed框架的使用范围有多广啊,还能干什么?

    有13位网友表示赞同!

仅有的余温

听说现在很多手机都自带Xposed框架功能了吗?是真的吗?

    有9位网友表示赞同!

月下独酌

我手机没有root权限,可以用Xposed吗?有什么替代方法吗?

    有5位网友表示赞同!

封锁感觉

想通过Xposed来提升手机的运行效率,请问有哪些模块比较推荐?

    有11位网友表示赞同!

【探索Xposed:深度定制Android的利器】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:全面净化:揭秘高效排毒方法与生活技巧 下一篇:《高效jQuery实战技巧》整理笔记