Do not dump Wifi before service started
Bug: 229148323
Test: dump before Wifi service started
Change-Id: Ib329991915f7a5549b7297ac0f1dcaabcf524312
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index df2ff66..65c5c8b 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -271,6 +271,7 @@
public final CountryCodeTracker mCountryCodeTracker;
private final MultiInternetManager mMultiInternetManager;
private int mVerboseAlwaysOnLevel = -1;
+ private boolean mIsWifiServiceStarted = false;
/**
* Callback for use with LocalOnlyHotspot to unregister requesting applications upon death.
@@ -658,6 +659,7 @@
mActiveModeWarden.start();
registerForCarrierConfigChange();
mWifiInjector.getAdaptiveConnectivityEnabledSettingObserver().initialize();
+ mIsWifiServiceStarted = true;
});
}
@@ -4753,6 +4755,10 @@
+ ", uid=" + Binder.getCallingUid());
return;
}
+ if (!mIsWifiServiceStarted) {
+ pw.println("Wifi Service is not started. no dump available");
+ return;
+ }
mWifiThreadRunner.run(() -> {
String arg0 = args != null && args.length > 0 ? args[0] : null;
if (WifiMetrics.PROTO_DUMP_ARG.equals(arg0)) {
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
index 2d79e55..c91e679 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
@@ -703,10 +703,11 @@
*/
@Test
public void testWifiMetricsDump() {
- mLooper.startAutoDispatch();
+ mWifiServiceImpl.checkAndStartWifi();
+ mLooper.dispatchAll();
mWifiServiceImpl.dump(new FileDescriptor(), new PrintWriter(new StringWriter()),
new String[]{mWifiMetrics.PROTO_DUMP_ARG});
- mLooper.stopAutoDispatchAndIgnoreExceptions();
+ mLooper.dispatchAll();
verify(mWifiMetrics).setNonPersistentMacRandomizationForceEnabled(anyBoolean());
verify(mWifiMetrics).setIsScanningAlwaysEnabled(anyBoolean());
verify(mWifiMetrics).setVerboseLoggingEnabled(anyBoolean());
@@ -721,10 +722,10 @@
*/
@Test
public void testDumpNullArgs() {
- mLooper.startAutoDispatch();
+ mWifiServiceImpl.checkAndStartWifi();
+ mLooper.dispatchAll();
mWifiServiceImpl.dump(new FileDescriptor(), new PrintWriter(new StringWriter()), null);
- mLooper.stopAutoDispatchAndIgnoreExceptions();
-
+ mLooper.dispatchAll();
verify(mWifiDiagnostics).captureBugReportData(
WifiDiagnostics.REPORT_REASON_USER_ACTION);
verify(mWifiDiagnostics).dump(any(), any(), any());
@@ -8604,9 +8605,10 @@
@Test
public void testDumpShouldDumpWakeupController() {
- mLooper.startAutoDispatch();
+ mWifiServiceImpl.checkAndStartWifi();
+ mLooper.dispatchAll();
mWifiServiceImpl.dump(new FileDescriptor(), new PrintWriter(new StringWriter()), null);
- mLooper.stopAutoDispatchAndIgnoreExceptions();
+ mLooper.dispatchAll();
verify(mWakeupController).dump(any(), any(), any());
}