30 releases (14 stable)
new 2.0.5 | Nov 18, 2024 |
---|---|
2.0.1 | Oct 31, 2024 |
1.0.7 | Sep 28, 2024 |
1.0.3 | Jul 13, 2024 |
0.1.5 | Jan 23, 2022 |
#159 in Debugging
741 downloads per month
Used in adb_cli
125KB
3K
SLoC
adb_client
Rust library implementing ADB protocol.
Installation
Add adb_client
crate as a dependency by simply adding it to your Cargo.toml
:
[dependencies]
adb_client = "*"
Examples
Get available ADB devices
use adb_client::ADBServer;
use std::net::{SocketAddrV4, Ipv4Addr};
// A custom server address can be provided
let server_ip = Ipv4Addr::new(127, 0, 0, 1);
let server_port = 5037;
let mut server = ADBServer::new(SocketAddrV4::new(server_ip, server_port));
server.devices();
Using ADB server as proxy
[TCP] Launch a command on device
use adb_client::{ADBServer, ADBDeviceExt};
let mut server = ADBServer::default();
let mut device = server.get_device().expect("cannot get device");
device.shell_command(["df", "-h"],std::io::stdout());
[TCP] Push a file to the device
use adb_client::ADBServer;
use std::net::Ipv4Addr;
use std::fs::File;
use std::path::Path;
let mut server = ADBServer::default();
let mut device = server.get_device().expect("cannot get device");
let mut input = File::open(Path::new("/tmp/f")).expect("Cannot open file");
device.push(&mut input, "/data/local/tmp");
Interacting directly with device
[USB] Launch a command on device
use adb_client::{ADBUSBDevice, ADBDeviceExt};
let vendor_id = 0x04e8;
let product_id = 0x6860;
let mut device = ADBUSBDevice::new(vendor_id, product_id).expect("cannot find device");
device.shell_command(["df", "-h"],std::io::stdout());
[USB] Push a file to the device
use adb_client::{ADBUSBDevice, ADBDeviceExt};
use std::fs::File;
use std::path::Path;
let vendor_id = 0x04e8;
let product_id = 0x6860;
let mut device = ADBUSBDevice::new(vendor_id, product_id).expect("cannot find device");
let mut input = File::open(Path::new("/tmp/f")).expect("Cannot open file");
device.push(&mut input, "/data/local/tmp");
Dependencies
~12–38MB
~612K SLoC