Merge "Merge Android 12"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 7d543fb..886b7ca 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -38,6 +38,7 @@
 
         <activity-alias android:name=".InstallCertAsUser"
              android:targetActivity=".CertInstallerMain"
+             android:exported="true"
              android:permission="com.android.certinstaller.INSTALL_AS_USER">
             <intent-filter>
                 <action android:name="android.credentials.INSTALL_AS_USER"/>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 129ea56..d0f20e8 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -30,7 +30,7 @@
     <string name="userkey_type" msgid="6214833257030657106">"Algoritmo:"</string>
     <string name="one_usercrt" msgid="7690798336332403106">"un certificado de usuario"</string>
     <string name="one_cacrt" msgid="2667950425420663146">"un certificado AC"</string>
-    <string name="n_cacrts" msgid="2141498640685639208">"%d certificados AC"</string>
+    <string name="n_cacrts" msgid="2141498640685639208">"%d certificados de CA"</string>
     <string name="password_error" msgid="2042471639556516356">"Escribe la contraseña correcta."</string>
     <string name="password_empty_error" msgid="591713406761723025">"Escribe la contraseña."</string>
     <string name="name_empty_error" msgid="3808800768660110354">"Escribe un nombre."</string>
@@ -42,8 +42,8 @@
     <string name="action_missing_private_key" msgid="7543470057312920042">"Se necesita una clave privada para instalar un certificado"</string>
     <string name="action_missing_user_cert" msgid="3727411730202316771">"Se necesita un certificado para instalar una clave privada"</string>
     <string name="select_certificate_usage_title" msgid="8853023485944920851">"Elige un tipo de certificado"</string>
-    <string name="redirect_ca_certificate_title" msgid="3457516863949244510">"Instala certificados AC en Ajustes"</string>
-    <string name="redirect_ca_certificate_with_app_info_message" msgid="934477720755323579">"Este certificado de <xliff:g id="REQUESTING_APP">%1$s</xliff:g> debe instalarse en Ajustes. Instala solo certificados AC de organizaciones en las que confíes."</string>
+    <string name="redirect_ca_certificate_title" msgid="3457516863949244510">"Instala certificados de CA en Ajustes"</string>
+    <string name="redirect_ca_certificate_with_app_info_message" msgid="934477720755323579">"Este certificado de <xliff:g id="REQUESTING_APP">%1$s</xliff:g> debe instalarse en Ajustes. Instala solo certificados de CA de organizaciones en las que confíes."</string>
     <string name="redirect_ca_certificate_close_button" msgid="4291301659747279488">"Cerrar"</string>
     <string name="invalid_certificate_title" msgid="6500315398016809635">"No se puede usar este archivo"</string>
     <string name="invalid_certificate_close_button" msgid="350986774973653102">"Cerrar"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index e1a6f06..fdea517 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -50,7 +50,7 @@
     <string name="invalid_certificate_message" msgid="3508065546083182733">"Este ficheiro non se pode usar como <xliff:g id="CERTIFICATE_USAGE">%1$s</xliff:g>"</string>
     <string name="certificate" msgid="8790577925509962529">"certificado"</string>
     <string name="ca_certificate" msgid="7397198551290322945">"certificado de CA"</string>
-    <string name="user_certificate" msgid="514888069820553128">"Cert. de usuario de VPN e app"</string>
+    <string name="user_certificate" msgid="514888069820553128">"Certificado de usuario de aplicacións e VPN"</string>
     <string name="wifi_certificate" msgid="5356595832360140989">"certificado de wifi"</string>
     <string name="ca_cert_is_added" msgid="2847081843756291802">"Instalouse o certificado de CA"</string>
     <string name="user_cert_is_added" msgid="3088794616560630823">"Instalouse o certificado de usuario"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 69476fd..d88b28f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -26,10 +26,10 @@
     <string name="credential_password" msgid="3520176519550993326">"証明書を抽出するためのパスワードを入力します。"</string>
     <string name="credential_info" msgid="2436768402308470397">"パッケージの内容:"</string>
     <string name="p12_description" msgid="4128352087331630024">"PKCS12キーストアでの証明書。"</string>
