diff options
author | Oscar Shu <xshu@google.com> | 2019-06-21 17:46:07 +0000 |
---|---|---|
committer | Oscar Shu <xshu@google.com> | 2019-06-21 17:46:07 +0000 |
commit | f017ce2282e9b901946565cf1f643db801913d23 (patch) | |
tree | 80e1f88cff0102c2d0c8133ff5ce4c7a8df5b20c /service | |
parent | fae988bc1a3ff26b83e8d52a4893364ccd9898d5 (diff) |
Revert "Trigger bugreport for abnormally long connections"
This reverts commit fae988bc1a3ff26b83e8d52a4893364ccd9898d5.
Reason for revert: This CL has a vendor dependency, which would cause breakages on builds that don't have vendor partitions. Will revert first and then submit alternative CL which don't have vendor dependency.
Change-Id: I5ba7f59274daad09691af1ad8949ebab3a382b6b
Diffstat (limited to 'service')
5 files changed, 5 insertions, 153 deletions
diff --git a/service/Android.mk b/service/Android.mk index ab005867c..b396214c7 100644 --- a/service/Android.mk +++ b/service/Android.mk @@ -48,8 +48,7 @@ LOCAL_STATIC_JAVA_LIBRARIES := \ android.hardware.wifi.supplicant-V1.2-java \ wifi_service_proto \ ksoap2 \ - libnanohttpd \ - gsf-client + libnanohttpd LOCAL_REQUIRED_MODULES := \ services \ diff --git a/service/java/com/android/server/wifi/ClientModeImpl.java b/service/java/com/android/server/wifi/ClientModeImpl.java index 292e902bc..a18760c17 100644 --- a/service/java/com/android/server/wifi/ClientModeImpl.java +++ b/service/java/com/android/server/wifi/ClientModeImpl.java @@ -959,8 +959,6 @@ public class ClientModeImpl extends StateMachine { mWifiMetrics.getHandler()); mWifiMonitor.registerHandler(mInterfaceName, CMD_TARGET_BSSID, mWifiMetrics.getHandler()); - mWifiMonitor.registerHandler(mInterfaceName, WifiMonitor.NETWORK_CONNECTION_EVENT, - mWifiInjector.getWifiLastResortWatchdog().getHandler()); } private void setMulticastFilter(boolean enabled) { @@ -4294,7 +4292,6 @@ public class ClientModeImpl extends StateMachine { } if (mWifiNative.connectToNetwork(mInterfaceName, config)) { - mWifiInjector.getWifiLastResortWatchdog().noteStartConnectTime(); mWifiMetrics.logStaEvent(StaEvent.TYPE_CMD_START_CONNECT, config); mLastConnectAttemptTimestamp = mClock.getWallClockMillis(); mTargetWifiConfiguration = config; diff --git a/service/java/com/android/server/wifi/GservicesFacade.java b/service/java/com/android/server/wifi/GservicesFacade.java deleted file mode 100644 index a629a584d..000000000 --- a/service/java/com/android/server/wifi/GservicesFacade.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.server.wifi; - -import android.content.Context; - -import com.google.android.gsf.Gservices; - -import java.util.concurrent.TimeUnit; - -/** - * This class allows getting all configurable flags from Gservices. - */ -public class GservicesFacade { - private static final int DEFAULT_ABNORMAL_CONNECTION_DURATION_MS = - (int) TimeUnit.SECONDS.toMillis(30); - private static final String G_PREFIX = "android.wifi."; - private Context mContext; - - public GservicesFacade(Context context) { - mContext = context; - } - - /** - * Gets the feature flag for reporting abnormally long connections. - */ - public boolean isAbnormalConnectionBugreportEnabled() { - return Gservices.getBoolean(mContext.getContentResolver(), - G_PREFIX + "abnormal_connection_bugreport_enabled", false); - } - - /** - * Gets the threshold for classifying abnormally long connections. - */ - public int getAbnormalConnectionDurationMs() { - return Gservices.getInt(mContext.getContentResolver(), - G_PREFIX + "abnormal_connection_duration_ms", - DEFAULT_ABNORMAL_CONNECTION_DURATION_MS); - } -} diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java index a449ef332..f33c7cf93 100644 --- a/service/java/com/android/server/wifi/WifiInjector.java +++ b/service/java/com/android/server/wifi/WifiInjector.java @@ -82,7 +82,6 @@ public class WifiInjector { private final Context mContext; private final FrameworkFacade mFrameworkFacade = new FrameworkFacade(); - private final GservicesFacade mGservicesFacade; private final HandlerThread mWifiServiceHandlerThread; private final HandlerThread mWifiCoreHandlerThread; private final HandlerThread mWifiP2pServiceHandlerThread; @@ -169,7 +168,6 @@ public class WifiInjector { sWifiInjector = this; mContext = context; - mGservicesFacade = new GservicesFacade(mContext); mWifiScoreCard = new WifiScoreCard(mClock, Secure.getString(mContext.getContentResolver(), Secure.ANDROID_ID)); mSettingsStore = new WifiSettingsStore(mContext); @@ -607,9 +605,8 @@ public class WifiInjector { mWifiCoreHandlerThread.getLooper(), mFrameworkFacade, mClock, mWifiMetrics, mWifiConfigManager, mWifiConfigStore, clientModeImpl, new ConnectToNetworkNotificationBuilder(mContext, mFrameworkFacade)); - mWifiLastResortWatchdog = new WifiLastResortWatchdog(this, mContext, mClock, - mWifiMetrics, clientModeImpl, clientModeImpl.getHandler().getLooper(), - mGservicesFacade); + mWifiLastResortWatchdog = new WifiLastResortWatchdog(this, mClock, + mWifiMetrics, clientModeImpl, clientModeImpl.getHandler().getLooper()); return new WifiConnectivityManager(mContext, getScoringParams(), clientModeImpl, this, mWifiConfigManager, clientModeImpl.getWifiInfo(), diff --git a/service/java/com/android/server/wifi/WifiLastResortWatchdog.java b/service/java/com/android/server/wifi/WifiLastResortWatchdog.java index 868a3e9a5..6889b5016 100644 --- a/service/java/com/android/server/wifi/WifiLastResortWatchdog.java +++ b/service/java/com/android/server/wifi/WifiLastResortWatchdog.java @@ -16,15 +16,10 @@ package com.android.server.wifi; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.os.Handler; import android.os.Looper; -import android.os.Message; import android.text.TextUtils; import android.util.LocalLog; import android.util.Log; @@ -32,8 +27,6 @@ import android.util.Pair; import com.android.internal.annotations.VisibleForTesting; -import com.google.android.gsf.Gservices; - import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.HashMap; @@ -82,10 +75,6 @@ public class WifiLastResortWatchdog { @VisibleForTesting public static final long LAST_TRIGGER_TIMEOUT_MILLIS = 2 * 3600 * 1000; // 2 hours - private int mAbnormalConnectionDurationMs; - private boolean mAbnormalConnectionBugreportEnabled; - - /** * Cached WifiConfigurations of available networks seen within MAX_BSSID_AGE scan results * Key:BSSID, Value:Counters of failure types @@ -113,98 +102,22 @@ public class WifiLastResortWatchdog { private Looper mClientModeImplLooper; private double mBugReportProbability = PROB_TAKE_BUGREPORT_DEFAULT; private Clock mClock; - private Context mContext; - private GservicesFacade mGservicesFacade; // If any connection failure happened after watchdog triggering restart then assume watchdog // did not fix the problem private boolean mWatchdogFixedWifi = true; - private long mLastStartConnectTime = 0; - private Handler mHandler; /** * Local log used for debugging any WifiLastResortWatchdog issues. */ private final LocalLog mLocalLog = new LocalLog(100); - WifiLastResortWatchdog(WifiInjector wifiInjector, Context context, Clock clock, - WifiMetrics wifiMetrics, ClientModeImpl clientModeImpl, Looper clientModeImplLooper, - GservicesFacade gservicesFacade) { + WifiLastResortWatchdog(WifiInjector wifiInjector, Clock clock, WifiMetrics wifiMetrics, + ClientModeImpl clientModeImpl, Looper clientModeImplLooper) { mWifiInjector = wifiInjector; mClock = clock; mWifiMetrics = wifiMetrics; mClientModeImpl = clientModeImpl; mClientModeImplLooper = clientModeImplLooper; - mContext = context; - mGservicesFacade = gservicesFacade; - updateGServicesFlags(); - mHandler = new Handler(clientModeImplLooper) { - public void handleMessage(Message msg) { - processMessage(msg); - } - }; - // Registers a broadcast receiver to change update G service flags - mContext.registerReceiver( - new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - mHandler.post(() -> { - updateGServicesFlags(); - }); - } - }, - new IntentFilter(Gservices.CHANGED_ACTION)); - } - - private void updateGServicesFlags() { - mAbnormalConnectionBugreportEnabled = - mGservicesFacade.isAbnormalConnectionBugreportEnabled(); - mAbnormalConnectionDurationMs = - mGservicesFacade.getAbnormalConnectionDurationMs(); - logv("updateGServicesFlags: mAbnormalConnectionDurationMs = " - + mAbnormalConnectionDurationMs - + ", mAbnormalConnectionBugreportEnabled = " - + mAbnormalConnectionBugreportEnabled); - } - - /** - * Returns handler for L2 events from supplicant. - * @return Handler - */ - public Handler getHandler() { - return mHandler; - } - - /** - * Refreshes when the last CMD_START_CONNECT is triggered. - */ - public void noteStartConnectTime() { - mLastStartConnectTime = mClock.getElapsedSinceBootMillis(); - } - - private void processMessage(Message msg) { - switch (msg.what) { - case WifiMonitor.NETWORK_CONNECTION_EVENT: - // Trigger bugreport for successful connections that take abnormally long - if (mAbnormalConnectionBugreportEnabled && mLastStartConnectTime > 0) { - long durationMs = mClock.getElapsedSinceBootMillis() - mLastStartConnectTime; - if (durationMs > mAbnormalConnectionDurationMs) { - final String bugTitle = "Wi-Fi Bugreport: Abnormal connection time"; - final String bugDetail = "Expected connection to take less than " - + mAbnormalConnectionDurationMs + " milliseconds. " - + "Actually took " + durationMs + " milliseconds."; - logv("Triggering bug report for abnormal connection time."); - mWifiInjector.getClientModeImplHandler().post(() -> { - mClientModeImpl.takeBugReport(bugTitle, bugDetail); - }); - } - } - // Should reset last connection time after each connection regardless if bugreport - // is enabled or not. - mLastStartConnectTime = 0; - break; - default: - return; - } } /** |