diff options
author | Roshan Pius <rpius@google.com> | 2019-11-19 06:45:41 -0800 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2019-11-25 20:59:31 -0800 |
commit | ac76d484548a627ad9e5be6c7cf25e8bd9cc79a2 (patch) | |
tree | 6c73134c1e644b3c9e5eb30626575d24c0f936ed | |
parent | d1260cf9f3b101cab9590906f4a1887296b4dbd3 (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.java | 8 | ||||
-rw-r--r-- | data/etc/privapp-permissions-platform.xml | 18 | ||||
-rw-r--r-- | services/Android.bp | 2 | ||||
-rw-r--r-- | services/java/com/android/server/SystemServer.java | 43 | ||||
-rw-r--r-- | services/wifi/Android.bp | 16 | ||||
-rw-r--r-- | services/wifi/java/android/net/wifi/IWifiStackConnector.aidl | 23 | ||||
-rw-r--r-- | services/wifi/java/android/net/wifi/WifiStackClient.java | 100 |
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()); - } -} |