#android #adb #encryption-key #cli

bin+lib adborc

分布式 Android 设备网络的协调器

1 个不稳定版本

0.1.0 2022 年 12 月 15 日

#1840 in 命令行工具

Apache-2.0

360KB
8K SLoC

AdbOrc

AdbOrc 使创建伪分布式 Android 设备网络变得容易。它是对 adb 的简单封装,允许您轻松地将设备与其他网络用户共享。在网络内部安全地共享设备用于测试、调试或开发。

概述

AdbOrc 中网络节点的操作模式有三种

  1. 供应商 - 网络上连接一个或多个 Android 设备的机器。《供应商》,正如其名所示,向网络提供设备。网络中可以有任意数量的 供应商

  2. 消费者 - 网络上想要使用一个或多个 Android 设备的机器。《消费者》,正如其名所示,从网络中消耗设备。网络中可以有任意数量的 消费者

  3. 市场制造商 - 网络上作为 供应商消费者 之间的中间人的机器。《市场制造商》负责匹配供应商和消费者以及处理网络的所有元数据。网络中恰好有一个 市场制造商。对于供应商和消费者,市场制造商作为网络的代理。

网络上的系统可以运行上述模式的任意组合。例如,一个系统可以同时是 供应商消费者。它也可以同时是 市场制造商消费者

将设备提供给网络就像以 供应商 的身份加入网络并选择您希望提供的设备一样简单。

要使用网络中的设备,您需要以 消费者 的身份加入网络并列出网络内的可用设备。然后您可以选择您希望使用的设备,并让 市场制造商 为您预留它们。一旦您使用完设备,您可以将其释放回网络。

所有预留设备仅供预留它们的 消费者 使用。设备可以通过 adb 直接使用。预留设备的屏幕镜像也由 AdbOrc 通过 scrcpy 直接支持。

供应商、消费者和MarketMaker之间的所有通信都使用Noise协议框架进行加密。加密密钥使用X25519曲线和ChaChaPoly密码套件生成,以Blake2s作为哈希函数。使用XX_25519_ChaChaPoly_BLAKE2s握手模式。

默认情况下,网络中供应商和消费者之间的设备通信未加密。然而,供应商可以选择使用相同的Noise协议密码套件加密与消费者之间的设备通信(使用KK模式)。这可以通过在作为供应商加入网络时简单地启用secure_mode来实现。

使用方法

在机器上启动MarketMaker以启动网络

$ adborc marketmaker start

从另一台机器作为供应商加入网络

$ adborc supplier start <MarketMaker_IP>

# Or, if you wish to enable secure mode
$ adborc supplier start <MarketMaker_IP> --secure

# Supply specific devices to the network
$ adborc supplier supply --devices "<android_serial1>,<android_serial2>,..."

# Or, supply all connected devices
$ adborc supplier supply

从另一台机器作为消费者加入网络

$ adborc consumer start <MarketMaker_IP>

# List available devices
$ adborc consumer list-available

# Reserve devices
$ adborc consumer reserve <device_id>

# Use the devices via adb
$ adb shell

# Or, use the devices via scrcpy
$ adborc consumer scrcpy <device_id>

有关更详细的使用说明,请参阅命令参考

安装

从源代码安装

# Assuming you have the rust toolchain installed
$ cargo install --git https://github.com/mobi-nex/adborc.git 

# Or, if you want to build from local source
$ git clone https://github.com/mobi-nex/adborc.git
$ cd adborc

$ cargo install --path .

从crates.io安装

# Assuming you have the rust toolchain installed
$ cargo install adborc

注意:AdbOrc在消费者/供应商模式下需要系统上安装adb。如果您想使用设备屏幕镜像,还需要在系统上安装scrcpy。有关更多详细信息,请参阅依赖关系部分。

从发行版(仅限Windows)

您可以从这里下载最新发行版。发行版包含所有依赖项,包括adb和scrcpy。只需解压缩存档,然后从解压缩目录中在命令行上运行adborc.exe。

依赖项

AdbOrc依赖于以下内容

  1. adb - Android调试桥
  2. scrcpy - 可选,用于屏幕镜像

对于MarketMaker模式,上述所有内容都不需要。

为了使消费者模式正常工作,所需的adb最低版本是1.0.41

可选地,可以使用scrcpy进行屏幕镜像。所需的scrcpy最低版本是1.13

为了使供应商模式正常工作,所需的adb最低版本是1.0.41,最小修订号为33.0.1

注意:scrcpy对于供应商模式不是必需的。

您可以使用以下方式覆盖AdbOrc使用的默认adbscrcpy

# Full path to the adb executable
$ adborc set-adb-path <path_to_adb>

# Full path to the scrcpy executable
$ adborc set-scrcpy-path <path_to_scrcpy>

有关更多详细信息,请参阅命令参考

贡献

欢迎贡献!请随时提交问题和拉取请求。

只需在提交PR之前运行cargo fmtcargo clippy即可。

许可证

AdbOrc根据Apache License 2.0授权。有关更多详细信息,请参阅LICENSE

依赖项

~9–20MB
~251K SLoC