Schematize Crypto system properties
Properties accessed across partitions are now schematized and will
become APIs to make explicit interfaces among partitions.
Bug: 117924132
Test: m -j
Change-Id: I65a6ce1a682687702f4c8b5c2e054eaaf91c389b
Merged-In: I65a6ce1a682687702f4c8b5c2e054eaaf91c389b
diff --git a/src/com/android/settings/development/FileEncryptionPreferenceController.java b/src/com/android/settings/development/FileEncryptionPreferenceController.java
index f8326ab..731f487 100644
--- a/src/com/android/settings/development/FileEncryptionPreferenceController.java
+++ b/src/com/android/settings/development/FileEncryptionPreferenceController.java
@@ -19,8 +19,8 @@
import android.content.Context;
import android.os.RemoteException;
import android.os.ServiceManager;
-import android.os.SystemProperties;
import android.os.storage.IStorageManager;
+import android.sysprop.CryptoProperties;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import android.text.TextUtils;
@@ -35,9 +35,6 @@
private static final String KEY_CONVERT_FBE = "convert_to_file_encryption";
private static final String KEY_STORAGE_MANAGER = "mount";
- @VisibleForTesting
- static final String FILE_ENCRYPTION_PROPERTY_KEY = "ro.crypto.type";
-
private final IStorageManager mStorageManager;
public FileEncryptionPreferenceController(Context context) {
@@ -66,8 +63,7 @@
@Override
public void updateState(Preference preference) {
- if (!TextUtils.equals("file",
- SystemProperties.get(FILE_ENCRYPTION_PROPERTY_KEY, "none" /* default */))) {
+ if (!TextUtils.equals("file", CryptoProperties.type().orElse("none"))) {
return;
}
diff --git a/tests/robotests/src/com/android/settings/development/FileEncryptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/FileEncryptionPreferenceControllerTest.java
index dd16a28..afd465a 100644
--- a/tests/robotests/src/com/android/settings/development/FileEncryptionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/FileEncryptionPreferenceControllerTest.java
@@ -16,7 +16,6 @@
package com.android.settings.development;
-import static com.android.settings.development.FileEncryptionPreferenceController.FILE_ENCRYPTION_PROPERTY_KEY;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyString;
@@ -26,8 +25,8 @@
import android.content.Context;
import android.os.RemoteException;
-import android.os.SystemProperties;
import android.os.storage.IStorageManager;
+import android.sysprop.CryptoProperties;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -92,7 +91,7 @@
ReflectionHelpers.setField(mController, "mStorageManager", mStorageManager);
when(mStorageManager.isConvertibleToFBE()).thenReturn(true);
mController.displayPreference(mPreferenceScreen);
- SystemProperties.set(FILE_ENCRYPTION_PROPERTY_KEY, "foobar");
+ CryptoProperties.type("foobar");
mController.updateState(mPreference);
@@ -106,7 +105,7 @@
ReflectionHelpers.setField(mController, "mStorageManager", mStorageManager);
when(mStorageManager.isConvertibleToFBE()).thenReturn(true);
mController.displayPreference(mPreferenceScreen);
- SystemProperties.set(FILE_ENCRYPTION_PROPERTY_KEY, "file");
+ CryptoProperties.type("file");
mController.updateState(mPreference);