diff --git a/private/init.te b/private/init.te
index fb4335a0908e3698f22e213821f5a0f2c56a3275..f84d87ebb32d0682feb087d30d7afc070d245ed0 100644
--- a/private/init.te
+++ b/private/init.te
@@ -14,6 +14,7 @@ domain_trans(init, shell_exec, shell)
 domain_trans(init, init_exec, ueventd)
 domain_trans(init, init_exec, watchdogd)
 domain_trans(init, rootfs, modprobe)
+domain_trans(init, toolbox_exec, modprobe)
 # case where logpersistd is actually logcat -f in logd context (nee: logcatd)
 userdebug_or_eng(`
   domain_auto_trans(init, logcat_exec, logpersist)
diff --git a/public/modprobe.te b/public/modprobe.te
index 0fc173df65cc5237e5507c83970f8a39094cb9e0..ca0657f88485f2aa4ed1f79bcd5f7f7f6aca0ded 100644
--- a/public/modprobe.te
+++ b/public/modprobe.te
@@ -6,3 +6,4 @@ recovery_only(`
   allow modprobe rootfs:system module_load;
   allow modprobe rootfs:file r_file_perms;
 ')
+allow modprobe system_file:system module_load;