Merge changes from topics "librustutils-cutils", "librustutils-properties"
* changes:
Migrate to the librustutils cutils bindings.
Migrate to the librustutils system property bindings.
diff --git a/keystore2/Android.bp b/keystore2/Android.bp
index 723c4c9..18d082b 100644
--- a/keystore2/Android.bp
+++ b/keystore2/Android.bp
@@ -40,7 +40,6 @@
"android.system.keystore2-V1-rust",
"libanyhow",
"libbinder_rs",
- "libcutils_bindgen",
"libkeystore2_aaid-rust",
"libkeystore2_apc_compat-rust",
"libkeystore2_crypto_rust",
@@ -54,7 +53,7 @@
"liblog_rust",
"librand",
"librusqlite",
- "libsystem_properties-rust",
+ "librustutils",
"libthiserror",
],
shared_libs: [
diff --git a/keystore2/legacykeystore/Android.bp b/keystore2/legacykeystore/Android.bp
index fb6f60f..da6aa8a 100644
--- a/keystore2/legacykeystore/Android.bp
+++ b/keystore2/legacykeystore/Android.bp
@@ -31,10 +31,10 @@
"android.security.legacykeystore-rust",
"libanyhow",
"libbinder_rs",
- "libcutils_bindgen",
"libkeystore2",
"liblog_rust",
"librusqlite",
+ "librustutils",
"libthiserror",
],
}
@@ -49,11 +49,11 @@
"android.security.legacykeystore-rust",
"libanyhow",
"libbinder_rs",
- "libcutils_bindgen",
"libkeystore2",
"libkeystore2_test_utils",
"liblog_rust",
"librusqlite",
+ "librustutils",
"libthiserror",
],
}
diff --git a/keystore2/legacykeystore/lib.rs b/keystore2/legacykeystore/lib.rs
index e57f159..da60297 100644
--- a/keystore2/legacykeystore/lib.rs
+++ b/keystore2/legacykeystore/lib.rs
@@ -161,7 +161,7 @@
self.with_transaction(TransactionBehavior::Immediate, |tx| {
tx.execute(
"DELETE FROM profiles WHERE cast ( ( owner/? ) as int) = ?;",
- params![cutils_bindgen::AID_USER_OFFSET, user_id],
+ params![rustutils::users::AID_USER_OFFSET, user_id],
)
.context("In remove_uid: Failed to delete.")
})?;
@@ -600,9 +600,9 @@
.expect("Failed to open database.");
// Insert three entries for owner 2.
- db.put(2 + 2 * cutils_bindgen::AID_USER_OFFSET, "test1", TEST_BLOB1)
+ db.put(2 + 2 * rustutils::users::AID_USER_OFFSET, "test1", TEST_BLOB1)
.expect("Failed to insert test1.");
- db.put(4 + 2 * cutils_bindgen::AID_USER_OFFSET, "test2", TEST_BLOB2)
+ db.put(4 + 2 * rustutils::users::AID_USER_OFFSET, "test2", TEST_BLOB2)
.expect("Failed to insert test2.");
db.put(3, "test3", TEST_BLOB3).expect("Failed to insert test3.");
@@ -610,12 +610,12 @@
assert_eq!(
Vec::<String>::new(),
- db.list(2 + 2 * cutils_bindgen::AID_USER_OFFSET).expect("Failed to list entries.")
+ db.list(2 + 2 * rustutils::users::AID_USER_OFFSET).expect("Failed to list entries.")
);
assert_eq!(
Vec::<String>::new(),
- db.list(4 + 2 * cutils_bindgen::AID_USER_OFFSET).expect("Failed to list entries.")
+ db.list(4 + 2 * rustutils::users::AID_USER_OFFSET).expect("Failed to list entries.")
);
assert_eq!(vec!["test3".to_string(),], db.list(3).expect("Failed to list entries."));
diff --git a/keystore2/src/metrics_store.rs b/keystore2/src/metrics_store.rs
index 4634da1..741d65e 100644
--- a/keystore2/src/metrics_store.rs
+++ b/keystore2/src/metrics_store.rs
@@ -46,10 +46,10 @@
};
use anyhow::{Context, Result};
use lazy_static::lazy_static;
+use rustutils::system_properties::PropertyWatcherError;
use std::collections::HashMap;
use std::sync::Mutex;
use std::time::{Duration, SystemTime, UNIX_EPOCH};
-use system_properties::PropertyWatcherError;
// Note: Crash events are recorded at keystore restarts, based on the assumption that keystore only
// gets restarted after a crash, during a boot cycle.
@@ -626,7 +626,8 @@
}
};
- if let Err(e) = system_properties::write(KEYSTORE_CRASH_COUNT_PROPERTY, &new_count.to_string())
+ if let Err(e) =
+ rustutils::system_properties::write(KEYSTORE_CRASH_COUNT_PROPERTY, &new_count.to_string())
{
log::error!(
concat!(
@@ -640,7 +641,7 @@
/// Read the system property: keystore.crash_count.
pub fn read_keystore_crash_count() -> Result<i32> {
- system_properties::read("keystore.crash_count")
+ rustutils::system_properties::read("keystore.crash_count")
.context("In read_keystore_crash_count: Failed read property.")?
.parse::<i32>()
.map_err(std::convert::Into::into)
diff --git a/keystore2/src/super_key.rs b/keystore2/src/super_key.rs
index 4b71bb5..a1e4c48 100644
--- a/keystore2/src/super_key.rs
+++ b/keystore2/src/super_key.rs
@@ -46,13 +46,13 @@
aes_gcm_decrypt, aes_gcm_encrypt, generate_aes256_key, generate_salt, Password, ZVec,
AES_256_KEY_LENGTH,
};
+use rustutils::system_properties::PropertyWatcher;
use std::{
collections::HashMap,
sync::Arc,
sync::{Mutex, Weak},
};
use std::{convert::TryFrom, ops::Deref};
-use system_properties::PropertyWatcher;
const MAX_MAX_BOOT_LEVEL: usize = 1_000_000_000;
/// Allow up to 15 seconds between the user unlocking using a biometric, and the auth
diff --git a/keystore2/src/utils.rs b/keystore2/src/utils.rs
index d71a4fc..f6d92ee 100644
--- a/keystore2/src/utils.rs
+++ b/keystore2/src/utils.rs
@@ -188,16 +188,15 @@
}
/// AID offset for uid space partitioning.
-pub const AID_USER_OFFSET: u32 = cutils_bindgen::AID_USER_OFFSET;
+pub const AID_USER_OFFSET: u32 = rustutils::users::AID_USER_OFFSET;
/// AID of the keystore process itself, used for keys that
/// keystore generates for its own use.
-pub const AID_KEYSTORE: u32 = cutils_bindgen::AID_KEYSTORE;
+pub const AID_KEYSTORE: u32 = rustutils::users::AID_KEYSTORE;
/// Extracts the android user from the given uid.
pub fn uid_to_android_user(uid: u32) -> u32 {
- // Safety: No memory access
- unsafe { cutils_bindgen::multiuser_get_user_id(uid) }
+ rustutils::users::multiuser_get_user_id(uid)
}
/// This module provides helpers for simplified use of the watchdog module.