Merge "Use pragma WAL in db connections" into main am: 3df6966cd6
Original change: https://android-review.googlesource.com/c/platform/system/security/+/2763288
Change-Id: I62e8915eeb935c11f7e54ff788f513e9cab1694b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/keystore2/Android.bp b/keystore2/Android.bp
index af5f117..cfac54d 100644
--- a/keystore2/Android.bp
+++ b/keystore2/Android.bp
@@ -42,11 +42,11 @@
"android.security.metrics-rust",
"android.security.rkp_aidl-rust",
"libanyhow",
- "libkeystore2_flags_rust",
"libbinder_rs",
"libkeystore2_aaid-rust",
"libkeystore2_apc_compat-rust",
"libkeystore2_crypto_rust",
+ "libkeystore2_flags_rust",
"libkeystore2_km_compat",
"libkeystore2_selinux",
"libkeystore2_hal_names_rust",
diff --git a/keystore2/src/database.rs b/keystore2/src/database.rs
index d6bfaf2..3a2f50f 100644
--- a/keystore2/src/database.rs
+++ b/keystore2/src/database.rs
@@ -55,11 +55,6 @@
error::{Error as KsError, ErrorCode, ResponseCode},
super_key::SuperKeyType,
};
-use anyhow::{anyhow, Context, Result};
-use std::{convert::TryFrom, convert::TryInto, ops::Deref, time::SystemTimeError};
-use utils as db_utils;
-use utils::SqlField;
-
use android_hardware_security_keymint::aidl::android::hardware::security::keymint::{
HardwareAuthToken::HardwareAuthToken, HardwareAuthenticatorType::HardwareAuthenticatorType,
SecurityLevel::SecurityLevel,
@@ -70,6 +65,11 @@
use android_system_keystore2::aidl::android::system::keystore2::{
Domain::Domain, KeyDescriptor::KeyDescriptor,
};
+use anyhow::{anyhow, Context, Result};
+use keystore2_flags;
+use std::{convert::TryFrom, convert::TryInto, ops::Deref, time::SystemTimeError};
+use utils as db_utils;
+use utils::SqlField;
use keystore2_crypto::ZVec;
use lazy_static::lazy_static;
@@ -1036,6 +1036,11 @@
break;
}
+ if keystore2_flags::wal_db_journalmode() {
+ // Update journal mode to WAL
+ conn.pragma_update(None, "journal_mode", "WAL")
+ .context("Failed to connect in WAL mode for persistent db")?;
+ }
// Drop the cache size from default (2M) to 0.5M
conn.execute("PRAGMA persistent.cache_size = -500;", params![])
.context("Failed to decrease cache size for persistent db")?;