diff options
author | 2019-06-11 06:52:01 -0700 | |
---|---|---|
committer | 2019-08-08 12:26:18 -0700 | |
commit | 09d08e66a0a9d1194d9a61beceaaa212fc55a501 (patch) | |
tree | b2f033a3fa6f62b9ec39b846c3c217971c2bfc01 /service/wifi.rc | |
parent | 05d4641213e83dc47f14d829e25e5d029b095fbc (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.rc | 89 |
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} |