/ya-webadb

ADB in your browser

Primary LanguageTypeScriptMIT LicenseMIT

Android Debug Bridge (ADB) for Web Browsers

GitHub license

Manipulate Android devices from any (supported) web browsers, even from another Android device.

Online demo: https://yume-chan.github.io/ya-webadb

How does it work

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.

Packages

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.

Development

The repository uses Rush for monorepo management.

Install Rush globally

$ npm i -g @microsoft/rush

Install dependencies

$ rush update

Everyday commands

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.