Source code is located in https://github.com/nwtgck/piping-adb-web.
First, open adbd 5555 port on an Android device using adb tcpip 5555
or su 0 setprop service.adb.tcp.port 5555; su 0 stop adbd; su 0 start adbd
Second, the device starts a tunneling over Piping Server in some way, equivalent to the following command:
curl -sSN https://ppng.io/aaa | nc localhost 5555 | curl -sSNT - https://ppng.io/bbb
curl
and nc
.Finally, open the following URL on a Chromium-based browser.
https://piping-adb.nwtgck.org/#?auto_connect&server=https://ppng.io&cs_path=aaa&sc_path=bbb
This project is highly based on ya-webadb. Thanks to the original author!
The following document is from the original README.
It started because I want to try the WebUSB API, and because I have an Android phone. It's not production-ready, and I don't recommend normal users to try it. If you have any questions or suggestions, please file an issue at here.
It was called "ya-webadb" (Yet Another WebADB), because there have already been several similar projects, for example:
However, they are all pretty simple and not maintained, so I decided to make my own.
Accessing USB devices (especially your phone) directly from a web page can be very dangerous. Firefox developers even refused to implement the WebUSB standard because they considered it to be harmful.
However, I'm pretty confident about this demo, and here is a few reasons:
Currently, only Chromium-based browsers (Chrome, Microsoft Edge, Opera) support the WebUSB API. As mentioned before, it's unlikely for Firefox to implement it.
One USB device can only be accessed by one application at a time. Please make sure:
adb kill-server
).Extra software is required to bridge the connection. See this discussion.