-    <string name="one_userkey" msgid="3500697912370644881">"ユーザーキー 1 個"</string>
+    <string name="one_userkey" msgid="3500697912370644881">"ユーザーキー1個"</string>
     <string name="userkey_type" msgid="6214833257030657106">"アルゴリズム:"</string>
-    <string name="one_usercrt" msgid="7690798336332403106">"ユーザー証明書 1 件"</string>
-    <string name="one_cacrt" msgid="2667950425420663146">"CA 証明書 1 件"</string>
+    <string name="one_usercrt" msgid="7690798336332403106">"ユーザー証明書1件"</string>
+    <string name="one_cacrt" msgid="2667950425420663146">"CA証明書1件"</string>
     <string name="n_cacrts" msgid="2141498640685639208">"CA証明書%d件"</string>
     <string name="password_error" msgid="2042471639556516356">"正しいパスワードを入力してください。"</string>
     <string name="password_empty_error" msgid="591713406761723025">"パスワードを入力してください。"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 5cdebfe..8518028 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -27,7 +27,7 @@
     <string name="credential_info" msgid="2436768402308470397">"പാക്കേജിൽ ഇവ അടങ്ങിയിരിക്കുന്നു:"</string>
     <string name="p12_description" msgid="4128352087331630024">"PKCS12 കീസ്‌റ്റോറിലെ സർട്ടിഫിക്കറ്റുകൾ."</string>
     <string name="one_userkey" msgid="3500697912370644881">"ഒരു ഉപയോക്തൃ കീ"</string>
-    <string name="userkey_type" msgid="6214833257030657106">"ആൽഗരിതം:"</string>
+    <string name="userkey_type" msgid="6214833257030657106">"അൽഗരിതം:"</string>
     <string name="one_usercrt" msgid="7690798336332403106">"ഒരു ഉപയോക്തൃ സർട്ടിഫിക്കറ്റ്"</string>
     <string name="one_cacrt" msgid="2667950425420663146">"ഒരു CA സർട്ടിഫിക്കറ്റ്"</string>
     <string name="n_cacrts" msgid="2141498640685639208">"%d CA സർട്ടിഫിക്കറ്റുകൾ"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 989edde..03dd4c7 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -50,7 +50,7 @@
     <string name="invalid_certificate_message" msgid="3508065546083182733">"Энэ файлыг <xliff:g id="CERTIFICATE_USAGE">%1$s</xliff:g>-р ашиглах боломжгүй"</string>
     <string name="certificate" msgid="8790577925509962529">"Сертификат"</string>
     <string name="ca_certificate" msgid="7397198551290322945">"CA сертификат"</string>
-    <string name="user_certificate" msgid="514888069820553128">"VPN ба апп хэрэглэгчийн сертификат"</string>
+    <string name="user_certificate" msgid="514888069820553128">"VPN; апликейшн хэрэглэгчийн сертификат"</string>
     <string name="wifi_certificate" msgid="5356595832360140989">"Wi‑Fi сертификат"</string>
     <string name="ca_cert_is_added" msgid="2847081843756291802">"CA сертификатыг суулгалаа"</string>
     <string name="user_cert_is_added" msgid="3088794616560630823">"Хэрэглэгчийн сертификатыг суулгалаа"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 6df4fe4..c650668 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -49,7 +49,7 @@
     <string name="invalid_certificate_close_button" msgid="350986774973653102">"बन्द गर्नुहोस्"</string>
     <string name="invalid_certificate_message" msgid="3508065546083182733">"यो फाइल कुनै <xliff:g id="CERTIFICATE_USAGE">%1$s</xliff:g> को रूपमा प्रयोग गर्न सकिँदैन"</string>
     <string name="certificate" msgid="8790577925509962529">"प्रमाणपत्र"</string>
-    <string name="ca_certificate" msgid="7397198551290322945">"CA को सर्टिफिकेट"</string>
+    <string name="ca_certificate" msgid="7397198551290322945">"CA को प्रमाणपत्र"</string>
     <string name="user_certificate" msgid="514888069820553128">"VPN र एपको युजर सर्टिफिकेट"</string>
     <string name="wifi_certificate" msgid="5356595832360140989">"Wi‑Fi सर्टिफिकेट"</string>
     <string name="ca_cert_is_added" msgid="2847081843756291802">"CA सर्टिफिकेट स्थापना गरियो"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index fee3565..1e5718a 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -29,7 +29,7 @@
     <string name="one_userkey" msgid="3500697912370644881">"uma chave de usuário"</string>
     <string name="userkey_type" msgid="6214833257030657106">"Algoritmo:"</string>
     <string name="one_usercrt" msgid="7690798336332403106">"um certificado de usuário"</string>
