diff options
author | Rebecca Silberstein <silberst@google.com> | 2017-04-04 22:16:08 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-04-04 22:16:09 +0000 |
commit | 9b5f1c811bbd6bffcf4367948cf87ecc9faac3bd (patch) | |
tree | a7c0f1558b0ba9fc06f261ca404a5bd88ed8cd40 /service | |
parent | b8fe1431cebacad2acfe1f878e5226b1e07e50bd (diff) | |
parent | ef0b931720a26a0aa59e2aa6cf4dcab765c5de75 (diff) |
Merge "WifiServiceImpl: check device encryption at boot"
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 757be2dac..03a88bc4e 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")); |