keystore2: Use libbinder_rs Strong references for Binder objects
Update keystore2 to use libbinder_rs Strong<> and Weak<> references for
Binder objects rather than just Box<dyn Interface>.
Bug: 175584883
Test: atest keystore2_test
Change-Id: Ic234ce5ed007a265769a72043d77eb817a21b8ea
diff --git a/keystore2/src/gc.rs b/keystore2/src/gc.rs
index 692cb7e..fbb1cf6 100644
--- a/keystore2/src/gc.rs
+++ b/keystore2/src/gc.rs
@@ -21,6 +21,7 @@
use crate::globals::{get_keymint_dev_by_uuid, DB};
use crate::{error::map_km_error, globals::ASYNC_TASK};
use android_hardware_security_keymint::aidl::android::hardware::security::keymint::IKeyMintDevice::IKeyMintDevice;
+use android_hardware_security_keymint::binder::Strong;
use anyhow::Result;
#[derive(Clone, Copy)]
@@ -41,7 +42,7 @@
let mut db = db.borrow_mut();
if let Some((key_id, mut key_entry)) = db.get_unreferenced_key()? {
if let Some(blob) = key_entry.take_km_blob() {
- let km_dev: Box<dyn IKeyMintDevice> =
+ let km_dev: Strong<dyn IKeyMintDevice> =
get_keymint_dev_by_uuid(key_entry.km_uuid())
.map(|(dev, _)| dev)?
.get_interface()?;