adb_client
Rust library implementing ADB protocol.
Installation
Add adb_client
crate as a dependency by simply adding it to your Cargo.toml
:
[]
= "*"
Benchmarks
Benchmarks run on v2.0.6
, on a Samsung S10 SM-G973F device and an Intel i7-1265U CPU laptop
ADBServerDevice
push vs adb push
ADBServerDevice
performs all operations by using adb server as a bridge.
File size | Sample size | ADBServerDevice |
adb |
Difference |
---|---|---|---|---|
10 MB | 100 | 350,79 ms | 356,30 ms | -1,57 % |
500 MB | 50 | 15,60 s | 15,64 s | -0,25 % |
1 GB | 20 | 31,09 s | 31,12 s | -0,10 % |
Examples
Get available ADB devices
use ADBServer;
use ;
// A custom server address can be provided
let server_ip = new;
let server_port = 5037;
let mut server = new;
server.devices;
Using ADB server as bridge
Launch a command on device
use ;
let mut server = default;
let mut device = server.get_device.expect;
device.shell_command;
Push a file to the device
use ADBServer;
use Ipv4Addr;
use File;
use Path;
let mut server = default;
let mut device = server.get_device.expect;
let mut input = open.expect;
device.push;
Interact directly with end devices
(USB) Launch a command on device
use ;
let vendor_id = 0x04e8;
let product_id = 0x6860;
let mut device = new.expect;
device.shell_command;
(USB) Push a file to the device
use ;
use File;
use Path;
let vendor_id = 0x04e8;
let product_id = 0x6860;
let mut device = new.expect;
let mut input = open.expect;
device.push;
(TCP) Get a shell from device
use ;
use ;
let device_ip = V4;
let device_port = 43210;
let mut device = new.expect;
device.shell;