修改服务器返回的js
问题场景
android app 里有一个webview,webview加载一个http页,页内加载了一个js,我想修改这个js的内容,往里边加些日志,让他把一些值输出来。
解决过程
我想了两种可能解决方案
- 修改缓存在本地的js缓存。
- 用mitm拦截返回的js进行修改。这个看起来是可以的。
要修改本地的缓存就要知道js缓存在哪里,找了半天发现在 /data/user/0/{package_name}/cache/org.chromium.android_webview
下边,但是里边的js名字已经变了,而且被压缩过了,都是二进制的没法改。
换另一个方案,确实拦截到了返回的js,但是js太大了,有1000多kB,找起来太麻烦了。意外的发现可以远程调试android webVew里边的js,这个方案下需要WebView.setWebContentsDebuggingEnabled(true);
,恰好这个应用确实把这一项设为true了,当然如果应用将这一项设为false,也可以用xposed模块来搞:
恰好有个现成的xposed模块里边有这个功能,起作用的代码如下:
|
|