summaryrefslogtreecommitdiffstats
path: root/service
diff options
context:
space:
mode:
authorOscar Shu <xshu@google.com>2019-06-21 17:46:07 +0000
committerOscar Shu <xshu@google.com>2019-06-21 17:46:07 +0000
commitf017ce2282e9b901946565cf1f643db801913d23 (patch)
tree80e1f88cff0102c2d0c8133ff5ce4c7a8df5b20c /service
parentfae988bc1a3ff26b83e8d52a4893364ccd9898d5 (diff)
downloadandroid_frameworks_opt_net_wifi-f017ce2282e9b901946565cf1f643db801913d23.tar.gz
android_frameworks_opt_net_wifi-f017ce2282e9b901946565cf1f643db801913d23.tar.bz2
android_frameworks_opt_net_wifi-f017ce2282e9b901946565cf1f643db801913d23.zip
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')
-rw-r--r--service/Android.mk3
-rw-r--r--service/java/com/android/server/wifi/ClientModeImpl.java3
-rw-r--r--service/java/com/android/server/wifi/GservicesFacade.java54
-rw-r--r--service/java/com/android/server/wifi/WifiInjector.java7
-rw-r--r--service/java/com/android/server/wifi/WifiLastResortWatchdog.java91
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;
- }
}
/**