diff --git a/public/recovery.te b/public/recovery.te
index 9db6f5ef876fe120585c08940c8397e9bd67ef92..6cb391c407d9ec9ef1b7c5a153d9053578b9e4a3 100644
--- a/public/recovery.te
+++ b/public/recovery.te
@@ -76,6 +76,7 @@ recovery_only(`
   # Access /dev/usb-ffs/adb/ep0
   allow recovery functionfs:dir search;
   allow recovery functionfs:file rw_file_perms;
+  allowxperm recovery functionfs:file ioctl FUNCTIONFS_ENDPOINT_DESC;
 
   # Access to /sys/fs/selinux/policyvers for compatibility check
   allow recovery selinuxfs:file r_file_perms;