https://github.com/GoogleChromeLabs/wadb
A TypeScript implementation of the Android Debug Bridge(ADB) protocol over WebUSB
https://github.com/GoogleChromeLabs/wadb
Last synced: about 1 year ago
JSON representation
A TypeScript implementation of the Android Debug Bridge(ADB) protocol over WebUSB
- Host: GitHub
- URL: https://github.com/GoogleChromeLabs/wadb
- Owner: GoogleChromeLabs
- License: apache-2.0
- Created: 2020-04-21T09:13:28.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-30T17:17:59.000Z (over 1 year ago)
- Last Synced: 2024-11-26T21:02:26.549Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 1.08 MB
- Stars: 162
- Watchers: 7
- Forks: 16
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome - wadb - Android Debug Bridge (ADB) protocol library (Libraries)
README
# An ADB Implementation using WebUSB
This project is a TypeScript implementation of the Android Debug Bridge(ADB) protocol over WebUSB.
The implementation inspired on the [webadb.js][1], with the main difference being that
implementation supports multiple concurrent streams.
This is not an exhaustive implementation of the protocol and hasn't been tested on a wide range of
devices.
A non-exhaustive list of things that are not implemented:
- `STAT`: reads stats from the Android filesystem (file size, mode and time).
## Usage
### Connecting to a device
```typescript
const options: Options = {
debug: true,
useChecksum: false,
dump: false,
keySize: 2048,
};
const transport = await WebUsbTransport.open(options);
const adbClient = new AdbClient(transport, options, keyStore);
await adbClient.connect();
```
### Downloading a file from the device (adb pull)
```typescript
const result: Blob = await adbClient.pull('/sdcard/my-video.mp4');
```
### Sending shell commands
```typescript
const result: string = await adbClient.shell('uname -a');
```
### Interactive shell
```typescript
const callback = (output: string) => {
console.log('server: ' + output);
};
const shell: Shell = await adbClient.interactiveShell(callback);
await shell.write('ls /sdcard\n');
await shell.close();
```
## Related Documents
- https://github.com/webadb/webadb.js
- https://github.com/cstyan/adbDocumentation
- https://android.googlesource.com/platform/system/core/+/master/adb/
## Contributing
See [CONTRIBUTING](./CONTRIBUTING.md) for more.
## License
See [LICENSE](./LICENSE) for more.
## Disclaimer
This is not a Google product.
[1]: https://github.com/webadb/webadb.js