diff --git a/app.te b/app.te
index 02e3f11aa88258b87677b40becde0d73e6081622..7d4acfb706163baf30ec4b054a42967ebdbe1f23 100644
--- a/app.te
+++ b/app.te
@@ -67,7 +67,6 @@ allow appdomain system_data_file:file { execute execute_no_trans open };
 # Execute the shell or other system executables.
 allow appdomain shell_exec:file rx_file_perms;
 allow appdomain system_file:file rx_file_perms;
-allow appdomain ping_exec:file rx_file_perms;
 
 # Read/write wallpaper file (opened by system).
 allow appdomain wallpaper_file:file { read write };
@@ -268,7 +267,7 @@ neverallow { appdomain -unconfineddomain } { domain -appdomain }:process
     { sigkill sigstop signal };
 
 # Transition to a non-app domain.
-# Exception for the shell domain, can transition to runas, ping, etc.
+# Exception for the shell domain, can transition to runas, etc.
 neverallow { appdomain -shell -unconfineddomain } ~appdomain:process
     { transition dyntransition };
 
diff --git a/file_contexts b/file_contexts
index 817c0e02120f27cc61dfd9fbfc52953f68067bc3..6c530a66e1caeb536971c7613a3161479f355d09 100644
--- a/file_contexts
+++ b/file_contexts
@@ -142,7 +142,6 @@
 /system/etc/dhcpcd(/.*)? u:object_r:dhcp_system_file:s0
 /system/xbin/su		u:object_r:su_exec:s0
 /system/vendor/bin/gpsd u:object_r:gpsd_exec:s0
-/system/bin/ping    u:object_r:ping_exec:s0
 /system/bin/dnsmasq     u:object_r:dnsmasq_exec:s0
 /system/bin/hostapd     u:object_r:hostapd_exec:s0
 /system/bin/clatd	u:object_r:clatd_exec:s0
diff --git a/ping.te b/ping.te
deleted file mode 100644
index 20ec97a254b473bec3d6ecd15e1d2ba493a5aa45..0000000000000000000000000000000000000000
--- a/ping.te
+++ /dev/null
@@ -1,17 +0,0 @@
-type ping, domain;
-permissive ping;
-type ping_exec, exec_type, file_type;
-domain_auto_trans(shell, ping_exec, ping)
-domain_auto_trans(dumpstate, ping_exec, ping)
-
-allow ping self:capability net_raw;
-allow ping self:rawip_socket create_socket_perms;
-allow ping self:udp_socket create_socket_perms;
-allow ping node:rawip_socket node_bind;
-allow ping dnsproxyd_socket:sock_file write;
-allow ping netd:unix_stream_socket connectto;
-allow ping devpts:chr_file rw_file_perms;
-allow ping shell:fd use;
-
-allow ping dumpstate:fd use;
-allow ping dumpstate:unix_stream_socket { read write };
diff --git a/shell.te b/shell.te
index 9fd7c6d3035ef3c164704e90110e01817cb3a4d6..18c1dfc223190348963d5099cb9a5333b897660d 100644
--- a/shell.te
+++ b/shell.te
@@ -2,6 +2,9 @@
 type shell, domain, shelldomain, mlstrustedsubject;
 type shell_exec, exec_type, file_type;
 
+# Create and use network sockets.
+net_domain(shell)
+
 # Run app_process.
 # XXX Transition into its own domain?
 app_domain(shell)
diff --git a/shell_user.te b/shell_user.te
index 27a5cd095178b0990f1b67f03a96b5c44d62b38c..ad30802c7f199866b27be85e75c609ca834801d7 100644
--- a/shell_user.te
+++ b/shell_user.te
@@ -2,6 +2,9 @@
 type shell, domain, shelldomain, mlstrustedsubject;
 type shell_exec, exec_type, file_type;
 
+# Create and use network sockets.
+net_domain(shell)
+
 # Run app_process.
 # XXX Transition into its own domain?
 app_domain(shell)