Snap for 7316203 from 2f8abe30e39f8efd0c4ac7f58c2aff76422e553c to rvc-platform-release
Change-Id: I400581f40610426d6a6025ce276311d754b99904
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index c9a7604..9f7927f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -17,30 +17,30 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="9095072584761066851">"מתקין אישורים"</string>
- <string name="pick_file_title" msgid="4481949485108233297">"בחר אישור"</string>
+ <string name="pick_file_title" msgid="4481949485108233297">"בחירת אישור"</string>
<string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"חילוץ אישור"</string>
- <string name="extracting_pkcs12" msgid="1881267738821799771">"מחלץ..."</string>
- <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"חלץ מתוך %s"</string>
+ <string name="extracting_pkcs12" msgid="1881267738821799771">"מתבצע חילוץ..."</string>
+ <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"חילוץ מתוך %s"</string>
<string name="name_credential_dialog_title" msgid="1481964824549786927">"מה שם האישור הזה?"</string>
<string name="certificate_name" msgid="8415893401368824792">"שם אישור"</string>
- <string name="credential_password" msgid="3520176519550993326">"הזן את הסיסמה כדי לחלץ את האישורים."</string>
+ <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">"מקש משתמש אחד"</string>
<string name="userkey_type" msgid="6214833257030657106">"אלגוריתם:"</string>
<string name="one_usercrt" msgid="7690798336332403106">"אישור למשתמש אחד"</string>
- <string name="one_cacrt" msgid="2667950425420663146">"אישור אחד מרשות אישורים"</string>
- <string name="n_cacrts" msgid="2141498640685639208">"אישורים של רשות האישורים %d"</string>
- <string name="password_error" msgid="2042471639556516356">"הקלד את הסיסמה הנכונה."</string>
+ <string name="one_cacrt" msgid="2667950425420663146">"אישור CA אחד"</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>
<string name="name_empty_error" msgid="3808800768660110354">"הקלד שם."</string>
<string name="name_char_error" msgid="3176618568784938968">"הקלד שם שמכיל רק אותיות ומספרים."</string>
- <string name="unable_to_save_cert" msgid="9178604087335389686">"לא ניתן לשמור את האישור. אחסון האישורים לא מאופשר או שלא אותחל כראוי."</string>
+ <string name="unable_to_save_cert" msgid="9178604087335389686">"לא ניתן לשמור את האישור. אחסון האישורים לא הופעל או שלא אותחל כראוי."</string>
<string name="cert_not_saved" msgid="4037698479662830270">"האישור לא מותקן."</string>
<string name="no_cert_to_saved" msgid="5708884372817309068">"אין אישור להתקנה."</string>
<string name="invalid_cert" msgid="7704228670980743590">"האישור אינו חוקי."</string>
- <string name="action_missing_private_key" msgid="7543470057312920042">"מפתח פרטי נדרש כדי להתקין אישור"</string>
- <string name="action_missing_user_cert" msgid="3727411730202316771">"אישור נדרש כדי להתקין מפתח פרטי"</string>
+ <string name="action_missing_private_key" msgid="7543470057312920042">"נדרש מפתח פרטי כדי להתקין אישור"</string>
+ <string name="action_missing_user_cert" msgid="3727411730202316771">"נדרש אישור כדי להתקין מפתח פרטי"</string>
<string name="select_certificate_usage_title" msgid="8853023485944920851">"יש לבחור את סוג האישור"</string>
<string name="redirect_ca_certificate_title" msgid="3457516863949244510">"התקנת אישורי CA ב\'הגדרות\'"</string>
<string name="redirect_ca_certificate_with_app_info_message" msgid="934477720755323579">"את האישור הזה מהאפליקציה <xliff:g id="REQUESTING_APP">%1$s</xliff:g> חובה להתקין בהגדרות. יש להתקין אישורי CA רק מארגונים מהימנים."</string>
@@ -65,7 +65,7 @@
<item msgid="375085478373011304">"VPN ואפליקציות"</item>
<item msgid="692322974985472861">"Wi-Fi"</item>
</string-array>
- <string name="certificate_capabilities_warning" msgid="4158609401937799110">"הערה: המנפיק של אישור זה עשוי לבדוק את כל התנועה אל המכשיר וממנו."</string>
+ <string name="certificate_capabilities_warning" msgid="4158609401937799110">"הערה: המנפיק של האישור הזה עשוי לבדוק את כל התנועה אל המכשיר וממנו."</string>
<string name="wifi_title" msgid="8475811746333426489">"פרופיל Wi-Fi"</string>
<string name="wifi_detail_title" msgid="3627332137252994395">"פרטים עבור %s"</string>
<string name="wifi_detail_label" msgid="3032151019356747583">"פרטים"</string>
@@ -81,10 +81,10 @@
<string name="wifi_trust_config_text" msgid="5916047381475747783">"תעודת אמון:\n%s\n"</string>
<string name="install_done_title" msgid="4822989918460334497">"פרטי כניסה הותקנו"</string>
<string name="install_done" msgid="1522718684172097080">"פרטי כניסה של <xliff:g id="NAME">%1$s</xliff:g> נוספו אל רשתות Wi-Fi שנשמרו."</string>
- <string name="done_label" msgid="5597425930652904250">"בוצע"</string>
- <string name="wifi_installer_detail" msgid="63879632832701669">"התקן פרטי כניסה של Wi-Fi כדי להתחבר לרשתות שזמינות באמצעות <xliff:g id="NAME">%1$s</xliff:g>."</string>
+ <string name="done_label" msgid="5597425930652904250">"סיום"</string>
+ <string name="wifi_installer_detail" msgid="63879632832701669">"יש להתקין פרטי כניסה של Wi-Fi כדי להתחבר לרשתות שזמינות דרך <xliff:g id="NAME">%1$s</xliff:g>."</string>
<string name="wifi_installer_download_error" msgid="5429453090956277692">"יש בעיות בקובץ שהורדת ולא ניתן להתקינו. ודא שהורדת את הקובץ מהמקור המתאים."</string>
- <string name="wifi_installer_fail" msgid="894483173306576331">"לא ניתן להתקין פרטי כניסה של Wi-Fi. נסה להוריד שוב את הקובץ."</string>
+ <string name="wifi_installer_fail" msgid="894483173306576331">"לא ניתן להתקין פרטי כניסה של Wi-Fi. יש לנסות שוב להוריד את הקובץ."</string>
<string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"ההתקנה בוטלה"</string>
<string name="wifi_installer_fail_title" msgid="5547079779067835479">"לא ניתן להתקין"</string>
<string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"הפעל את ה-Wi-Fi ונסה שוב."</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index b15985e..03dd4c7 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -77,7 +77,7 @@
<string name="wifi_config_text" msgid="8259587306773310314">"Нэр: %1$s\nFQDN: %2$s\nRoaming Consortiums: %3$s\nRealm: %4$s\nAuth method: EAP-%5$s\n"</string>
<string name="wifi_ttls_config_text" msgid="2002413183253872168">"Хэрэглэгчийн нэр: %s\n"</string>
<string name="wifi_tls_config_text" msgid="9062328536640168510">"Клинетийн сертификат:\n%1$s\nТүлхүүр: %2$s\n"</string>
- <string name="wifi_sim_config_text" msgid="1666019954520831840">"СИМ: %s\n"</string>
+ <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
<string name="wifi_trust_config_text" msgid="5916047381475747783">"Итгэлцлийн сертификат:\n%s\n"</string>
<string name="install_done_title" msgid="4822989918460334497">"Итгэмжлэлийг суулгасан"</string>
<string name="install_done" msgid="1522718684172097080">"<xliff:g id="NAME">%1$s</xliff:g> итгэмжлэлийг Wi-Fi-ийн хадгалсан сүлжээнд нэмлээ."</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 21298a2..9d1d6bd 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -35,7 +35,7 @@
<string name="password_empty_error" msgid="591713406761723025">"Typ het wachtwoord."</string>
<string name="name_empty_error" msgid="3808800768660110354">"Typ een naam."</string>
<string name="name_char_error" msgid="3176618568784938968">"Typ een naam die alleen letters en cijfers bevat."</string>
- <string name="unable_to_save_cert" msgid="9178604087335389686">"Kan het certificaat niet opslaan. Opslag van certificaatgegevens is niet ingeschakeld of niet correct geïnitialiseerd."</string>
+ <string name="unable_to_save_cert" msgid="9178604087335389686">"Kan het certificaat niet opslaan. Opslag van certificaatgegevens staat niet aan of is niet correct geïnitialiseerd."</string>
<string name="cert_not_saved" msgid="4037698479662830270">"Het certificaat is niet geïnstalleerd."</string>
<string name="no_cert_to_saved" msgid="5708884372817309068">"Er is geen certificaat dat kan worden geïnstalleerd."</string>
<string name="invalid_cert" msgid="7704228670980743590">"Het certificaat is ongeldig."</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 8599747..238623c 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -71,7 +71,7 @@
<string name="wifi_detail_label" msgid="3032151019356747583">"ବିବରଣୀ"</string>
<string name="wifi_install_label" msgid="1449629407724323233">"ଇନଷ୍ଟଲ୍"</string>
<string name="wifi_installing_label" msgid="8387393993627129025">"ଇନଷ୍ଟଲ୍ କରାଯାଉଛି"</string>
- <string name="wifi_cancel_label" msgid="1328748037608392134">"କ୍ୟାନ୍ସଲ୍ କରନ୍ତୁ"</string>
+ <string name="wifi_cancel_label" msgid="1328748037608392134">"ବାତିଲ୍ କରନ୍ତୁ"</string>
<string name="wifi_dismiss_label" msgid="1916684434873972698">"ଖାରଜ"</string>
<string name="wifi_no_config" msgid="1835743123288916755">"କିଛି ନାହିଁ"</string>
<string name="wifi_config_text" msgid="8259587306773310314">"ନାମ: %1$s\nFQDN: %2$s\nରୋମିଙ୍ଗ କନ୍ସୋଟିୟମ୍ସ: %3$s\nରେଲାମ୍: %4$s\nସ୍ୱୀକୃତି ପଦ୍ଧତି: EAP-%5$s\n"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 49ff4be..0a48003 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -62,7 +62,7 @@
<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="375085478373011304">"VPN మరియు యాప్లు"</item>
<item msgid="692322974985472861">"Wi-Fi"</item>
</string-array>
<string name="certificate_capabilities_warning" msgid="4158609401937799110">"గమనిక: ఈ ప్రమాణపత్రాన్ని జారీ చేసిన వారు పరికరానికి సంబంధించిన మొత్తం రాకపోకల ట్రాఫిక్ని పరిశీలించవచ్చు."</string>
diff --git a/src/com/android/certinstaller/WiFiInstaller.java b/src/com/android/certinstaller/WiFiInstaller.java
index 41827f6..ad03eca 100644
--- a/src/com/android/certinstaller/WiFiInstaller.java
+++ b/src/com/android/certinstaller/WiFiInstaller.java
@@ -1,5 +1,7 @@
package com.android.certinstaller;
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
@@ -13,6 +15,8 @@
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.DocumentsContract;
+import android.text.TextUtils;
+import android.util.EventLog;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
@@ -26,18 +30,24 @@
private static final String TAG = "WifiInstaller";
private static final String NETWORK_NAME = "network_name";
private static final String INSTALL_STATE = "install_state";
+ private static final String TYPE_WIFI_CONFIG = "application/x-wifi-config";
public static final int INSTALL_SUCCESS = 2;
public static final int INSTALL_FAIL = 1;
public static final int INSTALL_FAIL_NO_WIFI = 0;
- PasspointConfiguration mPasspointConfig;
- WifiManager mWifiManager;
- boolean doNotInstall;
+ private PasspointConfiguration mPasspointConfig;
+ private boolean mIsPasspointConfigurationValid;
@Override
protected void onCreate(Bundle savedStates) {
super.onCreate(savedStates);
+ getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ mIsPasspointConfigurationValid = false;
Bundle bundle = getIntent().getExtras();
+ if (bundle == null) {
+ Log.e(TAG, "Invalid inputs");
+ return;
+ }
String uriString = bundle.getString(CertInstallerMain.WIFI_CONFIG_FILE);
String mimeType = bundle.getString(CertInstallerMain.WIFI_CONFIG);
byte[] data = bundle.getByteArray(CertInstallerMain.WIFI_CONFIG_DATA);
@@ -45,17 +55,34 @@
Log.d(TAG, "WiFi data for " + CertInstallerMain.WIFI_CONFIG + ": " +
mimeType + " is " + (data != null ? data.length : "-"));
- mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
- mPasspointConfig = ConfigParser.parsePasspointConfig(mimeType, data);
- dropFile(Uri.parse(uriString), getApplicationContext());
-
- if (mPasspointConfig == null) {
- Log.w(TAG, "failed to build passpoint configuration");
- doNotInstall = true;
- } else if (mPasspointConfig.getHomeSp() == null) {
- Log.w(TAG, "Passpoint profile missing HomeSP information");
- doNotInstall = true;
+ // Make sure that the input is valid
+ if (data == null || data.length == 0 || TextUtils.isEmpty(uriString)) {
+ Log.e(TAG, "Invalid inputs");
+ return;
}
+
+ // Verify MIME type before parsing
+ if (!TextUtils.equals(mimeType, TYPE_WIFI_CONFIG)) {
+ Log.e(TAG, "Unexpected MIME type: " + mimeType);
+ EventLog.writeEvent(0x534e4554, "176756691", -1, "Invalid mime-type");
+ return;
+ }
+
+ mPasspointConfig = ConfigParser.parsePasspointConfig(mimeType, data);
+ if (mPasspointConfig == null) {
+ Log.e(TAG, "Failed to build Passpoint configuration");
+ EventLog.writeEvent(0x534e4554, "176756691", -1, "Invalid data in file "
+ + uriString);
+ return;
+ }
+ if (mPasspointConfig.getHomeSp() == null) {
+ Log.e(TAG, "Passpoint profile missing HomeSP information");
+ } else {
+ // Passpoint configuration parsed successfully and valid. Mark to be installed.
+ mIsPasspointConfigurationValid = true;
+ }
+ // Delete the file only if the Passpoint configuration was parsed successfully
+ dropFile(Uri.parse(uriString), getApplicationContext());
}
@Override
@@ -75,7 +102,8 @@
builder.setView(layout);
TextView text = (TextView) layout.findViewById(R.id.wifi_info);
- if (!doNotInstall) {
+ if (mIsPasspointConfigurationValid) {
+ WifiManager wifiManager = getSystemService(WifiManager.class);
text.setText(String.format(getResources().getString(R.string.wifi_installer_detail),
mPasspointConfig.getHomeSp().getFriendlyName()));
@@ -93,14 +121,14 @@
public void run() {
boolean success = true;
try {
- mWifiManager.removePasspointConfiguration(
+ wifiManager.removePasspointConfiguration(
mPasspointConfig.getHomeSp().getFqdn());
} catch (IllegalArgumentException e) {
// Do nothing. This is expected if a profile with this FQDN does not
// exist.
}
try {
- mWifiManager.addOrUpdatePasspointConfiguration(mPasspointConfig);
+ wifiManager.addOrUpdatePasspointConfiguration(mPasspointConfig);
} catch (RuntimeException rte) {
Log.w(TAG, "Caught exception while installing wifi config: " +
rte, rte);
@@ -144,7 +172,9 @@
}
});
}
- builder.create().show();
+ final AlertDialog alertDialog = builder.create();
+ alertDialog.show();
+ alertDialog.getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
}
/**
@@ -154,14 +184,14 @@
* @param context The context of the current application
*/
private static void dropFile(Uri uri, Context context) {
- try {
- if (DocumentsContract.isDocumentUri(context, uri)) {
- DocumentsContract.deleteDocument(context.getContentResolver(), uri);
- } else {
- context.getContentResolver().delete(uri, null, null);
+ try {
+ if (DocumentsContract.isDocumentUri(context, uri)) {
+ DocumentsContract.deleteDocument(context.getContentResolver(), uri);
+ } else {
+ context.getContentResolver().delete(uri, null, null);
+ }
+ } catch (Exception e) {
+ Log.e(TAG, "could not delete document " + uri);
}
- } catch (Exception e) {
- Log.e(TAG, "could not delete document " + uri);
- }
}
}