No description
Find a file
2021-12-10 00:46:17 +08:00
.github/workflows chore: disbale project reference of demo 2021-06-10 12:24:57 +08:00
.vscode feat(scrcpy): support both 1.17 and 1.19 servers 2021-12-08 18:32:01 +08:00
apps chore: workaround next build issue with web worker 2021-12-10 00:46:17 +08:00
common fix: ssr for file-manager and tcpip 2021-12-09 18:28:26 +08:00
libraries feat(scrcpy): support 1.18 new back key event 2021-12-09 00:18:21 +08:00
toolchain/ts-package-builder feat(scrcpy): support both 1.17 and 1.19 servers 2021-12-08 18:32:01 +08:00
.gitattributes chore: experimental moving to rush 2021-05-14 15:31:59 +08:00
.gitignore fix: unresolved dependencies of book 2021-06-09 18:01:06 +08:00
adb.NOTICE chore: add NOTICE from adb repo 2021-08-01 23:39:04 +08:00
codecov.yml chore: experimental moving to rush 2021-05-14 15:31:59 +08:00
LICENSE chore: put license files everywhere 2021-08-01 23:45:12 +08:00
README.md doc: add how to develop 2021-06-18 11:09:21 +08:00
rush.json wip: add scrcpy module 2021-10-18 09:34:45 +08:00

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.