Pipe into `adb shell`

前端 未结 3 761
萌比男神i
萌比男神i 2021-02-14 06:29

Why can I not pipe into adb shell?

[klm@kth ~]$ echo foo | adb shell cat
^C

The above command hangs on my 4.0.1 emulator, and I\'m

3条回答
  •  野趣味
    野趣味 (楼主)
    2021-02-14 07:12

    An alternate option may be to use adb port forwarding and netcat.

    Set Android side to recieve:

    busybox nc -lp 5555 > piped_file.txt
    

    PC side, set forwarding and send:

    adb forward tcp:4444 tcp:5555 # Anything sent to localhost 4444 will be forwarded to Android 5555
    cat piped_file.txt | busybox nc localhost 4444 # Pipe through the port to Android
    

    The PC netcat connects to the Android netcat through the forwarded port, and the piped_file.txt is delivered.


    Additional Info
    Combined with tar, you can copy entire directory structures onto your device.

    busybox nc -lp 5555 | tar -x # Android side

    adb forward tcp:4444 tcp:5555 # PC side
    tar -c directory | busybox nc localhost 4444
    

提交回复
热议问题