Manipulate Android devices from any (supported) web browsers, even from another Android device.
Online demo: https://yume-chan.github.io/ya-webadb
I'm working on a series of blog posts explaining the ADB protocol and my implementation in details.
@yume-chan/adb is a platform-independent TypeScript implementation of the Android Debug Bridge (ADB) protocol.
@yume-chan/adb-backend-webusb is a backend for @yume-chan/adb that uses WebUSB API.
See README in each package for details.
This repository is a monorepo containing following packages:
| Package Name | Description |
|---|---|
| adb (README) | TypeScript implementation of Android Debug Bridge (ADB) protocol. |
| adb-backend-webusb (README) | Backend for @yume-chan/adb using WebUSB API. |
| event (README) | Event/EventEmitter pattern. |
| struct (README) | C-style structure serializer and deserializer. |
| demo (README) | Demo of @yume-chan/adb and @yume-chan/adb-backend-webusb. |
The repository uses Rush for monorepo management.
$ npm i -g @microsoft/rush$ rush updateBuild all packages:
$ rush buildWatch all libraries:
$ rush build:watchStart demo dev-server:
$ cd apps/demo
$ npm startUsually you need two terminals to run both 2 and 3.