diff --git a/public/init.te b/public/init.te
index 10a0c6810e23691a3fe76578b474f6a0d8f8a511..72c9c4367caa7493d1a9942727ea3af3d7871b7b 100644
--- a/public/init.te
+++ b/public/init.te
@@ -362,6 +362,17 @@ allow init {
   sysfs_zram
 }:file rw_file_perms;
 
+# allow init to create loop devices with /dev/loop-control
+allow init loop_control_device:chr_file rw_file_perms;
+allow init loop_device:blk_file rw_file_perms;
+allowxperm init loop_device:blk_file ioctl {
+  LOOP_SET_FD
+  LOOP_CLR_FD
+  LOOP_CTL_GET_FREE
+  LOOP_SET_BLOCK_SIZE
+  LOOP_SET_DIRECT_IO
+};
+
 # Allow init to write to vibrator/trigger
 allow init sysfs_vibrator:file w_file_perms;