Skip to content
Snippets Groups Projects
Commit 2724e81c authored by Roshan Pius's avatar Roshan Pius Committed by Android (Google) Code Review
Browse files

Merge "sepolicy(hostapd): Add a HIDL interface for hostapd"

parents 66b4faba 5bca3e86
Branches
Tags
No related merge requests found
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
hal_lowpan_hwservice hal_lowpan_hwservice
hal_neuralnetworks_hwservice hal_neuralnetworks_hwservice
hal_tetheroffload_hwservice hal_tetheroffload_hwservice
hal_wifi_hostapd_hwservice
hal_wifi_offload_hwservice hal_wifi_offload_hwservice
kmsg_debug_device kmsg_debug_device
last_boot_reason_prop last_boot_reason_prop
... ...
......
...@@ -47,6 +47,7 @@ android.hardware.vibrator::IVibrator u:object_r:hal_v ...@@ -47,6 +47,7 @@ android.hardware.vibrator::IVibrator u:object_r:hal_v
android.hardware.vr::IVr u:object_r:hal_vr_hwservice:s0 android.hardware.vr::IVr u:object_r:hal_vr_hwservice:s0
android.hardware.weaver::IWeaver u:object_r:hal_weaver_hwservice:s0 android.hardware.weaver::IWeaver u:object_r:hal_weaver_hwservice:s0
android.hardware.wifi::IWifi u:object_r:hal_wifi_hwservice:s0 android.hardware.wifi::IWifi u:object_r:hal_wifi_hwservice:s0
android.hardware.wifi.hostapd::IHostapd u:object_r:hal_wifi_hostapd_hwservice:s0
android.hardware.wifi.offload::IOffload u:object_r:hal_wifi_offload_hwservice:s0 android.hardware.wifi.offload::IOffload u:object_r:hal_wifi_offload_hwservice:s0
android.hardware.wifi.supplicant::ISupplicant u:object_r:hal_wifi_supplicant_hwservice:s0 android.hardware.wifi.supplicant::ISupplicant u:object_r:hal_wifi_supplicant_hwservice:s0
android.hidl.allocator::IAllocator u:object_r:hidl_allocator_hwservice:s0 android.hidl.allocator::IAllocator u:object_r:hidl_allocator_hwservice:s0
... ...
......
...@@ -202,6 +202,7 @@ hal_client_domain(system_server, hal_vibrator) ...@@ -202,6 +202,7 @@ hal_client_domain(system_server, hal_vibrator)
hal_client_domain(system_server, hal_vr) hal_client_domain(system_server, hal_vr)
hal_client_domain(system_server, hal_weaver) hal_client_domain(system_server, hal_weaver)
hal_client_domain(system_server, hal_wifi) hal_client_domain(system_server, hal_wifi)
hal_client_domain(system_server, hal_wifi_hostapd)
hal_client_domain(system_server, hal_wifi_offload) hal_client_domain(system_server, hal_wifi_offload)
hal_client_domain(system_server, hal_wifi_supplicant) hal_client_domain(system_server, hal_wifi_supplicant)
... ...
......
...@@ -239,6 +239,7 @@ hal_attribute(vibrator); ...@@ -239,6 +239,7 @@ hal_attribute(vibrator);
hal_attribute(vr); hal_attribute(vr);
hal_attribute(weaver); hal_attribute(weaver);
hal_attribute(wifi); hal_attribute(wifi);
hal_attribute(wifi_hostapd);
hal_attribute(wifi_offload); hal_attribute(wifi_offload);
hal_attribute(wifi_supplicant); hal_attribute(wifi_supplicant);
... ...
......
...@@ -4,6 +4,7 @@ neverallow { ...@@ -4,6 +4,7 @@ neverallow {
halserverdomain halserverdomain
-hal_bluetooth_server -hal_bluetooth_server
-hal_wifi_server -hal_wifi_server
-hal_wifi_hostapd_server
-hal_wifi_supplicant_server -hal_wifi_supplicant_server
-rild -rild
} self:global_capability_class_set { net_admin net_raw }; } self:global_capability_class_set { net_admin net_raw };
...@@ -14,6 +15,7 @@ neverallow { ...@@ -14,6 +15,7 @@ neverallow {
halserverdomain halserverdomain
-hal_tetheroffload_server -hal_tetheroffload_server
-hal_wifi_server -hal_wifi_server
-hal_wifi_hostapd_server
-hal_wifi_supplicant_server -hal_wifi_supplicant_server
-rild -rild
} domain:{ tcp_socket udp_socket rawip_socket } *; } domain:{ tcp_socket udp_socket rawip_socket } *;
... ...
......
# HwBinder IPC from client to server
binder_call(hal_wifi_hostapd_client, hal_wifi_hostapd_server)
binder_call(hal_wifi_hostapd_server, hal_wifi_hostapd_client)
add_hwservice(hal_wifi_hostapd_server, hal_wifi_hostapd_hwservice)
allow hal_wifi_hostapd_client hal_wifi_hostapd_hwservice:hwservice_manager find;
allow hal_wifi_hostapd_server self:global_capability_class_set { net_admin net_raw };
allow hal_wifi_hostapd_server sysfs_net:dir search;
# Allow hal_wifi_hostapd to access /proc/net/psched
allow hal_wifi_hostapd_server proc_net:file { getattr open read };
# Various socket permissions.
allowxperm hal_wifi_hostapd_server self:udp_socket ioctl priv_sock_ioctls;
allow hal_wifi_hostapd_server self:netlink_socket create_socket_perms_no_ioctl;
allow hal_wifi_hostapd_server self:netlink_generic_socket create_socket_perms_no_ioctl;
allow hal_wifi_hostapd_server self:packet_socket create_socket_perms_no_ioctl;
allow hal_wifi_hostapd_server self:netlink_route_socket nlmsg_write;
###
### neverallow rules
###
# hal_wifi_hostapd should not trust any data from sdcards
neverallow hal_wifi_hostapd_server sdcard_type:dir ~getattr;
neverallow hal_wifi_hostapd_server sdcard_type:file *;
...@@ -41,6 +41,7 @@ type hal_vibrator_hwservice, hwservice_manager_type; ...@@ -41,6 +41,7 @@ type hal_vibrator_hwservice, hwservice_manager_type;
type hal_vr_hwservice, hwservice_manager_type; type hal_vr_hwservice, hwservice_manager_type;
type hal_weaver_hwservice, hwservice_manager_type; type hal_weaver_hwservice, hwservice_manager_type;
type hal_wifi_hwservice, hwservice_manager_type; type hal_wifi_hwservice, hwservice_manager_type;
type hal_wifi_hostapd_hwservice, hwservice_manager_type;
type hal_wifi_offload_hwservice, hwservice_manager_type; type hal_wifi_offload_hwservice, hwservice_manager_type;
type hal_wifi_supplicant_hwservice, hwservice_manager_type; type hal_wifi_supplicant_hwservice, hwservice_manager_type;
type hidl_allocator_hwservice, hwservice_manager_type, coredomain_hwservice; type hidl_allocator_hwservice, hwservice_manager_type, coredomain_hwservice;
... ...
......
...@@ -91,6 +91,7 @@ userdebug_or_eng(` ...@@ -91,6 +91,7 @@ userdebug_or_eng(`
typeattribute su hal_vr_client; typeattribute su hal_vr_client;
typeattribute su hal_weaver_client; typeattribute su hal_weaver_client;
typeattribute su hal_wifi_client; typeattribute su hal_wifi_client;
typeattribute su hal_wifi_hostapd_client;
typeattribute su hal_wifi_offload_client; typeattribute su hal_wifi_offload_client;
typeattribute su hal_wifi_supplicant_client; typeattribute su hal_wifi_supplicant_client;
') ')
# Socket types # Hostapd conf files
type hostapd_socket, file_type, data_file_type; type hostapd_data_file, file_type, data_file_type;
...@@ -38,8 +38,8 @@ ...@@ -38,8 +38,8 @@
/(vendor|system/vendor)/bin/hw/android\.hardware\.vr@1\.0-service u:object_r:hal_vr_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.vr@1\.0-service u:object_r:hal_vr_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.wifi\.offload@1\.0-service u:object_r:hal_wifi_offload_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.wifi\.offload@1\.0-service u:object_r:hal_wifi_offload_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.wifi@1\.0-service u:object_r:hal_wifi_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.wifi@1\.0-service u:object_r:hal_wifi_default_exec:s0
/(vendor|system/vendor)/bin/hw/hostapd u:object_r:hal_wifi_hostapd_default_exec:s0
/(vendor|system/vendor)/bin/hw/wpa_supplicant u:object_r:hal_wifi_supplicant_default_exec:s0 /(vendor|system/vendor)/bin/hw/wpa_supplicant u:object_r:hal_wifi_supplicant_default_exec:s0
/(vendor|system/vendor)/bin/hostapd u:object_r:hostapd_exec:s0
/(vendor|system/vendor)/bin/vndservicemanager u:object_r:vndservicemanager_exec:s0 /(vendor|system/vendor)/bin/vndservicemanager u:object_r:vndservicemanager_exec:s0
############################# #############################
...@@ -52,4 +52,4 @@ ...@@ -52,4 +52,4 @@
############################# #############################
# Data files # Data files
# #
/data/misc/wifi/hostapd(/.*)? u:object_r:hostapd_socket:s0 /data/vendor/wifi/hostapd(/.*)? u:object_r:hostapd_data_file:s0
# hostapd or equivalent
type hal_wifi_hostapd_default, domain;
hal_server_domain(hal_wifi_hostapd_default, hal_wifi_hostapd)
type hal_wifi_hostapd_default_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(hal_wifi_hostapd_default)
net_domain(hal_wifi_hostapd_default)
# Allow hostapd to access it's data folder
allow hal_wifi_hostapd_default hostapd_data_file:dir rw_dir_perms;
allow hal_wifi_hostapd_default hostapd_data_file:file create_file_perms;
# userspace wifi access points
type hostapd, domain;
type hostapd_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(hostapd)
net_domain(hostapd)
allow hostapd self:global_capability_class_set { net_admin net_raw };
# hostapd learns about its network interface via sysfs.
allow hostapd sysfs:file r_file_perms;
# hostapd follows the /sys/class/net/wlan0 link to the PCI device.
allow hostapd sysfs:lnk_file r_file_perms;
# Allow hostapd to access /proc/net/psched
allow hostapd proc_net:file { getattr open read };
# Various socket permissions.
allowxperm hostapd self:udp_socket ioctl priv_sock_ioctls;
allow hostapd self:netlink_socket create_socket_perms_no_ioctl;
allow hostapd self:netlink_generic_socket create_socket_perms_no_ioctl;
allow hostapd self:packet_socket create_socket_perms_no_ioctl;
allow hostapd self:netlink_route_socket nlmsg_write;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment