summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <cyanogenmod@cerqueira.org>2013-07-25 00:00:01 +0100
committerRicardo Cerqueira <cyanogenmod@cerqueira.org>2013-07-25 00:00:01 +0100
commit3ec8fd3289b85f77e8b1ed03e0b81f8f0a50870a (patch)
treead94ff4477367d58168ac7f36eb6cb9c0415226d
parent2e1fae116335f8aa258f7e10eadfdcb81e2f3735 (diff)
parentb256d69334d9141aefb3473d0839c31c9f396741 (diff)
downloadandroid_packages_apps_CertInstaller-3ec8fd3289b85f77e8b1ed03e0b81f8f0a50870a.tar.gz
android_packages_apps_CertInstaller-3ec8fd3289b85f77e8b1ed03e0b81f8f0a50870a.tar.bz2
android_packages_apps_CertInstaller-3ec8fd3289b85f77e8b1ed03e0b81f8f0a50870a.zip
Merge tag 'android-4.3_r2.1' into cm-10.2
Android 4.3 release 2.1
-rw-r--r--AndroidManifest.xml24
-rw-r--r--res/layout/name_credential_dialog.xml41
-rw-r--r--res/values-af/strings.xml5
-rw-r--r--res/values-am/strings.xml5
-rw-r--r--res/values-ar/strings.xml5
-rw-r--r--res/values-be/strings.xml5
-rw-r--r--res/values-bg/strings.xml5
-rw-r--r--res/values-ca/strings.xml7
-rw-r--r--res/values-cs/strings.xml5
-rw-r--r--res/values-da/strings.xml5
-rw-r--r--res/values-de/strings.xml11
-rw-r--r--res/values-el/strings.xml5
-rw-r--r--res/values-en-rGB/strings.xml5
-rw-r--r--res/values-es-rUS/strings.xml5
-rw-r--r--res/values-es/strings.xml5
-rw-r--r--res/values-et/strings.xml5
-rw-r--r--res/values-fa/strings.xml5
-rw-r--r--res/values-fi/strings.xml5
-rw-r--r--res/values-fr/strings.xml5
-rw-r--r--res/values-hi/strings.xml5
-rw-r--r--res/values-hr/strings.xml5
-rw-r--r--res/values-hu/strings.xml5
-rw-r--r--res/values-in/strings.xml5
-rw-r--r--res/values-it/strings.xml5
-rw-r--r--res/values-iw/strings.xml5
-rw-r--r--res/values-ja/strings.xml5
-rw-r--r--res/values-ko/strings.xml5
-rw-r--r--res/values-lt/strings.xml5
-rw-r--r--res/values-lv/strings.xml7
-rw-r--r--res/values-ms/strings.xml5
-rw-r--r--res/values-nb/strings.xml5
-rw-r--r--res/values-nl/strings.xml5
-rw-r--r--res/values-pl/strings.xml5
-rw-r--r--res/values-pt-rPT/strings.xml5
-rw-r--r--res/values-pt/strings.xml5
-rw-r--r--res/values-rm/strings.xml4
-rw-r--r--res/values-ro/strings.xml5
-rw-r--r--res/values-ru/strings.xml5
-rw-r--r--res/values-sk/strings.xml5
-rw-r--r--res/values-sl/strings.xml7
-rw-r--r--res/values-sr/strings.xml5
-rw-r--r--res/values-sv/strings.xml5
-rw-r--r--res/values-sw/strings.xml5
-rw-r--r--res/values-th/strings.xml5
-rw-r--r--res/values-tl/strings.xml5
-rw-r--r--res/values-tr/strings.xml5
-rw-r--r--res/values-uk/strings.xml5
-rw-r--r--res/values-vi/strings.xml5
-rw-r--r--res/values-zh-rCN/strings.xml5
-rw-r--r--res/values-zh-rTW/strings.xml5
-rw-r--r--res/values-zu/strings.xml5
-rw-r--r--res/values/strings.xml11
-rw-r--r--src/com/android/certinstaller/CertFile.java19
-rw-r--r--src/com/android/certinstaller/CertFileList.java1
-rw-r--r--src/com/android/certinstaller/CertInstaller.java44
-rw-r--r--src/com/android/certinstaller/CertInstallerMain.java18
-rw-r--r--src/com/android/certinstaller/CredentialHelper.java13
57 files changed, 389 insertions, 38 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 2791a41..b2880d6 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -5,6 +5,9 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <permission android:name="com.android.certinstaller.INSTALL_AS_USER"
+ android:protectionLevel="signature" />
+
<application android:label="@string/app_name"
android:allowBackup="false">
<activity android:name=".CertInstallerMain"
@@ -23,21 +26,24 @@
</intent-filter>
</activity>
- <activity android:name=".CertInstaller"
- android:theme="@style/Transparent"
- android:configChanges="orientation|keyboardHidden">
+ <activity-alias android:name=".InstallCertAsUser"
+ android:targetActivity=".CertInstallerMain"
+ android:permission="com.android.certinstaller.INSTALL_AS_USER">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
+ <action android:name="android.credentials.INSTALL_AS_USER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
+ </activity-alias>
+
+ <activity android:name=".CertInstaller"
+ android:theme="@style/Transparent"
+ android:configChanges="orientation|keyboardHidden"
+ android:exported="false">
</activity>
<activity android:name=".CertFileList"
- android:configChanges="orientation|keyboardHidden">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
+ android:configChanges="orientation|keyboardHidden"
+ android:exported="false">
</activity>
</application>
</manifest>
diff --git a/res/layout/name_credential_dialog.xml b/res/layout/name_credential_dialog.xml
index 21588ff..f68c8f7 100644
--- a/res/layout/name_credential_dialog.xml
+++ b/res/layout/name_credential_dialog.xml
@@ -18,10 +18,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ <LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:padding="15dip">
<TextView android:id="@+id/error"
@@ -31,17 +31,44 @@
android:textStyle="bold"
android:visibility="gone" />
- <TextView android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/credential_name" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/credential_name"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
<EditText android:id="@+id/credential_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="True"/>
- <TextView android:layout_width="match_parent"
+ <LinearLayout
+ android:id="@+id/credential_usage_group"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="12dp"
+ android:text="@string/credential_usage_label"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <Spinner
+ android:id="@+id/credential_usage"
+ android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:text="@string/credential_info" />
+ android:entries="@array/credential_usage" />
+
+ </LinearLayout>
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="12dp"
+ android:text="@string/credential_info" />
+
<TextView android:id="@+id/credential_info"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 9a08616..ba6cc94 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-berging nie beskikbaar nie."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD-kaart is nie daar nie."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Slegs die eienaar van hierdie toestel kan sertifikate installeer."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Eiebewysgebruik:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN en programme"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 82cd9cc..4b2d487 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB ማከማቻ የለም።"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD ካርድ የለም።"</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"የዚህ መሣሪያ ብቻ ነው የዕውቅና ማረጋገጫዎችን ሊጭን የሚችለው።"</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"የምስክርነት አጠቃቀም፦"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"ቪ ፒ ኤን እና መተግበሪያዎች"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 6d3d7cf..0fb4074 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"وحدة تخزين USB غير متاحة."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"بطاقة SD غير موجودة."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"يُسمح لمالك هذا الجهاز فقط تثبيت الشهادات."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"استخدام بيانات الاعتماد:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"الشبكة الظاهرية الخاصة والتطبيقات"</item>
+ <item msgid="692322974985472861">"لاسلكي"</item>
+ </string-array>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index f8a3596..13285fd 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-назапашвальнiк адсутнічае."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD-карта не знойдзена."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Сертыфiкаты можа ўсталёўваць толькi ўладальнiк гэтай прылады."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Выкарыстанне ўліковых дадзеных:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN і прыкладанні"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index a81f964..60fd54a 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB хранилището не е налице."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD картата липсва."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Само собственикът на това устройство може да инсталира сертификати."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Използв. на идент. данни"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"Виртуални частни мрежи (VPN) и прилож."</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 20d45a7..6aa0867 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -21,7 +21,7 @@
<string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Extreu el certificat"</string>
<string name="extracting_pkcs12" msgid="1881267738821799771">"S\'està extraient..."</string>
<string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Extracció de %s"</string>
- <string name="name_credential_dialog_title" msgid="277729846491554437">"Assignació d\'un nom al certificat"</string>
+ <string name="name_credential_dialog_title" msgid="277729846491554437">"Nom del certificat"</string>
<string name="credential_name" msgid="1974979771369744378">"Nom del certificat:"</string>
<string name="credential_password" msgid="3520176519550993326">"Introdueix la contrasenya per extreure els certificats."</string>
<string name="credential_info" msgid="2436768402308470397">"El paquet conté:"</string>
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Emmagatzematge USB no disponible."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"No hi ha cap targeta SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Només el propietari d\'aquest dispositiu pot instal·lar certificats."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Ús de les credencials:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN i aplicacions"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index bea2926..3e1001e 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Úložiště USB není připojeno."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Karta SD není k dispozici."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Certifikáty může instalovat pouze majitel tohoto zařízení."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Použití pověření:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN a aplikace"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 7411c68..3d2d710 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-lager ikke tilgængeligt."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD-kort er ikke til stede."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Kun ejeren af denne enhed kan installere certifikater."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Brug af loginoplysninger:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN og apps"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fd933fb..895a587 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -40,12 +40,17 @@
<string name="no_cert_to_saved" msgid="5708884372817309068">"Kein zu installierendes Zertifikat"</string>
<string name="invalid_cert" msgid="7704228670980743590">"Das Zertifikat ist ungültig."</string>
<string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> ist installiert."</string>
- <string name="cert_too_large_error" msgid="8715414972725646285">"Installation nicht möglich, da das Zertifikat zu groß ist"</string>
- <string name="cert_missing_error" msgid="7040527352278728220">"Installation nicht möglich, da die Zertifikatdatei nicht gefunden wurde"</string>
- <string name="cert_read_error" msgid="7353463360652419796">"Installation nicht möglich, da die Zertifikatdatei nicht gelesen werden konnte"</string>
+ <string name="cert_too_large_error" msgid="8715414972725646285">"Installation nicht möglich, weil das Zertifikat zu groß ist"</string>
+ <string name="cert_missing_error" msgid="7040527352278728220">"Installation nicht möglich, weil die Zertifikatdatei nicht gefunden wurde"</string>
+ <string name="cert_read_error" msgid="7353463360652419796">"Installation nicht möglich, weil die Zertifikatdatei nicht gelesen werden konnte"</string>
<string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"Keine Zertifikatdatei auf USB-Speicher gefunden."</string>
<string name="no_cert_file_found" product="default" msgid="1942077544887243999">"Auf der SD-Karte wurde keine Zertifikats-Datei gefunden."</string>
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Kein USB-Speicher verfügbar"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD-Karte ist nicht vorhanden."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Nur der Eigentümer dieses Geräts kann Zertifikate installieren."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Verwendung der Anmeldedaten:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN und Apps"</item>
+ <item msgid="692322974985472861">"WLAN"</item>
+ </string-array>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 8bddde1..a478d07 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Μη διαθέσιμος χώρος αποθ. USB."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Δεν υπάρχει κάρτα SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Μόνο ο κάτοχος αυτής της συσκευής μπορεί να εγκαταστήσει πιστοποιητικά."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Χρήση διαπιστευτηρίων:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN και εφαρμογές"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index e1c51fd..f918442 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB storage not available."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD card isn\'t present."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Only the owner of this device may install certificates."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Credential use:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN and apps"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 6ccaf6b..e70759e 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Alm. USB no disponible"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"No se insertó la tarjeta SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Solo el propietario de este dispositivo puede instalar certificados."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Uso de credencial:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN y aplicaciones"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 116c61d..349f1ca 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB no disponible"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"La tarjeta SD no está presente."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Solo el propietario de este dispositivo puede instalar certificados."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Uso de credenciales:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN y aplicaciones"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 3981ce5..7506035 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-mäluseade pole saadaval"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD-kaarti pole."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Ainult seadme omanik võib installida sertifikaate."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Mandaadi kasutus:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN ja rakendused"</item>
+ <item msgid="692322974985472861">"WiFi"</item>
+ </string-array>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 4414e14..e7cf998 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"حافظهٔ USB موجود نیست."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"کارت SD موجود نیست."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"فقط مالک این دستگاه می‌تواند گواهی‌ها را نصب نماید."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"استفاده از اطلاعات کاربری:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN و برنامه‌ها"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a386b4d..8b1ed4b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-tila ei ole käytettävissä."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Ei SD-korttia."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Vain tämän laitteen omistaja voi asentaa varmenteita."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Käyttöoikeustietojen käyttö:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN ja sovellukset"</item>
+ <item msgid="692322974985472861">"Wifi"</item>
+ </string-array>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index f5344a7..af49790 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Mémoire USB indisponible"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Carte SD manquante."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Seul le propriétaire de cet appareil peut installer des certificats."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Utilisation du certificat :"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN et applications"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 1564fa9..cf17a43 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB संग्रहण उपलब्‍ध नहीं है."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD कार्ड मौजूद नहीं है."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"केवल इस उपकरण का स्वामी ही प्रमाणपत्रों को इंस्टॉल कर सकता है."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"क्रेडेंशियल उपयोग:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN और एप्लिकेशन"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 85f5e38..e79cfc6 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Memorija USB nije dostupna."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD kartica nije priključena."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Samo vlasnik ovog uređaja može instalirati certifikate."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Upotreba vjerodajnice:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN i aplikacije"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 7aa1b1c..6eb2b59 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Az USB-tár nem érhető el."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Az SD-kártya hiányzik."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Csak az eszköz tulajdonosa telepíthet tanúsítványokat."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Hitelesítési adatok használata:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN és alkalmazások"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index d7f5c7d..2730dd2 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Penyimpanan USB tidak tersedia."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Kartu SD tidak ada."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Hanya pemilik perangkat ini yang dapat memasang sertifikat."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Penggunaan kredensial:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN dan aplikasi"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index de18d82..50de0aa 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Archivio USB non disponibile."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Scheda SD non presente."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Solo il proprietario di questo dispositivo può installare certificati."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Utilizzo della credenziale:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN e app"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index dcb80f3..8f81d6e 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"אחסון USB לא זמין."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"אין כרטיס SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"רק הבעלים של מכשיר זה יכול להתקין אישורים."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"השימוש בפרטי הכניסה:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN ויישומים"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 000eab7..759eae6 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USBストレージがありません。"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SDカードが挿入されていません。"</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"証明書をインストールできるのはこの端末の所有者だけです。"</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"認証情報の使用:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPNとアプリ"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 15e8726..bff4006 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB 저장소를 사용할 수 없습니다."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD 카드가 없습니다."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"이 기기의 소유자만 인증서를 설치할 수 있습니다."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"자격증명 사용:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN 및 앱"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 7cb90c2..ec75a9e 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB atmintinė nepasiekiama."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Nėra SD kortelės."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Tik įrenginio savininkas gali įdiegti sertifikatus."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Kredencialų naudojimas:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN ir programos"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 1863286..facfd9f 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -21,7 +21,7 @@
<string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Sertifikāta izgūšana"</string>
<string name="extracting_pkcs12" msgid="1881267738821799771">"Notiek izvilkšana..."</string>
<string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Izvilkšana no: %s"</string>
- <string name="name_credential_dialog_title" msgid="277729846491554437">"Nosaukuma piešķiršana sertifikātam"</string>
+ <string name="name_credential_dialog_title" msgid="277729846491554437">"Sertifikāta nosaukšana"</string>
<string name="credential_name" msgid="1974979771369744378">"Sertifikāta nosaukums:"</string>
<string name="credential_password" msgid="3520176519550993326">"Ierakstiet paroli, lai izvilktu sertifikātus."</string>
<string name="credential_info" msgid="2436768402308470397">"Pakotnē ir ietverts:"</string>
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB krātuve nav pieejama."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD karte nav ievietota."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Tikai šīs ierīces īpašnieks var instalēt sertifikātus."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Akredit. datu lietojums:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN un lietotnes"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 8a80113..63607b0 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Storan USB tidak tersedia."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Tiada kad SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Hanya pemilik peranti ini boleh memasang sijil."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Penggunaan bukti kelayakan:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN dan apl"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 634c2e4..168dd62 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-lagring ikke tilgjengelig."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Finner ikke SD-kort."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Bare eieren av denne enheten kan installere sertifikater."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Bruk av legitimasjon:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN og apper"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 55f1ba9..365c5f5 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-opslag niet beschikbaar."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Er is geen SD-kaart geplaatst."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Alleen de eigenaar van dit apparaat kan certificaten installeren."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Gebruik van referentiegegevens:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN en apps"</item>
+ <item msgid="692322974985472861">"Wifi"</item>
+ </string-array>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 0c6b9b6..03c1c7a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Nośnik USB jest niedostępny."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Brak karty SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Certyfikaty może instalować tylko właściciel tego urządzenia."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Przeznaczenie tych danych logowania:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN i aplikacje"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index d9363b2..9c87336 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Armaz. USB não disponível."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"O cartão SD não está presente."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Apenas o proprietário deste dispositivo pode instalar certificados."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Utilização de credenciais:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN e aplicações"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index bcad7b0..222aeff 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Armazenam. USB não disponível."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"O cartão SD não está presente."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Somente o dono do dispositivo pode instalar certificados."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Uso da credencial:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN e aplicativos"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index 12ec903..8b2f91c 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -65,4 +65,8 @@
<skip />
<!-- no translation found for only_primary_user_allowed (4005084935023047716) -->
<skip />
+ <!-- no translation found for credential_usage_label (1513892208033156805) -->
+ <skip />
+ <!-- no translation found for credential_usage:0 (375085478373011304) -->
+ <!-- no translation found for credential_usage:1 (692322974985472861) -->
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 1799afd..aa9f86a 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Stocarea USB nedisponibilă."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Nu există card SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Numai proprietarul acestui dispozitiv poate instala certificate."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Utilizarea datelor de conectare:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN și aplicații"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index b6ce20b..db24a9e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-накопитель недоступен."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD-карта отсутствует."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Сертификаты может устанавливать только владелец устройства."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Использовать аккаунт:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN и приложения"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index c5f4684..2dc679b 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Ukl. priestor USB je nedostup."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Karta SD nie je k dispozícii."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Certifikáty môže inštalovať iba vlastník tohto zariadenia."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Použitie poverení:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN a aplikácie"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index cb56264..4f25e25 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -26,7 +26,7 @@
<string name="credential_password" msgid="3520176519550993326">"Za ekstrahiranje potrdil vnesite geslo."</string>
<string name="credential_info" msgid="2436768402308470397">"V tem paketu je:"</string>
<string name="p12_description" msgid="4128352087331630024">"Potrdila v shrambi ključev PKCS12"</string>
- <string name="one_userkey" msgid="3500697912370644881">"ključ enega uporabnika"</string>
+ <string name="one_userkey" msgid="3500697912370644881">"en uporabniški ključ"</string>
<string name="one_usercrt" msgid="7690798336332403106">"potrdilo enega uporabnika"</string>
<string name="one_cacrt" msgid="2667950425420663146">"eno overjeno potrdilo"</string>
<string name="n_cacrts" msgid="2141498640685639208">"%d overjenih potrdil"</string>
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Pomnilnik USB ni na voljo."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Ni kartice SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Samo lastnik sme namestiti potrdila."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Uporaba poverilnice:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"Navidezno zasebno omrežje in aplikacije"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index a17163d..697a4cc 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB меморија није доступна."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD картица није уметнута."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Само власник овог уређаја може да инсталира сертификате."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Коришћење акредитива:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN и апликације"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index e57ce52..602772b 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-enheten är ej tillgänglig."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Det finns inget SD-kort."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Endast ägaren av den här enheten kan installera certifikat."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Användning av användaruppgifter:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN och appar"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 004acc1..f94cbb7 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Hifadhi ya USB haipatikani."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Kadi ya SD haipo."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Mmiliki wa kifaa hiki tu ndiye awezaye kusakinisha vyeti."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Matumizi ya kitambulisho:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN na programu"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 133ab85..6a9626c 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"ที่เก็บข้อมูล USB ใช้งานไม่ได้"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"ไม่พบการ์ด SD"</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"เฉพาะเจ้าของอุปกรณ์นี้ที่สามารถติดตั้งใบรับรอง"</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"การใช้ข้อมูลรับรอง:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN และแอป"</item>
+ <item msgid="692322974985472861">"WiFi"</item>
+ </string-array>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 9cbfbbd..f75117d 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Hindi available imbakan na USB"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Wala ang SD card."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Ang may-ari lang ng device na ito ang maaaring mag-install ng mga certificate."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Paggamit ng kredensyal:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN at apps"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 4922b8c..cd20e31 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB bellek kullanılamıyor."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD kart yok."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Sadece bu cihazın sahibi sertifikaları yükleyebilir."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Kimlik bilgisinin kullanımı:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN ve uygulamalar"</item>
+ <item msgid="692322974985472861">"Kablosuz"</item>
+ </string-array>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index d62c230..5188e08 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Носій USB недоступний."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Відсутня карта SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Лише власник цього пристрою може встановлювати сертифікати."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Використання облікових даних:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"Мережа VPN і програми"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 3f61fdf..04588c9 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Bộ nhớ USB không khả dụng."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Hiện không có thẻ SD."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Chỉ chủ sở hữu thiết bị này mới có thể cài đặt các chứng chỉ."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Sử dụng bản xác thực:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN và các ứng dụng"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 51afe6e..c05ab6d 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"不存在 USB 存储设备。"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD 卡不存在。"</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"只有此设备的拥有者才能安装证书。"</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"凭据用途:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN 和应用"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 3eb86fa..c23d8e1 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"沒有可用的 USB 儲存裝置。"</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"找不到 SD 卡。"</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"只有這個裝置的擁有者可以安裝憑證。"</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"憑證用途:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"VPN 和應用程式"</item>
+ <item msgid="692322974985472861">"Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 42ef1ca..a3d6a39 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -48,4 +48,9 @@
<string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Isitoreji se-USB asitholakali."</string>
<string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Ikhadi le-SD alikho."</string>
<string name="only_primary_user_allowed" msgid="4005084935023047716">"Umnikazi kuphela wale divayisi ongafaka izitifiketi."</string>
+ <string name="credential_usage_label" msgid="1513892208033156805">"Ukusetshenziswa kokuqinisekisa:"</string>
+ <string-array name="credential_usage">
+ <item msgid="375085478373011304">"I-VPN nezinhlelo zokusebenza"</item>
+ <item msgid="692322974985472861">"I-Wi-Fi"</item>
+ </string-array>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 34d70b0..e0bd560 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -74,4 +74,15 @@
<!-- Message displayed when a user other than the owner on a multi-user system tries to
install a certificate into the certificate store. [CHAR LIMIT=NONE] -->
<string name="only_primary_user_allowed">Only the owner of this device may install certificates.</string>
+
+ <!-- Label for spinner that shows the possible usage for a credential. Shown when user is
+ installing a credential [CHAR LIMIT=40] -->
+ <string name="credential_usage_label">Credential use:</string>
+
+ <!-- Usage type for a credential that the user is installing. The label will restrict the
+ type of use for that credential. [CHAR LIMIT=40] -->
+ <string-array name="credential_usage">
+ <item>VPN and apps</item>
+ <item>Wi-Fi</item>
+ </string-array>
</resources>
diff --git a/src/com/android/certinstaller/CertFile.java b/src/com/android/certinstaller/CertFile.java
index 401c1a3..5b4bfbf 100644
--- a/src/com/android/certinstaller/CertFile.java
+++ b/src/com/android/certinstaller/CertFile.java
@@ -131,9 +131,17 @@ public class CertFile extends PreferenceActivity implements FileFilter {
String fileName = file.getName();
Bundle bundle = getIntent().getExtras();
- String name = ((bundle == null)
- ? fileName
- : bundle.getString(KeyChain.EXTRA_NAME, fileName));
+
+ final String name;
+ final int installAsUid;
+ if (bundle == null) {
+ name = fileName;
+ installAsUid = -1;
+ } else {
+ name = bundle.getString(KeyChain.EXTRA_NAME, fileName);
+ installAsUid = bundle.getInt(Credentials.EXTRA_INSTALL_AS_UID, -1);
+ }
+
if (file.exists()) {
if (file.length() < MAX_FILE_SIZE) {
byte[] data = Util.readFile(file);
@@ -143,7 +151,7 @@ public class CertFile extends PreferenceActivity implements FileFilter {
return;
}
mCertFile = file;
- install(fileName, name, data);
+ install(fileName, name, installAsUid, data);
} else {
Log.w(TAG, "cert file is too large: " + file.length());
toastError(CERT_TOO_LARGE_ERROR);
@@ -176,9 +184,10 @@ public class CertFile extends PreferenceActivity implements FileFilter {
Environment.MEDIA_MOUNTED);
}
- private void install(String fileName, String name, byte[] value) {
+ private void install(String fileName, String name, int uid, byte[] value) {
Intent intent = new Intent(this, CertInstaller.class);
intent.putExtra(KeyChain.EXTRA_NAME, name);
+ intent.putExtra(Credentials.EXTRA_INSTALL_AS_UID, uid);
if (fileName.endsWith(Credentials.EXTENSION_PFX)
|| fileName.endsWith(Credentials.EXTENSION_P12)) {
intent.putExtra(KeyChain.EXTRA_PKCS12, value);
diff --git a/src/com/android/certinstaller/CertFileList.java b/src/com/android/certinstaller/CertFileList.java
index 5e2b681..1d32c26 100644
--- a/src/com/android/certinstaller/CertFileList.java
+++ b/src/com/android/certinstaller/CertFileList.java
@@ -21,6 +21,7 @@ import android.os.Environment;
import android.os.FileObserver;
import android.preference.Preference;
import android.preference.PreferenceScreen;
+import android.security.Credentials;
import android.util.Log;
import android.widget.Toast;
diff --git a/src/com/android/certinstaller/CertInstaller.java b/src/com/android/certinstaller/CertInstaller.java
index c953416..907646e 100644
--- a/src/com/android/certinstaller/CertInstaller.java
+++ b/src/com/android/certinstaller/CertInstaller.java
@@ -25,7 +25,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
-import android.os.UserHandle;
+import android.os.Process;
import android.security.Credentials;
import android.security.KeyChain;
import android.security.KeyChain.KeyChainConnection;
@@ -34,7 +34,10 @@ import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.EditText;
+import android.widget.Spinner;
import android.widget.Toast;
import java.io.Serializable;
@@ -64,6 +67,10 @@ public class CertInstaller extends Activity {
// key to KeyStore
private static final String PKEY_MAP_KEY = "PKEY_MAP";
+ // Values for usage type spinner
+ private static final int USAGE_TYPE_SYSTEM = 0;
+ private static final int USAGE_TYPE_WIFI = 1;
+
private final KeyStore mKeyStore = KeyStore.getInstance();
private final ViewHelper mView = new ViewHelper();
@@ -85,12 +92,6 @@ public class CertInstaller extends Activity {
protected void onCreate(Bundle savedStates) {
super.onCreate(savedStates);
- if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
- toastErrorAndFinish(R.string.only_primary_user_allowed);
- finish();
- return;
- }
-
mCredentials = createCredentialHelper(getIntent());
mState = (savedStates == null) ? STATE_INIT : STATE_RUNNING;
@@ -132,7 +133,7 @@ public class CertInstaller extends Activity {
private boolean needsKeyStoreAccess() {
return ((mCredentials.hasKeyPair() || mCredentials.hasUserCertificate())
- && (mKeyStore.state() != KeyStore.State.UNLOCKED));
+ && !mKeyStore.isUnlocked());
}
@Override
@@ -273,7 +274,7 @@ public class CertInstaller extends Activity {
return;
}
byte[] bytes = Util.toBytes(map);
- if (!mKeyStore.put(PKEY_MAP_KEY, bytes)) {
+ if (!mKeyStore.put(PKEY_MAP_KEY, bytes, KeyStore.UID_SELF, KeyStore.FLAG_ENCRYPTED)) {
Log.w(TAG, "savePkeyMap(): failed to write pkey map");
}
}
@@ -366,6 +367,31 @@ public class CertInstaller extends Activity {
}
mView.setText(R.id.credential_info, mCredentials.getDescription(this).toString());
final EditText nameInput = (EditText) view.findViewById(R.id.credential_name);
+ if (mCredentials.isInstallAsUidSet()) {
+ view.findViewById(R.id.credential_usage_group).setVisibility(View.GONE);
+ } else {
+ final Spinner usageSpinner = (Spinner) view.findViewById(R.id.credential_usage);
+
+ usageSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+ switch ((int) id) {
+ case USAGE_TYPE_SYSTEM:
+ mCredentials.setInstallAsUid(KeyStore.UID_SELF);
+ break;
+ case USAGE_TYPE_WIFI:
+ mCredentials.setInstallAsUid(Process.WIFI_UID);
+ break;
+ default:
+ Log.w(TAG, "Unknown selection for scope: " + id);
+ }
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
+ }
+ });
+ }
nameInput.setText(getDefaultName());
nameInput.selectAll();
Dialog d = new AlertDialog.Builder(this)
diff --git a/src/com/android/certinstaller/CertInstallerMain.java b/src/com/android/certinstaller/CertInstallerMain.java
index 7d7ed6e..9b10c07 100644
--- a/src/com/android/certinstaller/CertInstallerMain.java
+++ b/src/com/android/certinstaller/CertInstallerMain.java
@@ -60,14 +60,28 @@ public class CertInstallerMain extends CertFile implements Runnable {
Intent intent = getIntent();
String action = (intent == null) ? null : intent.getAction();
- if (Credentials.INSTALL_ACTION.equals(action)) {
+ if (Credentials.INSTALL_ACTION.equals(action)
+ || Credentials.INSTALL_AS_USER_ACTION.equals(action)) {
Bundle bundle = intent.getExtras();
+
+ /*
+ * There is a special INSTALL_AS_USER action that this activity is
+ * aliased to, but you have to have a permission to call it. If the
+ * caller got here any other way, remove the extra that we allow in
+ * that INSTALL_AS_USER path.
+ */
+ if (bundle != null && !Credentials.INSTALL_AS_USER_ACTION.equals(action)) {
+ bundle.remove(Credentials.EXTRA_INSTALL_AS_UID);
+ }
+
// If bundle is empty of any actual credentials, install from external storage.
// Otherwise, pass extras to CertInstaller to install those credentials.
// Either way, we use KeyChain.EXTRA_NAME as the default name if available.
if (bundle == null
|| bundle.isEmpty()
- || (bundle.size() == 1 && bundle.containsKey(KeyChain.EXTRA_NAME))) {
+ || (bundle.size() == 1
+ && (bundle.containsKey(KeyChain.EXTRA_NAME)
+ || bundle.containsKey(Credentials.EXTRA_INSTALL_AS_UID)))) {
if (!isSdCardPresent()) {
Toast.makeText(this, R.string.sdcard_not_present,
Toast.LENGTH_SHORT).show();
diff --git a/src/com/android/certinstaller/CredentialHelper.java b/src/com/android/certinstaller/CredentialHelper.java
index f9c35eb..c131268 100644
--- a/src/com/android/certinstaller/CredentialHelper.java
+++ b/src/com/android/certinstaller/CredentialHelper.java
@@ -64,6 +64,7 @@ class CredentialHelper {
private HashMap<String, byte[]> mBundle = new HashMap<String, byte[]>();
private String mName = "";
+ private int mUid = -1;
private PrivateKey mUserKey;
private X509Certificate mUserCert;
private List<X509Certificate> mCaCerts = new ArrayList<X509Certificate>();
@@ -83,6 +84,9 @@ class CredentialHelper {
mName = name;
}
+ mUid = bundle.getInt(Credentials.EXTRA_INSTALL_AS_UID, -1);
+ bundle.remove(Credentials.EXTRA_INSTALL_AS_UID);
+
Log.d(TAG, "# extras: " + bundle.size());
for (String key : bundle.keySet()) {
byte[] bytes = bundle.getByteArray(key);
@@ -244,11 +248,20 @@ class CredentialHelper {
return mName;
}
+ void setInstallAsUid(int uid) {
+ mUid = uid;
+ }
+
+ boolean isInstallAsUidSet() {
+ return mUid != -1;
+ }
+
Intent createSystemInstallIntent() {
Intent intent = new Intent("com.android.credentials.INSTALL");
// To prevent the private key from being sniffed, we explicitly spell
// out the intent receiver class.
intent.setClassName("com.android.settings", "com.android.settings.CredentialStorage");
+ intent.putExtra(Credentials.EXTRA_INSTALL_AS_UID, mUid);
try {
if (mUserKey != null) {
intent.putExtra(Credentials.EXTRA_USER_PRIVATE_KEY_NAME,