fix: #108
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
use std::{fs::File, path::Path};
|
||||
|
||||
use rand::Rng;
|
||||
|
||||
use crate::{
|
||||
ADBMessageTransport, Result,
|
||||
device::{MessageWriter, adb_message_device::ADBMessageDevice},
|
||||
@@ -16,15 +14,11 @@ impl<T: ADBMessageTransport> ADBMessageDevice<T> {
|
||||
|
||||
let file_size = apk_file.metadata()?.len();
|
||||
|
||||
let mut rng = rand::rng();
|
||||
|
||||
let local_id = rng.random();
|
||||
|
||||
self.open_session(format!("exec:cmd package 'install' -S {}\0", file_size).as_bytes())?;
|
||||
|
||||
let transport = self.get_transport().clone();
|
||||
|
||||
let mut writer = MessageWriter::new(transport, local_id, self.get_remote_id()?);
|
||||
let mut writer = MessageWriter::new(transport, self.get_local_id()?, self.get_remote_id()?);
|
||||
|
||||
std::io::copy(&mut apk_file, &mut writer)?;
|
||||
|
||||
|
||||
@@ -189,12 +189,10 @@ impl ADBTransport for USBTransport {
|
||||
|
||||
fn disconnect(&mut self) -> crate::Result<()> {
|
||||
let message = ADBTransportMessage::new(MessageCommand::Clse, 0, 0, &[]);
|
||||
self.write_message(message)
|
||||
}
|
||||
}
|
||||
if let Err(e) = self.write_message(message) {
|
||||
log::error!("error while sending CLSE message: {e}");
|
||||
}
|
||||
|
||||
impl Drop for USBTransport {
|
||||
fn drop(&mut self) {
|
||||
if let Some(handle) = &self.handle {
|
||||
let endpoint = self.read_endpoint.as_ref().or(self.write_endpoint.as_ref());
|
||||
if let Some(endpoint) = &endpoint {
|
||||
@@ -204,6 +202,8 @@ impl Drop for USBTransport {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user