OSDN Git Service

Add KeyStore storage type to Settings UI
authorKenny Root <kroot@google.com>
Fri, 29 Mar 2013 18:12:55 +0000 (11:12 -0700)
committerKenny Root <kroot@google.com>
Fri, 29 Mar 2013 21:23:30 +0000 (14:23 -0700)
Give the user an idea of what kind of credential storage is in use on
this device for keystore daemon.

(cherry picked from commit 39b56008be0ad0b50fd65ec8fc1c6f9d81d60959)

Change-Id: Id89a1e210b3627914f080b0925bd0d0585872dd2

res/values/strings.xml
res/xml/security_settings_misc.xml
src/com/android/settings/SecuritySettings.java

index 7b028db..7c9ccd3 100644 (file)
     <string name="trusted_credentials">Trusted credentials</string>
     <!-- Summary of preference to display trusted credentials (aka CA certificates) [CHAR LIMIT=NONE] -->
     <string name="trusted_credentials_summary">Display trusted CA certificates</string>
+    <!-- Title of preference of what type of credential storage this device has: hardware or software [CHAR LIMIT=30] -->
+    <string name="credential_storage_type">Storage type</string>
+    <!-- Summary text for preference showing what type of credential storage this device has when it is stored in a hardware-backed storage (as opposed to "software only") [CHAR LIMIT=NONE] -->
+    <string name="credential_storage_type_hardware">Hardware-backed</string>
+    <!-- Summary text for preference showing what type of credential storage this device has when it is stored in software only (as opposed to "hardware-backed") [CHAR LIMIT=NONE] -->
+    <string name="credential_storage_type_software">Software only</string>
 
     <!-- Message to draw an unlock pattern when installing credentials -->
     <string name="credentials_install_gesture_prompt">Draw your unlock pattern</string>
index ee87e51..10fc98f 100644 (file)
     <PreferenceCategory android:key="credentials_management"
             android:title="@string/credentials_title"
             android:persistent="false">
+        <Preference android:key="credential_storage_type"
+                android:title="@string/credential_storage_type"
+                style="?android:attr/preferenceInformationStyle"
+                android:persistent="false" />
+
         <Preference android:title="@string/trusted_credentials"
                 android:summary="@string/trusted_credentials_summary"
                 android:persistent="false"
index 00a0e09..971a196 100644 (file)
@@ -73,6 +73,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
     // Misc Settings
     private static final String KEY_SIM_LOCK = "sim_lock";
     private static final String KEY_SHOW_PASSWORD = "show_password";
+    private static final String KEY_CREDENTIAL_STORAGE_TYPE = "credential_storage_type";
     private static final String KEY_RESET_CREDENTIALS = "reset_credentials";
     private static final String KEY_TOGGLE_INSTALL_APPLICATIONS = "toggle_install_applications";
     private static final String KEY_TOGGLE_VERIFY_APPLICATIONS = "toggle_verify_applications";
@@ -91,6 +92,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
 
     private CheckBoxPreference mShowPassword;
 
+    private KeyStore mKeyStore;
     private Preference mResetCredentials;
 
     private CheckBoxPreference mToggleAppInstallation;
@@ -231,6 +233,14 @@ public class SecuritySettings extends SettingsPreferenceFragment
 
         // Credential storage, only for primary user
         if (mIsPrimary) {
+            mKeyStore = KeyStore.getInstance();
+            Preference credentialStorageType = root.findPreference(KEY_CREDENTIAL_STORAGE_TYPE);
+
+            final int storageSummaryRes =
+                    mKeyStore.isHardwareBacked() ? R.string.credential_storage_type_hardware
+                            : R.string.credential_storage_type_software;
+            credentialStorageType.setSummary(storageSummaryRes);
+
             mResetCredentials = root.findPreference(KEY_RESET_CREDENTIALS);
         } else {
             removePreference(KEY_CREDENTIALS_MANAGER);
@@ -427,8 +437,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
         }
 
         if (mResetCredentials != null) {
-            KeyStore keyStore = KeyStore.getInstance();
-            mResetCredentials.setEnabled(!keyStore.isUnlocked());
+            mResetCredentials.setEnabled(!mKeyStore.isUnlocked());
         }
     }