【问题标题】:adb shell direct commands not working on telnetadb shell 直接命令在 telnet 上不起作用
【发布时间】:2015-03-25 03:48:41
【问题描述】:

我正在尝试通过直接连接使用 adb,即通过端口 5037 与 telnet,诸如“host:devices”之类的基本命令返回与等效 adb 命令相同的答案:

C:\adb>adb devices
List of devices attached
4d009c06c8459000        device

C:\adb>telnet localhost 5037
Connecting to localhost...
Sent: 000Chost:devices
Received: OKAY00184d009c06c8459000  device

但是当我尝试像“shell”这样的“设备”命令时,我得到一个错误:

C:\adb>adb shell ls
acct
cache
charger
config
...
...

C:\adb>telnet localhost 5037
Connecting to localhost...
Sent: 0008shell:ls
Received: FAIL0012device offline (x)

怎么了?

【问题讨论】:

    标签: shell adb telnet


    【解决方案1】:

    您对adb 协议工作原理的理解是错误的。阅读规范或查看运行任何adb shell 命令时真正发生的交换:

    C:\>set ADB_TRACE=1
    
    C:\>adb shell date
    system/core/adb/adb.c::main():Handling commandline()
    system/core/adb/commandline.c::adb_commandline():interactive shell loop. buff=shell:date
    system/core/adb/adb_client.c::_adb_connect():_adb_connect: host:version
    system/core/adb/sysdeps_win32.c::socket_loopback_client():socket_loopback_client: port 5037 type tcp => fd 100
    system/core/adb/transport.c::writex():writex: fd=100 len=4: 30303063 000c
    system/core/adb/transport.c::writex():writex: fd=100 len=12: 686f73743a76657273696f6e host:version
    system/core/adb/transport.c::readx():readx: fd=100 wanted=4
    system/core/adb/transport.c::readx():readx: fd=100 wanted=4 got=4
    4f4b4159 OKAY
    system/core/adb/adb_client.c::_adb_connect():_adb_connect: return fd 100
    system/core/adb/adb_client.c::adb_connect():adb_connect: service shell:date
    system/core/adb/transport.c::readx():readx: fd=100 wanted=4
    system/core/adb/transport.c::readx():readx: fd=100 wanted=4 got=4
    30303034 0004
    system/core/adb/transport.c::readx():readx: fd=100 wanted=4
    system/core/adb/transport.c::readx():readx: fd=100 wanted=4 got=4
    30303230 0020
    system/core/adb/sysdeps_win32.c::adb_close():adb_close: 100(lo-client:5037)
    system/core/adb/adb_client.c::_adb_connect():_adb_connect: shell:date
    system/core/adb/sysdeps_win32.c::socket_loopback_client():socket_loopback_client: port 5037 type tcp => fd 101
    system/core/adb/transport.c::writex():writex: fd=101 len=4: 30303132 0012
    system/core/adb/transport.c::writex():writex: fd=101 len=18: 686f73743a7472616e73706f72742d61 host:transport-a
    system/core/adb/adb_client.c::switch_socket_transport():Switch transport in progress
    system/core/adb/transport.c::readx():readx: fd=101 wanted=4
    system/core/adb/transport.c::readx():readx: fd=101 wanted=4 got=4
    4f4b4159 OKAY
    system/core/adb/adb_client.c::switch_socket_transport():Switch transport success
    system/core/adb/transport.c::writex():writex: fd=101 len=4: 30303061 000a
    system/core/adb/transport.c::writex():writex: fd=101 len=10: 7368656c6c3a64617465 shell:date
    system/core/adb/transport.c::readx():readx: fd=101 wanted=4
    system/core/adb/transport.c::readx():readx: fd=101 wanted=4 got=4
    4f4b4159 OKAY
    system/core/adb/adb_client.c::_adb_connect():_adb_connect: return fd 101
    system/core/adb/adb_client.c::adb_connect():adb_connect: return fd 101
    system/core/adb/commandline.c::adb_commandline():about to read_and_dump(fd=101)
    system/core/adb/commandline.c::read_and_dump():read_and_dump(): pre adb_read(fd=101)
    system/core/adb/commandline.c::read_and_dump():read_and_dump(): post adb_read(fd=101): len=30
    Thu Mar 26 06:51:49 GMT 1970
    system/core/adb/commandline.c::read_and_dump():read_and_dump(): pre adb_read(fd=101)
    system/core/adb/commandline.c::read_and_dump():read_and_dump(): post adb_read(fd=101): len=0
    system/core/adb/commandline.c::adb_commandline():read_and_dump() done.
    system/core/adb/sysdeps_win32.c::adb_close():adb_close: 101(lo-client:5037)
    system/core/adb/commandline.c::adb_commandline():interactive shell loop. return r=0
    

    【讨论】:

    • 你完全正确,我没有完全理解 adb 功能,我缺少传输部分,谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2020-10-08
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    相关资源
    最近更新 更多