Rust implementation of commonly used ADB commands
Get all the photos taken on a certain day
use adb_utils::{manager::ADBManager, shell::ADBList};
fn main() {
let mut manager = ADBManager::new();
manager.cwd("/storage/emulated/0/DCIM/Camera");
if let Err(err) = manager.connect("192.168.1.133", 36415) {
println!("Could not connect: {err}");
return;
}
let mut list = ADBList::default();
let files = manager.execute_path_based(&mut list).unwrap().to_vec();
files
.iter()
.filter(|file| file.starts_with("20230827"))
.for_each(|file| println!("{file}"));
// 20230827_132733.jpg
// 20230827_141248.jpg
}
More usage examples here.
The list of commands is from running adb help
- devices
- help
- version
- connect
- disconnect
- pair
- forward
- ppp TTY
- reverse
- mdns check
- mdns services
- push
- pull
- sync
- shell
- emu command
- install
- install-multiple
- uninstall
- bugreport
- jdwp
- logcat
- disable-verify
- enable-verify
- keygen
- wait-for
- get-state
- get-serialno
- get-devpath
- remount
- reboot
- sideload
- root
- unroot
- usb
- tcpip
- start-server
- kill-server
- reconnect
- reconnect device
- reconnect offline
- attach
- detach
- adb trace
- adb vendor keys
- android serial
- android log tags
- adb local transport max port
- adb mdns auto connect