diff options
author | Roshan Pius <rpius@google.com> | 2017-06-08 22:14:46 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-06-08 22:14:46 +0000 |
commit | ab3461bcc61148f833806d244cd038df13310ad7 (patch) | |
tree | f2c85343cfc6d55ef98162f8ce6c7117c6987edb /service | |
parent | 75c12fe98a1f55aa9d7591adc424183951a7f3dc (diff) | |
parent | 61c5552cd973827fc035334d580c1082456f9b21 (diff) |
Merge "WifiBackupRestore: Backup networks from apps holding CONFIG_OVERRIDE" into oc-dev
am: 61c5552cd9
Change-Id: Iabebd04e93c6c0a5ec3b806fe074956b432391d7
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiBackupRestore.java | 12 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiInjector.java | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiBackupRestore.java b/service/java/com/android/server/wifi/WifiBackupRestore.java index 4095d8283..60c3b488d 100644 --- a/service/java/com/android/server/wifi/WifiBackupRestore.java +++ b/service/java/com/android/server/wifi/WifiBackupRestore.java @@ -28,6 +28,7 @@ import android.util.Xml; import com.android.internal.util.FastXmlSerializer; import com.android.server.net.IpConfigStore; import com.android.server.wifi.util.NativeUtil; +import com.android.server.wifi.util.WifiPermissionsUtil; import com.android.server.wifi.util.XmlUtil; import com.android.server.wifi.util.XmlUtil.IpConfigurationXmlUtil; import com.android.server.wifi.util.XmlUtil.WifiConfigurationXmlUtil; @@ -96,6 +97,7 @@ public class WifiBackupRestore { private static final String WEP_KEYS_MASK_SEARCH_PATTERN = "(<.*=)(.*)(/>)"; private static final String WEP_KEYS_MASK_REPLACE_PATTERN = "$1*$3"; + private final WifiPermissionsUtil mWifiPermissionsUtil; /** * Verbose logging flag. */ @@ -109,6 +111,10 @@ public class WifiBackupRestore { private byte[] mDebugLastBackupDataRestored; private byte[] mDebugLastSupplicantBackupDataRestored; + public WifiBackupRestore(WifiPermissionsUtil wifiPermissionsUtil) { + mWifiPermissionsUtil = wifiPermissionsUtil; + } + /** * Retrieve an XML byte stream representing the data that needs to be backed up from the * provided configurations. @@ -163,7 +169,9 @@ public class WifiBackupRestore { if (configuration.isEnterprise() || configuration.isPasspoint()) { continue; } - if (configuration.creatorUid >= Process.FIRST_APPLICATION_UID) { + if (!mWifiPermissionsUtil.checkConfigOverridePermission(configuration.creatorUid)) { + Log.d(TAG, "Ignoring network from an app with no config override permission: " + + configuration.configKey()); continue; } // Write this configuration data now. @@ -702,6 +710,8 @@ public class WifiBackupRestore { Integer.parseInt(extras.get( SupplicantStaNetworkHal.ID_STRING_KEY_CREATOR_UID)); if (creatorUid >= Process.FIRST_APPLICATION_UID) { + Log.d(TAG, "Ignoring network from non-system app: " + + configuration.configKey()); return null; } } diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java index 90e400cc1..c51778578 100644 --- a/service/java/com/android/server/wifi/WifiInjector.java +++ b/service/java/com/android/server/wifi/WifiInjector.java @@ -96,7 +96,7 @@ public class WifiInjector { private final PropertyService mPropertyService = new SystemPropertyService(); private final BuildProperties mBuildProperties = new SystemBuildProperties(); private final KeyStore mKeyStore = KeyStore.getInstance(); - private final WifiBackupRestore mWifiBackupRestore = new WifiBackupRestore(); + private final WifiBackupRestore mWifiBackupRestore; private final WifiMulticastLockManager mWifiMulticastLockManager; private final WifiConfigStore mWifiConfigStore; private final WifiKeyStore mWifiKeyStore; @@ -150,6 +150,7 @@ public class WifiInjector { mWifiNetworkScoreCache, NetworkScoreManager.CACHE_FILTER_NONE); mWifiPermissionsUtil = new WifiPermissionsUtil(mWifiPermissionsWrapper, mContext, mSettingsStore, UserManager.get(mContext), mNetworkScoreManager, this); + mWifiBackupRestore = new WifiBackupRestore(mWifiPermissionsUtil); mBatteryStats = IBatteryStats.Stub.asInterface(mFrameworkFacade.getService( BatteryStats.SERVICE_NAME)); mWifiStateTracker = new WifiStateTracker(mBatteryStats); |