diff --git a/file.te b/file.te
index 61c9be5bbb57dae814c84b1bb357237dca478815..dc0b0c68b26d1527c52d3824df3c6e45471f3336 100644
--- a/file.te
+++ b/file.te
@@ -116,6 +116,7 @@ type logd_socket, file_type;
 type logdr_socket, file_type;
 type logdw_socket, file_type;
 type mdns_socket, file_type;
+type mdnsd_socket, file_type;
 type netd_socket, file_type;
 type property_socket, file_type;
 type qemud_socket, file_type;
diff --git a/file_contexts b/file_contexts
index 81698d1ef673216cc474db71894668c7dc035c6a..4b0ae8ab15aa359ebdae12dacaa915fdc248ed84 100644
--- a/file_contexts
+++ b/file_contexts
@@ -86,6 +86,7 @@
 /dev/socket/logdr	u:object_r:logdr_socket:s0
 /dev/socket/logdw	u:object_r:logdw_socket:s0
 /dev/socket/mdns	u:object_r:mdns_socket:s0
+/dev/socket/mdnsd	u:object_r:mdnsd_socket:s0
 /dev/socket/netd	u:object_r:netd_socket:s0
 /dev/socket/property_service	u:object_r:property_socket:s0
 /dev/socket/qemud	u:object_r:qemud_socket:s0
@@ -130,6 +131,7 @@
 /system/bin/netd	u:object_r:netd_exec:s0
 /system/bin/rild	u:object_r:rild_exec:s0
 /system/bin/mediaserver	u:object_r:mediaserver_exec:s0
+/system/bin/mdnsd	u:object_r:mdnsd_exec:s0
 /system/bin/installd	u:object_r:installd_exec:s0
 /system/bin/keystore	u:object_r:keystore_exec:s0
 /system/bin/debuggerd	u:object_r:debuggerd_exec:s0
diff --git a/mdnsd.te b/mdnsd.te
new file mode 100644
index 0000000000000000000000000000000000000000..cfcf87341035e7166b7f5e7c65de4e1fb6ec7abe
--- /dev/null
+++ b/mdnsd.te
@@ -0,0 +1,7 @@
+# mdns daemon
+type mdnsd, domain;
+permissive_or_unconfined(mdnsd)
+type mdnsd_exec, exec_type, file_type;
+
+init_daemon_domain(mdnsd)
+net_domain(mdnsd)
diff --git a/net.te b/net.te
index b10cecdaab3df2c0e5b3f6e9342e42af19967491..32b9fb7476c6c5695932ef4f212cea0501f6e26b 100644
--- a/net.te
+++ b/net.te
@@ -16,3 +16,6 @@ allow netdomain self:netlink_route_socket { create bind read nlmsg_read };
 
 # Talks to netd via dnsproxyd socket.
 unix_socket_connect(netdomain, dnsproxyd, netd)
+
+# Connect to mdnsd via mdnsd socket.
+unix_socket_connect(netdomain, mdnsd, mdnsd)
diff --git a/netd.te b/netd.te
index fb54bde9236299dc993edf2bbe4a3331687dd70b..b8d26f9577b18e5ce1220b9e1c933873ca36013e 100644
--- a/netd.te
+++ b/netd.te
@@ -61,7 +61,6 @@ allow netd clatd:process signal;
 # Support netd running mdnsd
 # TODO: prune this back further
 allow netd ctl_default_prop:property_service set;
-allow netd device:sock_file write;
 
 ###
 ### Neverallow rules