Manipulate Android devices from any (supported) web browsers, even from another Android device.
Online demo: https://smartdust-me.github.io/webadb
I'm working on a series of blog posts explaining the ADB protocol and my implementation in details.
@yume-chan/adb contains a platform-independent TypeScript implementation of the Android Debug Bridge (ADB) protocol.
@yume-chan/adb-backend-webusb contains a backend for @yume-chan/adb that uses WebUSB API.
See README in each package for more implementation details.
This repository is a monorepo containing following packages:
| Folder 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 | Event/EventEmitter pattern. |
| struct (README) | C-style structure serializer and deserializer. |
| webpack-config | Webpack configuration file in TypeScript, will output into demo folder |
| demo (README) | Demo of @yume-chan/adb and @yume-chan/adb-backend-webusb. |
If you already have lerna installed globally, run
npm run postinstallOtherwise, run
npm installwill install lerna locally and bootstrap all packages.
npm run build: build all npm packages.npm run build:watch: build and watch changes for all npm packages.npm run start:demo: start webpack-dev-server for thedemopackage.npm run build:demo: build thedemopackage.