diff --git a/README.md b/README.md index a870c15d..ae6776a3 100644 --- a/README.md +++ b/README.md @@ -2,21 +2,33 @@ [![MIT license](https://img.shields.io/github/license/yume-chan/ya-webadb)](https://github.com/yume-chan/ya-webadb/blob/main/LICENSE) -A library and application for browsers to interact with Android devices via ADB. +A library and a Web app that allow browsers to interact with Android devices via ADB (Android Debugging Protocol). -All features are working on Chrome for Android, use a C-to-C cable or run WebSockify in Termux to connect. +All features work on Chrome for Android, use a C-to-C (or OTG) cable or via WebSockify running in Termux (see [compatibility table](#compatibility) below). -[🚀 Online Demo](https://yume-chan.github.io/ya-webadb) +[🚀 Web App](https://tango-web-mu.vercel.app/) | [Old demo](https://yume-chan.github.io/ya-webadb) For USB connection, close Google ADB (Run `adb kill-server` in a terminal or close `adb.exe` from Task Manager) and all programs that may use ADB (e.g. Android Studio, Visual Studio, Godot Editor, etc.) before connecting. +## Working Modes + +### Direct Connection Mode + +In this mode, Google ADB is not required for this library to communicate with Android devices (in fact, Google ADB must not be running in order to use this mode). + +This mode is suitable for running on end-users' devices where Google ADB is not installed, or on mobile devices where Google ADB is not available. + +### Google ADB Client Mode + +In this mode, this library talks to a Google ADB server, which is either running on the same machine or on a remote machine. This allows other ADB-based tools to work alongside this library. + ## Compatibility | Connection | Chromium-based Browsers | Firefox | Node.js | | ----------------------------------------- | ------------------------------ | --------- | ----------------------------- | | USB cable | Supported using [WebUSB] API | No | Supported using `usb` package | | Wireless through [WebSocket] 1 | Supported | Supported | Possible using `ws` package | -| Wireless through TCP | WIP using [Direct Sockets] API | No | Possible using `net` module | +| Wireless through TCP | Waiting for [Direct Sockets] API | No | Possible using `net` module | [webusb]: https://wicg.github.io/webusb/ [websocket]: https://websockets.spec.whatwg.org/ diff --git a/apps/cli/package.json b/apps/cli/package.json index c3e89b01..8910f107 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@yume-chan/adb": "workspace:^0.0.20", - "@yume-chan/adb-server-node-tcp": "workspace:^0.0.19", + "@yume-chan/adb-server-node-tcp": "workspace:^0.0.20", "@yume-chan/android-bin": "workspace:^0.0.20", "@yume-chan/stream-extra": "workspace:^0.0.20", "commander": "^10.0.1", diff --git a/common/changes/@yume-chan/adb-credential-web/main_2023-08-25-21-49.json b/common/changes/@yume-chan/adb-credential-web/main_2023-08-25-21-49.json new file mode 100644 index 00000000..29d9e662 --- /dev/null +++ b/common/changes/@yume-chan/adb-credential-web/main_2023-08-25-21-49.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb-credential-web", + "comment": "Change to save private keys in IndexedDB, allow usage from Web Workers", + "type": "none" + } + ], + "packageName": "@yume-chan/adb-credential-web" +} diff --git a/common/changes/@yume-chan/adb/main_2023-08-25-21-49.json b/common/changes/@yume-chan/adb/main_2023-08-25-21-49.json new file mode 100644 index 00000000..3d40395e --- /dev/null +++ b/common/changes/@yume-chan/adb/main_2023-08-25-21-49.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb", + "comment": "Add typed errors for `framebuffer` command when current app disables screen capture", + "type": "none" + } + ], + "packageName": "@yume-chan/adb" +} diff --git a/common/changes/@yume-chan/adb/main_2023-08-25-21-50.json b/common/changes/@yume-chan/adb/main_2023-08-25-21-50.json new file mode 100644 index 00000000..c6855a1f --- /dev/null +++ b/common/changes/@yume-chan/adb/main_2023-08-25-21-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb", + "comment": "Change `AdbDaemonTransport` class to automatically close the connection, unless the new `preserveConnection` option is `true`", + "type": "none" + } + ], + "packageName": "@yume-chan/adb" +} diff --git a/common/changes/@yume-chan/adb/main_2023-08-25-21-51.json b/common/changes/@yume-chan/adb/main_2023-08-25-21-51.json new file mode 100644 index 00000000..8a751935 --- /dev/null +++ b/common/changes/@yume-chan/adb/main_2023-08-25-21-51.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/adb", + "comment": "Add `recursive` and `force` options to `rm` method, allow deleting folders", + "type": "none" + } + ], + "packageName": "@yume-chan/adb" +} diff --git a/common/changes/@yume-chan/android-bin/main_2023-08-25-21-49.json b/common/changes/@yume-chan/android-bin/main_2023-08-25-21-49.json new file mode 100644 index 00000000..a787733f --- /dev/null +++ b/common/changes/@yume-chan/android-bin/main_2023-08-25-21-49.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/android-bin", + "comment": "Add support to stop `bugreport`", + "type": "none" + } + ], + "packageName": "@yume-chan/android-bin" +} diff --git a/common/changes/@yume-chan/android-bin/main_2023-08-25-21-50.json b/common/changes/@yume-chan/android-bin/main_2023-08-25-21-50.json new file mode 100644 index 00000000..5807c0df --- /dev/null +++ b/common/changes/@yume-chan/android-bin/main_2023-08-25-21-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@yume-chan/android-bin", + "comment": "Merge `bugreport` and `bugreportz` wrappers, providing an `automatic` method to choose the best available bugreport method", + "type": "none" + } + ], + "packageName": "@yume-chan/android-bin" +} diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index ecb6b437..126eac71 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -14,7 +14,7 @@ importers: specifier: workspace:^0.0.20 version: link:../../libraries/adb '@yume-chan/adb-server-node-tcp': - specifier: workspace:^0.0.19 + specifier: workspace:^0.0.20 version: link:../../libraries/adb-server-node-tcp '@yume-chan/android-bin': specifier: workspace:^0.0.20 diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json index 6ba01323..21a06ea7 100644 --- a/common/config/rush/repo-state.json +++ b/common/config/rush/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "a5141c6066b3d19a36bfe08201796dd2828a4130", + "pnpmShrinkwrapHash": "8baf2e2e007bb49d5230ce1eded20db5d82dd1ff", "preferredVersionsHash": "bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f" } diff --git a/libraries/adb-server-node-tcp/package.json b/libraries/adb-server-node-tcp/package.json index 194719cb..44a1559c 100644 --- a/libraries/adb-server-node-tcp/package.json +++ b/libraries/adb-server-node-tcp/package.json @@ -1,7 +1,6 @@ { "name": "@yume-chan/adb-server-node-tcp", - "private": true, - "version": "0.0.19", + "version": "0.0.20", "description": "ADB server connection for `@yume-chan/adb` using Node.js' `net` module", "keywords": [ "adb", diff --git a/rush.json b/rush.json index 5948b858..da39da61 100644 --- a/rush.json +++ b/rush.json @@ -503,7 +503,9 @@ }, { "packageName": "@yume-chan/adb-server-node-tcp", - "projectFolder": "libraries/adb-server-node-tcp" + "projectFolder": "libraries/adb-server-node-tcp", + "shouldPublish": true, + "versionPolicyName": "adb" }, { "packageName": "@yume-chan/adb-cli",