summaryrefslogtreecommitdiff
path: root/service/wifi.rc
diff options
context:
space:
mode:
author Roshan Pius <rpius@google.com> 2019-06-11 06:52:01 -0700
committer Roshan Pius <rpius@google.com> 2019-08-08 12:26:18 -0700
commit09d08e66a0a9d1194d9a61beceaaa212fc55a501 (patch)
treeb2f033a3fa6f62b9ec39b846c3c217971c2bfc01 /service/wifi.rc
parent05d4641213e83dc47f14d829e25e5d029b095fbc (diff)
Create Mainline wifi stack module
a) Moved wifi service to a separate APK (WifiStack) b) Converted all the .mk to .bp c) Changed all the wifi services to inherit from a new WifiServiceBase class (away from SystemService because we're no longer in system_server). d) WifiStackService is the entry point into the APK entry. This will be invoked from WifiStackClient running in system_server after PHASE_SYSTEM_SERVICES_READY in android framework boot sequence. e) Added a bunch of new .rc rules to help change ownership of all the config store files. f) Changed the |setPackage| on a bunch of private broadcasts triggered for notification actions (from "android" to the new retrieved package name). g) Changed WifiScanner permission checks to use MAINLINE_WIFI_STACK permission instead of NETWORK_STACK. Bug: 113174748 Test: atest com.android.server.wifi Test: Device boots up & connects to wifi networks, hotspot toggle, etc. Test: Will send for regression tests Change-Id: I87b83704c33694fcc99d2d9bde4e5cad9ddd06da
Diffstat (limited to 'service/wifi.rc')
-rw-r--r--service/wifi.rc89
1 files changed, 89 insertions, 0 deletions
diff --git a/service/wifi.rc b/service/wifi.rc
new file mode 100644
index 0000000000..e32ec20ed0
--- /dev/null
+++ b/service/wifi.rc
@@ -0,0 +1,89 @@
+#
+# Copyright (C) 2016 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.
+#
+
+# These are needed for migration of data from "system" user to "network_stack" user
+# since wifi is no longer running in "system_server".
+on post-fs-data
+ chown network_stack network_stack /data/misc/wifi
+ chown network_stack network_stack /data/misc/wifi/WifiConfigStore.xml
+ chown network_stack network_stack /data/misc/wifi/WifiConfigStore.xml.encrypted-checksum
+ chown network_stack network_stack /data/misc/wifi/softap.conf
+
+on property:sys.user.0.ce_available=true
+ mkdir /data/misc_ce/0/wifi 0770 network_stack network_stack
+ # For devices upgrading, we need to change permission.
+ chown network_stack network_stack /data/misc_ce/0/wifi
+ chown network_stack network_stack /data/misc_ce/0/wifi/WifiConfigStore.xml
+ chown network_stack network_stack /data/misc_ce/0/wifi/WifiConfigStore.xml.encrypted-checksum
+ chown network_stack network_stack /data/misc_ce/0/wifi/WifiConfigStoreNetworkSuggestions.xml
+ chown network_stack network_stack /data/misc_ce/0/wifi/WifiConfigStoreNetworkSuggestions.xml.encrypted-checksum
+
+ # Load the new sepolicy file context labels (these files were relabeled in R).
+ restorecon /data/misc_ce/0/wifi
+ restorecon /data/misc_ce/0/wifi/WifiConfigStore.xml
+ restorecon /data/misc_ce/0/wifi/WifiConfigStore.xml.encrypted-checksum
+ restorecon /data/misc_ce/0/wifi/WifiConfigStoreNetworkSuggestions.xml
+ restorecon /data/misc_ce/0/wifi/WifiConfigStoreNetworkSuggestions.xml.encrypted-checksum
+
+# Below are for kernel tracing related stuff.
+on fs
+ setprop sys.wifitracing.started 0
+
+on property:sys.boot_completed=1 && property:sys.wifitracing.started=0
+ # Create trace buffer, and set basic configuration.
+ mkdir /sys/kernel/debug/tracing/instances/wifi 711
+ restorecon_recursive /sys/kernel/debug/tracing/instances/wifi
+ write /sys/kernel/debug/tracing/instances/wifi/tracing_on 0
+ write /sys/kernel/debug/tracing/instances/wifi/buffer_size_kb 1
+ write /sys/kernel/debug/tracing/instances/wifi/trace_options disable_on_free
+
+ # Enable cfg80211 events for connection and key management events.
+ # - Events are not actually logged until WifiService writes "1" to
+ # /sys/kernel/debug/tracing/instances/wifi/tracing_on.
+ # - WifiService is responsible for turning tracing off and on.
+ write /sys/kernel/debug/tracing/instances/wifi/events/cfg80211/cfg80211_gtk_rekey_notify/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/cfg80211/rdev_add_key/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/cfg80211/rdev_assoc/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/cfg80211/rdev_auth/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/cfg80211/rdev_connect/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/cfg80211/rdev_set_default_key/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/cfg80211/rdev_set_default_mgmt_key/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/cfg80211/rdev_set_rekey_data/enable 1
+
+ # Enable datapath events for Wifi.
+ # - Events are not actually logged until WifiService writes "1" to
+ # /sys/kernel/debug/tracing/instances/wifi/tracing_on.
+ # - WifiService will ensure that tracing is turned back off,
+ # when a connection attempt ends (whether in success or failure)
+ write /sys/kernel/debug/tracing/instances/wifi/events/net/filter name==${wifi.interface:-wlan0}
+ write /sys/kernel/debug/tracing/instances/wifi/events/net/net_dev_queue/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/net/net_dev_xmit/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/net/netif_rx/enable 1
+ write /sys/kernel/debug/tracing/instances/wifi/events/net/netif_receive_skb/enable 1
+
+ # Set DAC to allow network_stack to enable/disable, and read wifi trace
+ # events.
+ chown network_stack network_stack /sys/kernel/debug/tracing/instances/wifi/tracing_on
+ chown network_stack network_stack /sys/kernel/debug/tracing/instances/wifi/free_buffer
+ chown network_stack network_stack /sys/kernel/debug/tracing/instances/wifi/trace
+ chmod 200 /sys/kernel/debug/tracing/instances/wifi/tracing_on
+ chmod 400 /sys/kernel/debug/tracing/instances/wifi/free_buffer
+ chmod 600 /sys/kernel/debug/tracing/instances/wifi/trace
+ setprop sys.wifitracing.started 1
+
+on property:sys.boot_completed=1 && property:wifi.interface=* && sys.wifitracing.started=1
+ # Override default value.
+ write /sys/kernel/debug/tracing/instances/wifi/events/net/filter name==${wifi.interface}