问题标签 [xposed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1641 浏览

android - 使用 Xposed 在另一个应用程序中挂钩私有方法

是否可以使用 xposed 在另一个应用程序中挂钩私有方法?

我已经写了这个模块

它不会抛出任何错误,说找不到类,但是当调用该方法时,它不会将任何内容写入日志。所以我认为发生这种情况是因为该方法是私有的,但我不确定。

0 投票
1 回答
370 浏览

xposed - Xposed API的文档在哪里

只有教程可用。 https://github.com/rovo89/XposedBridge/wiki

0 投票
1 回答
900 浏览

android-studio - 如何在 Xposed 模块项目中使用 .so 文件?

如何将此 Hello-JNI 项目https://codelabs.developers.google.com/codelabs/android-studio-jni/index.html?index=..%2F..%2Findex#0 转换为 Xposed 模块并使用挂钩方法中的方法“getMsgFromJni”?

0 投票
2 回答
986 浏览

android - Android 4.4 获取硬件密钥 ID(设备上实际可用)

我正在开发一个 Xposed 模块,它使用硬件按钮(如电源、音量增大等)来启动一些操作。我想添加一个“设置”用户界面,以便用户可以选择他想要使用的按钮。

到目前为止,我找到了几种可能的解决方案,但没有一个适合我。例如,以下都返回 true:

但是,该设备实际上根本没有任何音量键。通过记录硬件键,我发现“音量”键实际上是 KEYCODE_F1。所以检查 deviceHasKey() 是不可靠的,我不能指望它。

是否有另一种解决方案来检查哪些硬件密钥可用,实际上可以像您期望的那样工作?或者更好的是,有没有办法获得所有可用按钮的完整列表?

也有人可以解释为什么 deviceHasKey() 为音量键(_UP、_DOWN、_MUTE)返回 true,而根本没有单个音量按钮?我认为这一定与设备的 KeyCharacterMap 有关,由于该设备是廉价的中国设备,因此可能实施不佳。

我的第三个问题是:有没有办法区分设备处于睡眠状态时工作的按钮(在我的情况下是电源、音量、F1)和不工作的按钮(如菜单、返回、主页,它们都是下面的触摸按钮显示器(不是显示器中的软件按钮)而不是可按下的按钮)?

任何提示都非常感谢:)

先感谢您

- - -更新 - - -

正如 Burak Day 所建议的,这是以下结果adb shell getevent -lp

如您所见,设备认为有按钮可用,在与制造商交谈后,我们发现他们可以为设备添加更多按钮(如果我们订购一定数量并额外支付几千美元)。但是,在当前版本中,按钮仍然不存在。

我的猜测是,该设备使用模块化板/处理器/驱动程序,您可以在其中焊接按钮或将它们留空,但软件不知道按钮是否焊接在板上。

我怎么知道按钮是否物理可用?我想让我的模块尽可能通用,以便将来它可以在其他设备上运行而无需显式更改代码。此外,如果它们不存在,我也不想向用户显示可能的按钮。

另一件事是,我仍然需要一种方法来区分设备睡眠时可用的按钮(电源、音量)和不可用的按钮(菜单、主页、返回,它们都是触摸按钮,如果显示是断电,它们也断电)。

----更新2----

我检查了 event0 设备键的原始十六进制值。然后我使用“mtk-kpd.kl”字符映射来翻译它们。然后我使用各自的 KeyEvent id 来检查设备是否对所有这些都返回 true:

是的,它们都返回真实......

0 投票
0 回答
491 浏览

android - Android (root) - 为相机强制图像

我想知道是否有任何应用程序/(Xposed)模块可以强制相机看到图像。

基本上,我想要一台扫描仪来扫描自制的条形码,而不是需要两部手机;一个用于生成和显示条形码,另一个用于从特定应用程序扫描它。

任何会在应用程序中显示扫描仪图像的东西都可以。

0 投票
1 回答
2411 浏览

java - xposed方法替换replaceHookedMethod有条件吗?

我对 xposed 开发很陌生,我被困住了:

我挂钩一个方法,检查一些东西,然后我想决定是用 just 替换它return true;还是让它运行。但我还没有找到设置条件来替换HookedMethod(..)

我知道我可以在 afterHookedMethod 或 beforeHookedMethod 中设置返回值,但这并不妨碍该方法运行。

这是我的简短示例:

有什么想法/建议吗?提前致谢!

0 投票
1 回答
8756 浏览

java - 以编程方式启用/禁用沉浸式模式

我想让我的 Android 应用全屏显示,但只在某个屏幕(我的设置屏幕)上显示 android 导航栏。我知道在屏幕上永久隐藏导航栏很危险,但我想知道这是否可行。我已经研究过植根我的设备并使用 Xposed 框架。

有没有办法以编程方式禁用导航栏或“粘性模式”,然后再重新启用?

编辑:我查看了 Android 沉浸式模式,但如果用户触摸边缘,导航栏似乎仍会显示。我想删除导航栏的任何提示,直到他们进入我的设置屏幕。

0 投票
1 回答
2030 浏览

xposed-framework - Xposed没有钩住方法

我需要为 Xposed 制作“Hello world”应用程序。我试图通过 Xposed 更改 IMEI。有些方法它迷上了,有些没有。问题是如何将它们全部钩住?

我制作了从 IMEI 中获取TelephonyManager并显示它的测试应用程序:

比我写方法来替换方法:

并使用它:

有用!

但是当我在应用程序中查看 IMEI 时Settings,它并没有改变。好的,我拿了Settings应用程序的 APK,提取了源代码apktool,发现以下内容:

因此,它使用接口中getImei()的方法com.android.internal.telephony.Phone。因为不可能hook接口的方法,所以我在sources中找到了这个接口的所有实现:

日志记录了getImea()PhoneProxy设置应用程序中被钩住(查看上面的来源):

但是没有任何反应,设置中的 IMEI 没有改变。当然,我安装了应用程序并在每次迭代时都重新启动了手机。

好的,我尝试强制执行此任务:我找到了一些其他方法并将它们也钩住了。但这无济于事。

有什么想法吗?怎么了?怎么办?

所有实验均在装有 Android 5.1.1 的 Nexus 4 上进行。

这个问题的完整来源在这里:https ://gist.github.com/tseglevskiy/d100898468b286e1fff214778c9609b3

更新 1

实验的下一部分。IXposedHookZygoteInit我发现通过实现接口可以在Zygote的早期hook一些方法。好的,我做到了:

并使用它:

通过日志,它挂钩了一些方法:

但 id 也不会在“设置”应用中更改 IMEI。怎么了?

0 投票
1 回答
1128 浏览

java - Xposed 如何在 Android 中进行挂钩

我试图了解 Xposed 如何进行挂钩部分,它为用户提供了 API 以非常容易地挂钩任何方法。

我已经浏览了 Xposed Bridge 的源代码,该 jar 文件在每个进程启动时驻留在其中。我还发现他们正在使用 java 反射来获取类方法、参数等,以通过 JNI 将其传递给 Native 方法。

有一件事,我无法弄清楚 Xposed 如何挂钩进程并能够完全控制它。

我试图弄清楚挂钩发生在 XposedBridge jar 文件内的 Java 端,或者它发生在本机代码的 ART 级别。

0 投票
1 回答
468 浏览

java - 如何从 Xposed 中的变量中获取字符串?

我想从变量中获取字符串。smali 看起来像这样:

我应该使用什么方法?