-    <string name="one_cacrt" msgid="2667950425420663146">"um certificado de CA"</string>
+    <string name="one_cacrt" msgid="2667950425420663146">"um certificado CA"</string>
     <string name="n_cacrts" msgid="2141498640685639208">"%d certificados CA"</string>
     <string name="password_error" msgid="2042471639556516356">"Digite a senha correta."</string>
     <string name="password_empty_error" msgid="591713406761723025">"Digite a senha."</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index fee3565..1e5718a 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -29,7 +29,7 @@
     <string name="one_userkey" msgid="3500697912370644881">"uma chave de usuário"</string>
     <string name="userkey_type" msgid="6214833257030657106">"Algoritmo:"</string>
     <string name="one_usercrt" msgid="7690798336332403106">"um certificado de usuário"</string>
-    <string name="one_cacrt" msgid="2667950425420663146">"um certificado de CA"</string>
+    <string name="one_cacrt" msgid="2667950425420663146">"um certificado CA"</string>
     <string name="n_cacrts" msgid="2141498640685639208">"%d certificados CA"</string>
     <string name="password_error" msgid="2042471639556516356">"Digite a senha correta."</string>
     <string name="password_empty_error" msgid="591713406761723025">"Digite a senha."</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index cfd8903..2965cf0 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -54,7 +54,7 @@
     <string name="wifi_certificate" msgid="5356595832360140989">"Wi‑Fi-certifikat"</string>
     <string name="ca_cert_is_added" msgid="2847081843756291802">"CA-certifikatet har installerats"</string>
     <string name="user_cert_is_added" msgid="3088794616560630823">"Användarcertifikatet har installerats"</string>
-    <string name="wifi_cert_is_added" msgid="333220613655140428">"wifi-certifikatet har installerats"</string>
+    <string name="wifi_cert_is_added" msgid="333220613655140428">"Wi-Fi-certifikatet har installerats"</string>
     <string name="cert_too_large_error" msgid="8715414972725646285">"Det gick inte att installera eftersom certifikatet är för stort."</string>
     <string name="cert_missing_error" msgid="7040527352278728220">"Det gick inte att installera eftersom certifikatfilen inte hittades."</string>
     <string name="cert_read_error" msgid="7353463360652419796">"Det gick inte att installera eftersom certifikatfilen inte kunde läsas."</string>
@@ -63,10 +63,10 @@
     <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">"Wifi"</item>
+    <item msgid="692322974985472861">"Wi-Fi"</item>
   </string-array>
     <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Obs! Certifikatets utfärdare kan granska all trafik till och från enheten."</string>
-    <string name="wifi_title" msgid="8475811746333426489">"wifi-profil"</string>
+    <string name="wifi_title" msgid="8475811746333426489">"Wi-Fi-profil"</string>
     <string name="wifi_detail_title" msgid="3627332137252994395">"Information för %s"</string>
     <string name="wifi_detail_label" msgid="3032151019356747583">"Information"</string>
     <string name="wifi_install_label" msgid="1449629407724323233">"Installera"</string>
@@ -80,12 +80,12 @@
     <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
     <string name="wifi_trust_config_text" msgid="5916047381475747783">"Förtroendecertifikat:\n%s\n"</string>
     <string name="install_done_title" msgid="4822989918460334497">"Användaruppgifter har installerats"</string>
-    <string name="install_done" msgid="1522718684172097080">"Användaruppgifter för <xliff:g id="NAME">%1$s</xliff:g> har lagts till för sparade wifi-nätverk."</string>
+    <string name="install_done" msgid="1522718684172097080">"Användaruppgifter för <xliff:g id="NAME">%1$s</xliff:g> har lagts till för sparade Wi-Fi-nätverk."</string>
     <string name="done_label" msgid="5597425930652904250">"KLAR"</string>
