-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] When set param.result after get it value was still original #23
Comments
Sorry but I didn't understand. What is your code call scope? 抱歉,但是我没理解。你的代码调用域是什么 (在什么地方调用的,期望是什么,作用在什么宿主上)。 |
|
还是没有看懂,你期望的结果是什么,你认为哪个地方的功能有问题? 我猜测,你可能遇到了这个问题? 一般情况下 |
日志的输出是不符合预期的,$result 输出了原始值。 result = x.split(",") 这个赋值语句是生效的,但是日志打印的仍然是原始 result 的值。 同样的代码, 不做任何修改,在 1.1.4 是正常的,但是 1.1.6 “不正常”。 |
你的意思是修改方法返回值无效吗?这要取决于具体的作用对象。 你可否提供一个最小复现问题的 Demo,并在有问题的代码上用注释标注期望的结果,我去测试一下,否则我无法得出这是什么问题。 你同时还需要提供相关环境信息,例如使用的 Xposed 框架,系统版本。 |
返回值应该是有效的,我通过hook另一个方法的入参观察到了这个返回值。我感觉只有日志的部分是无效的,是否与 $result 的序列化函数相关? |
我还是没明白是什么问题,所以如果你无法解决此问题并怀疑可能是 |
Demo 部分可能不带好写,暂时退回了 1.1.4。我也是今天升级到1.1.6才发现这个问题的(代码一行未改,只是升级了 hook 的版本。)。 |
由于我一直没有搞清楚你遇到了什么问题,所以我也没法解答,你只能想办法提供可以复现的 Demo 给我我才能知道问题。 因为最新版本修改了模块的部分装载时机和规则。 |
你的意思是这样吗
|
是的 |
Hook 任何一个方法的结果都是如此吗 |
我尝试了若干如上面例子中的AfterHook部分, 几个用例覆盖了 result 类型为 array、string,日志打印出来都是 result 改变之前的值。
|
我指的是 Hook 任何一个方法的结果,before 和 after 都可以试一下。 |
试过了,对于 before 的例子
对于 after 的例子
|
你可以用原生的 Xposed API 试一下这是否为预期行为,因为底层直接对接的就是 Xposed API。 |
另外也请使用你说的 1.1.4 版本试一下,最后以 Xposed API 预期行为为准。 |
这个肯定不是预期行为吧,同步写法出现了“异步”的现象。 我代码早就是 1.1.4 写好的,日志一直也都是正常。今天升级完才发现日志输出这个样子。1.1.5-1.1.6 在我看来,日志都不正常。 |
看了一下,这可能确实是 API 的 bug,因为从 1.1.5 开始为了做兼容重写了对接 Xposed API 都底层代码,可能是我当时没考虑这种情况,我只代理了设置返回值的 callback,忽略了方法还需要更新修改后的原值的问题,应该设置两个 callback,此问题应该只会影响调试效果,但是不会影响最终作用效果。 这里 是可能发生问题的代码段。 我将会在下个版本一同修复这个问题。 临时的解决方案:设置 result 后将其保存为自定义变量把值存起来。 |
该问题已在 1.1.8 版本中修复。 |
For Example:
When
debug.xxx
is set to1,2
the log outpkg_name, 1,2, [1, 2]
, but upgrade to 1.1.6 it becamepkg_name, 1,2, [x, y]
, the x and y is it's original value.Using
System.out.println
has same phenomenon.The text was updated successfully, but these errors were encountered: