diff --git a/domain.te b/domain.te
index 2515be8ba880a9b6974e2aa53992397450eb0d62..90103fa60490a014d03b9e38a9d8f006332ccd38 100644
--- a/domain.te
+++ b/domain.te
@@ -324,7 +324,13 @@ neverallow * default_android_service:service_manager add;
 neverallow { domain -init } default_prop:property_service set;
 neverallow { domain -init } mmc_prop:property_service set;
 
-neverallow { domain -init -recovery -system_server } frp_block_device:blk_file rw_file_perms;
+neverallow {
+  domain
+  -init
+  -recovery
+  -system_server
+  -shell # Shell is further restricted in shell.te
+} frp_block_device:blk_file rw_file_perms;
 
 # No domain other than recovery and update_engine can write to system partition(s).
 neverallow { domain -recovery -update_engine } system_block_device:blk_file write;
diff --git a/shell.te b/shell.te
index e1bd1ed44f47a573045866d69940a8367e4d089a..610ed3ff79e8002833669fa740914172f9396098 100644
--- a/shell.te
+++ b/shell.te
@@ -133,6 +133,12 @@ allow shell dev_type:chr_file getattr;
 # /dev/fd is a symlink
 allow shell proc:lnk_file getattr;
 
+#
+# filesystem test for insucre blk_file's is done
+# via hostside test
+#
+allow shell dev_type:blk_file getattr;
+
 ###
 ### Neverallow rules
 ###
@@ -152,3 +158,6 @@ neverallow shell {
   hw_random_device
   kmem_device
 }:chr_file ~getattr;
+
+# Limit shell to only getattr on blk devices for host side tests.
+neverallow shell dev_type:blk_file ~getattr;