diff options
author | Rebecca Silberstein <silberst@google.com> | 2017-04-04 22:25:43 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-04-04 22:25:43 +0000 |
commit | 7b8a36d10b5f8b855854cbf344774c1d0a12a6ab (patch) | |
tree | a6bf35b9097ee539e6eef84189a6ed7df22ede8c /service | |
parent | 87160e59e366f16e94cc8aeebe5c7eafde0bbee2 (diff) | |
parent | ae66570add8d3dd6908d32da11776f9f4046217b (diff) |
Merge "WifiServiceImpl: check device encryption at boot" am: 9b5f1c811b am: 21dea68199
am: ae66570add
Change-Id: Ie55b9572e7fee79727d2b878fb43101328cb3e12
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/FrameworkFacade.java | 10 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiServiceImpl.java | 17 |
2 files changed, 23 insertions, 4 deletions
diff --git a/service/java/com/android/server/wifi/FrameworkFacade.java b/service/java/com/android/server/wifi/FrameworkFacade.java index 42f0161e9..2c3e5f7e0 100644 --- a/service/java/com/android/server/wifi/FrameworkFacade.java +++ b/service/java/com/android/server/wifi/FrameworkFacade.java @@ -29,6 +29,7 @@ import android.os.Handler; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.storage.StorageManager; import android.provider.Settings; import android.telephony.CarrierConfigManager; @@ -151,4 +152,13 @@ public class FrameworkFacade { public WifiAsyncChannel makeWifiAsyncChannel(String tag) { return new WifiAsyncChannel(tag); } + + /** + * Check if the device will be restarting after decrypting during boot by calling {@link + * StorageManager.inCryptKeeperBounce}. + * @return true if the device will restart, false otherwise + */ + public boolean inStorageManagerCryptKeeperBounce() { + return StorageManager.inCryptKeeperBounce(); + } } diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java index b68301010..e24f720db 100644 --- a/service/java/com/android/server/wifi/WifiServiceImpl.java +++ b/service/java/com/android/server/wifi/WifiServiceImpl.java @@ -359,14 +359,23 @@ public class WifiServiceImpl extends IWifiManager.Stub { public void setWifiHandlerLogForTest(WifiLog log) { mClientHandler.setWifiLog(log); } + /** - * Check if Wi-Fi needs to be enabled and start - * if needed + * Check if we are ready to start wifi. + * + * First check if we will be restarting system services to decrypt the device. If the device is + * not encrypted, check if Wi-Fi needs to be enabled and start if needed * - * This function is used only at boot time + * This function is used only at boot time. */ public void checkAndStartWifi() { - /* Check if wi-fi needs to be enabled */ + // First check if we will end up restarting WifiService + if (mFrameworkFacade.inStorageManagerCryptKeeperBounce()) { + Log.d(TAG, "Device still encrypted. Need to restart SystemServer. Do not start wifi."); + return; + } + + // Check if wi-fi needs to be enabled boolean wifiEnabled = mSettingsStore.isWifiToggleEnabled(); Slog.i(TAG, "WifiService starting up with Wi-Fi " + (wifiEnabled ? "enabled" : "disabled")); |