-    <string name="wifi_installer_detail" msgid="63879632832701669">"Installera wifi-användaruppgifter och anslut till nätverk som är tillgängliga via <xliff:g id="NAME">%1$s</xliff:g>."</string>
+    <string name="wifi_installer_detail" msgid="63879632832701669">"Installera Wi-Fi-användaruppgifter och anslut till nätverk som är tillgängliga via <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="wifi_installer_download_error" msgid="5429453090956277692">"Det går inte att installera den nedladdade filen på grund av problem med den. Kontrollera att du laddade ned filen från rätt källa."</string>
-    <string name="wifi_installer_fail" msgid="894483173306576331">"Det går inte att installera användaruppgifter för wifi. Testa att ladda ned filen igen."</string>
+    <string name="wifi_installer_fail" msgid="894483173306576331">"Det går inte att installera användaruppgifter för Wi-Fi. Testa att ladda ned filen igen."</string>
     <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Installationen avbröts"</string>
     <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Det gick inte att installera"</string>
-    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Aktivera wifi och försök igen."</string>
+    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Aktivera Wi-Fi och försök igen."</string>
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index f649610..26aea0a 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -49,7 +49,7 @@
     <string name="invalid_certificate_close_button" msgid="350986774973653102">"Yopish"</string>
     <string name="invalid_certificate_message" msgid="3508065546083182733">"Bu fayldan <xliff:g id="CERTIFICATE_USAGE">%1$s</xliff:g> sifatida foydalanish imkonsiz"</string>
     <string name="certificate" msgid="8790577925509962529">"Sertifikat"</string>
-    <string name="ca_certificate" msgid="7397198551290322945">"Sertifikatlash markazi sertifikati"</string>
+    <string name="ca_certificate" msgid="7397198551290322945">"SM sertifikati"</string>
     <string name="user_certificate" msgid="514888069820553128">"VPN va ilova foydalanuvchisi sertifikati"</string>
     <string name="wifi_certificate" msgid="5356595832360140989">"Wi‑Fi sertifikati"</string>
     <string name="ca_cert_is_added" msgid="2847081843756291802">"SM sertifikati oʻrnatildi"</string>
diff --git a/src/com/android/certinstaller/CertInstallerMain.java b/src/com/android/certinstaller/CertInstallerMain.java
index 4cec5fc..17b5649 100644
--- a/src/com/android/certinstaller/CertInstallerMain.java
+++ b/src/com/android/certinstaller/CertInstallerMain.java
@@ -16,14 +16,11 @@
 
 package com.android.certinstaller;
 
-import android.app.ActivityTaskManager;
-import android.app.IActivityTaskManager;
 import android.app.KeyguardManager;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
-import android.os.RemoteException;
 import android.os.UserManager;
 import android.preference.PreferenceActivity;
 import android.provider.DocumentsContract;
@@ -192,20 +189,12 @@
         }
         installIntent.putExtras(intent);
 
-        try {
-            // The referrer is passed as an extra because the launched-from package needs to be
-            // obtained here and not in the CertInstaller.
-            // It is also safe to add the referrer as an extra because the CertInstaller activity
-            // is not exported, which means it cannot be called from other apps.
-            IActivityTaskManager activityTaskManager = ActivityTaskManager.getService();
-            installIntent.putExtra(Intent.EXTRA_REFERRER,
-                    activityTaskManager.getLaunchedFromPackage(getActivityToken()));
-            startActivityForResult(installIntent, REQUEST_INSTALL);
-        } catch (RemoteException e) {
-            Log.v(TAG, "Could not talk to activity manager.", e);
-            Toast.makeText(this, R.string.cert_temp_error, Toast.LENGTH_LONG).show();
-            finish();
-        }
+        // The referrer is passed as an extra because the launched-from package needs to be
+        // obtained here and not in the CertInstaller.
+        // It is also safe to add the referrer as an extra because the CertInstaller activity
+        // is not exported, which means it cannot be called from other apps.
+        installIntent.putExtra(Intent.EXTRA_REFERRER, getLaunchedFromPackage());
+        startActivityForResult(installIntent, REQUEST_INSTALL);
     }
 
     private void startInstallActivity(String mimeType, Uri uri) {