diff --git a/device.te b/device.te
index 9ca072f38a9182494da5baff813d8de811dbb68f..adee1d7bf74f87bf185b70d01d44687e899921d1 100644
--- a/device.te
+++ b/device.te
@@ -65,5 +65,5 @@ type rpmsg_device, dev_type;
 # Partition layout block device
 type root_block_device, dev_type;
 
-# Persistent data block device
-type persistent_data_block_device, dev_type;
+# factory reset protection block device
+type frp_block_device, dev_type;
diff --git a/domain.te b/domain.te
index e80a1d9578debf59db4e29051045ebf1c5fc0346..a3dd217433ef67634cb86a1f94c81ae4202f10dc 100644
--- a/domain.te
+++ b/domain.te
@@ -311,3 +311,5 @@ neverallow domain default_android_service:service_manager add;
 # Require that domains explicitly label unknown properties, and do not allow
 # anyone but init to modify unknown properties.
 neverallow { domain -init } default_prop:property_service set;
+
+neverallow { domain -init -recovery -system_server } frp_block_device:blk_file rw_file_perms;
diff --git a/system_server.te b/system_server.te
index 438d09d580798132c64a51cf5a545911d04e22ca..020f2ab0c706c323cadd2e92a384a9d3b66d52d7 100644
--- a/system_server.te
+++ b/system_server.te
@@ -386,10 +386,10 @@ allow system_server keystore:keystore_key {
 	password_uid
 };
 
-# Allow system server to search and write to the persistent data block device
-# This block device does not get wiped in a factory reset.
-allow system_server persistent_data_block_device:blk_file rw_file_perms;
+# Allow system server to search and write to the persistent factory reset
+# protection partition. This block device does not get wiped in a factory reset.
 allow system_server block_device:dir search;
+allow system_server frp_block_device:blk_file rw_file_perms;
 
 # Clean up old cgroups
 allow system_server cgroup:dir { remove_name rmdir };