From 6f9ac6e4ccf7b6410e8ef0aaa26817ea6b7b5916 Mon Sep 17 00:00:00 2001
From: Jerry Zhang <zhangjerry@google.com>
Date: Wed, 26 Apr 2017 10:18:30 -0700
Subject: [PATCH] Add drm and kernel permissions to mediaprovider

These were missing when the sepolicy was migrated.

Addresses denials:

E SELinux : avc:  denied  { find } for service=drm.drmManager pid=11769
uid=10018 scontext=u:r:mediaprovider:s0:c512,c768
tcontext=u:object_r:drmserver_service:s0 tclass=service_manager

W kworker/u16:2: type=1400 audit(0.0:1667): avc: denied { use } for
path="/storage/emulated/0/DCIM/Camera/IMG_20170425_124723.jpg"
dev="sdcardfs" ino=1032250 scontext=u:r:kernel:s0
tcontext=u:r:mediaprovider:s0:c512,c768 tclass=fd permissive=0

Bug: 37685394
Bug: 37686255
Test: Sync files
Test: Open downloaded file

Change-Id: Ibb02d233720b8510c3eec0463b8909fcc5bbb73d
---
 private/mediaprovider.te | 1 +
 public/kernel.te         | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/private/mediaprovider.te b/private/mediaprovider.te
index 4be640118..63f56c876 100644
--- a/private/mediaprovider.te
+++ b/private/mediaprovider.te
@@ -17,6 +17,7 @@ allow mediaprovider cache_file:lnk_file r_file_perms;
 
 allow mediaprovider app_api_service:service_manager find;
 allow mediaprovider audioserver_service:service_manager find;
+allow mediaprovider drmserver_service:service_manager find;
 allow mediaprovider mediaserver_service:service_manager find;
 allow mediaprovider surfaceflinger_service:service_manager find;
 
diff --git a/public/kernel.te b/public/kernel.te
index e70528778..75043b815 100644
--- a/public/kernel.te
+++ b/public/kernel.te
@@ -50,6 +50,9 @@ allow kernel self:security setcheckreqprot;
 # kernel thread "loop0", used by the loop block device, for ASECs (b/17158723)
 allow kernel sdcard_type:file { read write };
 
+# f_mtp driver accesses files from kernel context.
+allow kernel mediaprovider:fd use;
+
 # Allow the kernel to read OBB files from app directories. (b/17428116)
 # Kernel thread "loop0" reads a vold supplied file descriptor.
 # Fixes CTS tests:
-- 
GitLab