From 5aef6a9469ef54a8733a2794495526a2ce579473 Mon Sep 17 00:00:00 2001
From: Niranjan Pendharkar <npendhar@codeaurora.org>
Date: Wed, 26 Jul 2017 11:22:07 -0700
Subject: [PATCH] Add system_net_netd_hwservice.

This hidl service provides functionality for oem networking
configuration to vendor services which is required by
at least some vendor radio modules.

Test: VtsHalNetNetdV1_0TargetTest, netd_integration_test, netd_unit_test
Test: no denials
Bug: 36682246
Change-Id: I86ac9082166b406b2fc814972375ba737460ad7b
---
 private/hwservice_contexts | 1 +
 public/hwservice.te        | 1 +
 public/netd.te             | 5 +++++
 3 files changed, 7 insertions(+)

diff --git a/private/hwservice_contexts b/private/hwservice_contexts
index 397a3b165..3cc6b1f90 100644
--- a/private/hwservice_contexts
+++ b/private/hwservice_contexts
@@ -49,5 +49,6 @@ android.hidl.base::IBase                                        u:object_r:hidl_
 android.hidl.manager::IServiceManager                           u:object_r:hidl_manager_hwservice:s0
 android.hidl.memory::IMapper                                    u:object_r:hidl_memory_hwservice:s0
 android.hidl.token::ITokenManager                               u:object_r:hidl_token_hwservice:s0
+android.system.net.netd::INetd                                  u:object_r:system_net_netd_hwservice:s0
 android.system.wifi.keystore::IKeystore                         u:object_r:system_wifi_keystore_hwservice:s0
 *                                                               u:object_r:default_android_hwservice:s0
diff --git a/public/hwservice.te b/public/hwservice.te
index bb2c668d7..3d9f095d1 100644
--- a/public/hwservice.te
+++ b/public/hwservice.te
@@ -44,4 +44,5 @@ type hidl_base_hwservice, hwservice_manager_type;
 type hidl_manager_hwservice, hwservice_manager_type, coredomain_hwservice;
 type hidl_memory_hwservice, hwservice_manager_type, coredomain_hwservice;
 type hidl_token_hwservice, hwservice_manager_type, coredomain_hwservice;
+type system_net_netd_hwservice, hwservice_manager_type, coredomain_hwservice;
 type system_wifi_keystore_hwservice, hwservice_manager_type, coredomain_hwservice;
diff --git a/public/netd.te b/public/netd.te
index 691887fcd..82beaf76d 100644
--- a/public/netd.te
+++ b/public/netd.te
@@ -87,6 +87,11 @@ allow netd netdomain:fd use;
 # give netd permission to read and write netlink xfrm
 allow netd self:netlink_xfrm_socket { create_socket_perms_no_ioctl nlmsg_write nlmsg_read };
 
+# Allow netd to register as hal server.
+add_hwservice(netd, system_net_netd_hwservice)
+hwbinder_use(netd)
+get_prop(netd, hwservicemanager_prop)
+
 ###
 ### Neverallow rules
 ###
-- 
GitLab