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 update
Build all packages:
$ rush build
Watch all libraries:
$ rush build:watch
Start demo dev-server:
$ cd apps/demo
$ npm start
Usually you need two terminals to run both 2 and 3.