summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2019-11-19 06:45:41 -0800
committerRoshan Pius <rpius@google.com>2019-11-25 20:59:31 -0800
commitac76d484548a627ad9e5be6c7cf25e8bd9cc79a2 (patch)
tree6c73134c1e644b3c9e5eb30626575d24c0f936ed
parentd1260cf9f3b101cab9590906f4a1887296b4dbd3 (diff)
Revert "Mainline wifi stack module"
This reverts commit 6f5338dd8f90400fe67a97ed13f2479c6bd7237e. Reason for revert: Wifi services no longer plan to be a separate APK/process for mainline. Will instead become a jar loaded from Apex. Bug: 144722612 Test: Device boots up & connects to wifi networks. Change-Id: I293e36973c4bdbd8bf9db2fcd78e61e6c38b39f4
-rw-r--r--core/java/android/content/Context.java8
-rw-r--r--data/etc/privapp-permissions-platform.xml18
-rw-r--r--services/Android.bp2
-rw-r--r--services/java/com/android/server/SystemServer.java43
-rw-r--r--services/wifi/Android.bp16
-rw-r--r--services/wifi/java/android/net/wifi/IWifiStackConnector.aidl23
-rw-r--r--services/wifi/java/android/net/wifi/WifiStackClient.java100
7 files changed, 34 insertions, 176 deletions
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 0fdb51359cf9..226af9ed0baa 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -3864,14 +3864,6 @@ public abstract class Context {
public static final String NETWORK_STACK_SERVICE = "network_stack";
/**
- * Use with {@link android.os.ServiceManager.getService()} to retrieve a
- * {@link android.net.WifiStackClient} IBinder for communicating with the network stack
- * @hide
- * @see android.net.WifiStackClient
- */
- public static final String WIFI_STACK_SERVICE = "wifi_stack";
-
- /**
* Use with {@link #getSystemService(String)} to retrieve a
* {@link android.net.IpSecManager} for encrypting Sockets or Networks with
* IPSec.
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index fe539e4ca22b..f2a6452d6e44 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -367,22 +367,4 @@ applications that come with the platform
<permission name="android.permission.REBOOT"/>
<permission name="android.permission.MANAGE_DYNAMIC_SYSTEM"/>
</privapp-permissions>
-
- <privapp-permissions package="com.android.wifi">
- <permission name="android.permission.CHANGE_CONFIGURATION"/>
- <permission name="android.permission.CONNECTIVITY_INTERNAL"/>
- <permission name="android.permission.DUMP"/>
- <permission name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
- <permission name="android.permission.INTERNAL_SYSTEM_WINDOW"/>
- <permission name="android.permission.LOCAL_MAC_ADDRESS"/>
- <permission name="android.permission.MANAGE_USERS"/>
- <permission name="android.permission.PACKAGE_USAGE_STATS"/>
- <permission name="android.permission.READ_DEVICE_CONFIG"/>
- <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
- <permission name="android.permission.REQUEST_NETWORK_SCORES"/>
- <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
- <permission name="android.permission.UPDATE_DEVICE_STATS"/>
- <permission name="android.permission.UPDATE_APP_OPS_STATS"/>
- <permission name="android.permission.LOCATION_HARDWARE"/>
- </privapp-permissions>
</permissions>
diff --git a/services/Android.bp b/services/Android.bp
index 35dc44e0ac65..041631b74380 100644
--- a/services/Android.bp
+++ b/services/Android.bp
@@ -28,7 +28,6 @@ filegroup {
":services.usage-sources",
":services.usb-sources",
":services.voiceinteraction-sources",
- ":services.wifi-sources",
],
visibility: ["//visibility:private"],
}
@@ -68,7 +67,6 @@ java_library {
"services.usage",
"services.usb",
"services.voiceinteraction",
- "services.wifi",
"android.hidl.base-V1.0-java",
],
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index cb4e377c0110..f46857a26482 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -43,7 +43,6 @@ import android.database.sqlite.SQLiteGlobal;
import android.hardware.display.DisplayManagerInternal;
import android.net.ConnectivityModuleConnector;
import android.net.NetworkStackClient;
-import android.net.wifi.WifiStackClient;
import android.os.BaseBundle;
import android.os.Binder;
import android.os.Build;
@@ -1360,6 +1359,40 @@ public final class SystemServer {
t.traceEnd();
if (context.getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_WIFI)) {
+ // Wifi Service must be started first for wifi-related services.
+ t.traceBegin("StartWifi");
+ mSystemServiceManager.startService(WIFI_SERVICE_CLASS);
+ t.traceEnd();
+ t.traceBegin("StartWifiScanning");
+ mSystemServiceManager.startService(
+ "com.android.server.wifi.scanner.WifiScanningService");
+ t.traceEnd();
+ }
+
+ if (context.getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_WIFI_RTT)) {
+ t.traceBegin("StartRttService");
+ mSystemServiceManager.startService(
+ "com.android.server.wifi.rtt.RttService");
+ t.traceEnd();
+ }
+
+ if (context.getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_WIFI_AWARE)) {
+ t.traceBegin("StartWifiAware");
+ mSystemServiceManager.startService(WIFI_AWARE_SERVICE_CLASS);
+ t.traceEnd();
+ }
+
+ if (context.getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_WIFI_DIRECT)) {
+ t.traceBegin("StartWifiP2P");
+ mSystemServiceManager.startService(WIFI_P2P_SERVICE_CLASS);
+ t.traceEnd();
+ }
+
+ if (context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_LOWPAN)) {
t.traceBegin("StartLowpan");
mSystemServiceManager.startService(LOWPAN_SERVICE_CLASS);
@@ -2171,14 +2204,6 @@ public final class SystemServer {
}
t.traceEnd();
- t.traceBegin("StartWifiStack");
- try {
- WifiStackClient.getInstance().start();
- } catch (Throwable e) {
- reportWtf("starting Wifi Stack", e);
- }
- t.traceEnd();
-
t.traceBegin("MakeCountryDetectionServiceReady");
try {
if (countryDetectorF != null) {
diff --git a/services/wifi/Android.bp b/services/wifi/Android.bp
deleted file mode 100644
index 8a7f73fcf501..000000000000
--- a/services/wifi/Android.bp
+++ /dev/null
@@ -1,16 +0,0 @@
-filegroup {
- name: "services.wifi-sources",
- srcs: [
- "java/**/*.java",
- "java/**/*.aidl",
- ],
- path: "java",
- visibility: ["//frameworks/base/services"],
-}
-
-// Interfaces between the core system and the wifi mainline module.
-java_library_static {
- name: "services.wifi",
- srcs: [":services.wifi-sources"],
- libs: ["services.net"],
-}
diff --git a/services/wifi/java/android/net/wifi/IWifiStackConnector.aidl b/services/wifi/java/android/net/wifi/IWifiStackConnector.aidl
deleted file mode 100644
index 3af4666b8d9c..000000000000
--- a/services/wifi/java/android/net/wifi/IWifiStackConnector.aidl
+++ /dev/null
@@ -1,23 +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 perNmissions and
- * limitations under the License.
- */
-package android.net.wifi;
-
-import android.net.wifi.WifiApiServiceInfo;
-
-/** @hide */
-interface IWifiStackConnector {
- List<WifiApiServiceInfo> getWifiApiServiceInfos();
-}
diff --git a/services/wifi/java/android/net/wifi/WifiStackClient.java b/services/wifi/java/android/net/wifi/WifiStackClient.java
deleted file mode 100644
index dcdfbc54687c..000000000000
--- a/services/wifi/java/android/net/wifi/WifiStackClient.java
+++ /dev/null
@@ -1,100 +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 android.net.wifi;
-
-import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_HIGH;
-import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_NORMAL;
-
-import android.annotation.NonNull;
-import android.content.Context;
-import android.net.ConnectivityModuleConnector;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.util.Log;
-
-import java.util.List;
-
-/**
- * Service used to communicate with the wifi stack, which could be running in a separate
- * module.
- * @hide
- */
-public class WifiStackClient {
- public static final String PERMISSION_MAINLINE_WIFI_STACK =
- "android.permission.MAINLINE_WIFI_STACK";
-
- private static final String TAG = WifiStackClient.class.getSimpleName();
- private static WifiStackClient sInstance;
-
- private WifiStackClient() { }
-
- /**
- * Get the WifiStackClient singleton instance.
- */
- public static synchronized WifiStackClient getInstance() {
- if (sInstance == null) {
- sInstance = new WifiStackClient();
- }
- return sInstance;
- }
-
- private class WifiStackConnection implements
- ConnectivityModuleConnector.ModuleServiceCallback {
- @Override
- public void onModuleServiceConnected(IBinder service) {
- Log.i(TAG, "Wifi stack connected");
- registerWifiStackService(service);
-
- IWifiStackConnector connector = IWifiStackConnector.Stub.asInterface(service);
-
- List<WifiApiServiceInfo> wifiApiServiceInfos;
- try {
- wifiApiServiceInfos = connector.getWifiApiServiceInfos();
- } catch (RemoteException e) {
- throw new RuntimeException("Failed to getWifiApiServiceInfos()", e);
- }
-
- for (WifiApiServiceInfo wifiApiServiceInfo : wifiApiServiceInfos) {
- String serviceName = wifiApiServiceInfo.name;
- IBinder binder = wifiApiServiceInfo.binder;
- Log.i(TAG, "Registering " + serviceName);
- ServiceManager.addService(serviceName, binder);
- }
- }
- }
-
- private void registerWifiStackService(@NonNull IBinder service) {
- ServiceManager.addService(Context.WIFI_STACK_SERVICE, service,
- false /* allowIsolated */,
- DUMP_FLAG_PRIORITY_HIGH | DUMP_FLAG_PRIORITY_NORMAL);
- Log.i(TAG, "Wifi stack service registered");
- }
-
- /**
- * Start the wifi stack. Should be called only once on device startup.
- *
- * <p>This method will start the wifi stack either in the wifi stack
- * process, or inside the system server on devices that do not support the wifi stack
- * module.
- */
- public void start() {
- Log.i(TAG, "Starting wifi stack");
- ConnectivityModuleConnector.getInstance().startModuleService(
- IWifiStackConnector.class.getName(), PERMISSION_MAINLINE_WIFI_STACK,
- new WifiStackConnection());
- }
-}