SupplicantManager: Expose an API to start/stop supplicant daemon
Bug: 149923078
Test: Compiles
Change-Id: Ic7027f0d18abee2ea1c9e48700c706954d54773a
diff --git a/services/Android.bp b/services/Android.bp
index db6e21a..ef47867 100644
--- a/services/Android.bp
+++ b/services/Android.bp
@@ -29,6 +29,7 @@
":services.usage-sources",
":services.usb-sources",
":services.voiceinteraction-sources",
+ ":services.wifi-sources",
":service-permission-sources",
":service-statsd-sources",
],
@@ -71,6 +72,7 @@
"services.usage",
"services.usb",
"services.voiceinteraction",
+ "services.wifi",
"android.hidl.base-V1.0-java",
],
diff --git a/services/api/current.txt b/services/api/current.txt
index 26a65f2..4a0a0d8 100644
--- a/services/api/current.txt
+++ b/services/api/current.txt
@@ -74,3 +74,12 @@
}
+package com.android.server.wifi {
+
+ public class SupplicantManager {
+ method public static void start();
+ method public static void stop();
+ }
+
+}
+
diff --git a/services/wifi/Android.bp b/services/wifi/Android.bp
new file mode 100644
index 0000000..f56c2cf
--- /dev/null
+++ b/services/wifi/Android.bp
@@ -0,0 +1,13 @@
+filegroup {
+ name: "services.wifi-sources",
+ srcs: ["java/**/*.java"],
+ path: "java",
+ visibility: ["//frameworks/base/services"],
+}
+
+java_library_static {
+ name: "services.wifi",
+ srcs: [
+ ":services.wifi-sources",
+ ],
+}
diff --git a/services/wifi/java/com/android/server/wifi/SupplicantManager.java b/services/wifi/java/com/android/server/wifi/SupplicantManager.java
new file mode 100644
index 0000000..5ed1ab3
--- /dev/null
+++ b/services/wifi/java/com/android/server/wifi/SupplicantManager.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2020 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.annotation.SystemApi;
+import android.os.SystemService;
+
+/**
+ * Wrapper to start/stop supplicant daemon using init system.
+ * @hide
+ */
+@SystemApi(client = SystemApi.Client.SYSTEM_SERVER)
+public class SupplicantManager {
+ private static final String WPA_SUPPLICANT_DAEMON_NAME = "wpa_supplicant";
+
+ private SupplicantManager() {}
+
+ /**
+ * Start the wpa_supplicant daemon.
+ * Note: This uses the init system to start the "wpa_supplicant" service.
+ */
+ public static void start() {
+ SystemService.start(WPA_SUPPLICANT_DAEMON_NAME);
+ }
+
+ /**
+ * Stop the wpa_supplicant daemon.
+ * Note: This uses the init system to stop the "wpa_supplicant" service.
+ */
+ public static void stop() {
+ SystemService.stop(WPA_SUPPLICANT_DAEMON_NAME);
+ }
+}