Chrome 远程调试允许你使用 PC Chrome 对 Android Chrome 的网页进行调试,文档如下:
https://developer.chrome.com/devtools/docs/remote-debugging
以下是我们喜闻乐见的调试界面:
远程调试的原理是一套名为 Chrome Debugging Protocol 的协议,只要遵守了这个协议,理论上任何实现都应该可以操纵 Chrome 中的网页。文档如下:
https://developer.chrome.com/devtools/docs/debugger-protocol
当你在 Android 上允许 USB 调试以后,打开 Android Chrome ;通过 USB 连接电脑,在 PC Chrome 中输入 chrome://inspect 进入远程调试界面,接着就可以选择你想要调试的网页了。
如果你电脑上有 adb ,执行如下命令,可以直接在 Android Chrome 中打开百度:
adb forward tcp:9222 localabstract:chrome_devtools_remote
curl -v http://127.0.0.1:9222/json/new?http://baidu.com
Android Chrome 在 Android 本地建立了一个 socket ,通过 adb 命令将这个名为 chrome_devtools_remote 的 socket 映射到 PC 对应的 port 上,接着就可以在 PC 中远程调试了。
那么问题来了,能不能实现一个遵守远程调试协议的 Android App ,访问 chrome_devtools_remote 这个 socket ,去操纵 Android Chrome 中的网页呢?
如果可以,那么就可以间接地在 Android Chrome 上实现网页插件。或者, App 在后台静默地进行 JS 注入,这样你的密码等信息可能就会被别人知道。
所以,如果这种方法是有效的,那 Chrome 远程调试是不是很不安全呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.