在Android(没有PC)的当前Chrome选项卡中执行JavaScript

Execute JavaScript in current Chrome tab in Android (without PC)

本文关键字:选项 Chrome JavaScript 执行 Android 没有 PC      更新时间:2023-09-26

我想在当前Chrome标签的上下文中执行一个简单的javascript语句,比如console.log("hello"),最好通过设备本身的shell脚本。这些是我到目前为止发现的:

  • am start -n com.android.chrome/org.chromium.chrome.browser.Chrome.browser.ChromeTabbedActivity -d 'XXX'适用于地址,但不适用于JavaScript。
  • com.android.chrome/com.google.android.apps.chrome.Main也一样
  • 旧工作流程显示调试器有一个 UNIX 套接字:adb forward tcp:9222 localabstract:chrome_devtools_remote但我在设备的文件系统上的任何地方都找不到它。

提前谢谢你!

由于Chrome的安全模型,似乎没有直接的方法可以做到这一点。

对我有用的解决方案是代理所谓的 mitmproxy 带有自定义规则,可在 head 标签的末尾添加脚本标签。 mitmproxy也适用于HTTPS

# Usage: mitmdump -s "modify_response_body.py mitmproxy bananas"
# (this script works best with --anticache)
from libmproxy.models import decoded
def response(context, flow):
    with decoded(flow.response):  # automatically decode gzipped responses.
        flow.response.content = flow.response.content.replace(
            '</head>',
            '<script type="text/javascript">console.log("hello");</script></head>')