selinux rules for codec process
Bug: 22775369 Change-Id: I9733457b85dbaeb872b8f4aff31d0b8808fa7d44
This commit is contained in:
parent
7060411a28
commit
2afb217b68
11 changed files with 59 additions and 3 deletions
|
@ -48,9 +48,9 @@ allow dumpstate { appdomain autoplay_app system_server }:process signal;
|
|||
|
||||
# Signal native processes to dump their stack.
|
||||
# This list comes from native_processes_to_dump in dumpstate/utils.c
|
||||
allow dumpstate { audioserver drmserver mediaserver mediaextractor sdcardd surfaceflinger }:process signal;
|
||||
allow dumpstate { audioserver drmserver mediaserver mediacodec mediaextractor sdcardd surfaceflinger }:process signal;
|
||||
# Ask debuggerd for the backtraces of these processes.
|
||||
allow dumpstate { audioserver drmserver mediaserver mediaextractor sdcardd surfaceflinger }:debuggerd dump_backtrace;
|
||||
allow dumpstate { audioserver drmserver mediaserver mediacodec mediaextractor sdcardd surfaceflinger }:debuggerd dump_backtrace;
|
||||
|
||||
# Execute and transition to the vdc domain
|
||||
domain_auto_trans(dumpstate, vdc_exec, vdc)
|
||||
|
|
|
@ -166,6 +166,7 @@
|
|||
/system/bin/audioserver u:object_r:audioserver_exec:s0
|
||||
/system/bin/mediaserver u:object_r:mediaserver_exec:s0
|
||||
/system/bin/mediaextractor u:object_r:mediaextractor_exec:s0
|
||||
/system/bin/mediacodec u:object_r:mediacodec_exec:s0
|
||||
/system/bin/mdnsd u:object_r:mdnsd_exec:s0
|
||||
/system/bin/installd u:object_r:installd_exec:s0
|
||||
/system/bin/keystore u:object_r:keystore_exec:s0
|
||||
|
|
46
mediacodec.te
Normal file
46
mediacodec.te
Normal file
|
@ -0,0 +1,46 @@
|
|||
# mediacodec - multimedia daemon
|
||||
type mediacodec, domain, domain_deprecated;
|
||||
type mediacodec_exec, exec_type, file_type;
|
||||
|
||||
typeattribute mediacodec mlstrustedsubject;
|
||||
|
||||
init_daemon_domain(mediacodec)
|
||||
|
||||
binder_use(mediacodec)
|
||||
binder_call(mediacodec, binderservicedomain)
|
||||
binder_call(mediacodec, appdomain)
|
||||
binder_service(mediacodec)
|
||||
|
||||
allow mediacodec kernel:system module_request;
|
||||
allow mediacodec gpu_device:chr_file rw_file_perms;
|
||||
allow mediacodec video_device:dir r_dir_perms;
|
||||
allow mediacodec video_device:chr_file rw_file_perms;
|
||||
|
||||
# Needed on some devices for playing DRM protected content,
|
||||
# but seems expected and appropriate for all devices.
|
||||
unix_socket_connect(mediacodec, drmserver, drmserver)
|
||||
|
||||
allow mediacodec drmserver_service:service_manager find;
|
||||
allow mediacodec mediacodec_service:service_manager { add find };
|
||||
allow mediacodec processinfo_service:service_manager find;
|
||||
allow mediacodec surfaceflinger_service:service_manager find;
|
||||
|
||||
use_drmservice(mediacodec)
|
||||
allow mediacodec drmserver:drmservice {
|
||||
consumeRights
|
||||
setPlaybackStatus
|
||||
openDecryptSession
|
||||
closeDecryptSession
|
||||
initializeDecryptUnit
|
||||
decrypt
|
||||
finalizeDecryptUnit
|
||||
pread
|
||||
};
|
||||
|
||||
###
|
||||
### neverallow rules
|
||||
###
|
||||
|
||||
# mediacodec should never execute any executable without a
|
||||
# domain transition
|
||||
neverallow mediacodec { file_type fs_type }:file execute_no_trans;
|
|
@ -85,6 +85,7 @@ allow mediaserver cameraproxy_service:service_manager find;
|
|||
allow mediaserver batterystats_service:service_manager find;
|
||||
allow mediaserver drmserver_service:service_manager find;
|
||||
allow mediaserver mediaextractor_service:service_manager find;
|
||||
allow mediaserver mediacodec_service:service_manager find;
|
||||
allow mediaserver mediaserver_service:service_manager { add find };
|
||||
allow mediaserver media_session_service:service_manager find;
|
||||
allow mediaserver permission_service:service_manager find;
|
||||
|
|
1
nfc.te
1
nfc.te
|
@ -21,6 +21,7 @@ allow nfc audioserver_service:service_manager find;
|
|||
allow nfc drmserver_service:service_manager find;
|
||||
allow nfc mediaserver_service:service_manager find;
|
||||
allow nfc mediaextractor_service:service_manager find;
|
||||
allow nfc mediacodec_service:service_manager find;
|
||||
allow nfc nfc_service:service_manager { add find };
|
||||
allow nfc radio_service:service_manager find;
|
||||
allow nfc surfaceflinger_service:service_manager find;
|
||||
|
|
|
@ -42,6 +42,7 @@ allow platform_app audioserver_service:service_manager find;
|
|||
allow platform_app drmserver_service:service_manager find;
|
||||
allow platform_app mediaserver_service:service_manager find;
|
||||
allow platform_app mediaextractor_service:service_manager find;
|
||||
allow platform_app mediacodec_service:service_manager find;
|
||||
allow platform_app persistent_data_block_service:service_manager find;
|
||||
allow platform_app radio_service:service_manager find;
|
||||
allow platform_app surfaceflinger_service:service_manager find;
|
||||
|
|
|
@ -23,6 +23,7 @@ allow priv_app audioserver_service:service_manager find;
|
|||
allow priv_app drmserver_service:service_manager find;
|
||||
allow priv_app mediaserver_service:service_manager find;
|
||||
allow priv_app mediaextractor_service:service_manager find;
|
||||
allow priv_app mediacodec_service:service_manager find;
|
||||
allow priv_app nfc_service:service_manager find;
|
||||
allow priv_app radio_service:service_manager find;
|
||||
allow priv_app surfaceflinger_service:service_manager find;
|
||||
|
|
|
@ -9,6 +9,7 @@ type inputflinger_service, service_manager_type;
|
|||
type keystore_service, service_manager_type;
|
||||
type mediaserver_service, service_manager_type;
|
||||
type mediaextractor_service, service_manager_type;
|
||||
type mediacodec_service, service_manager_type;
|
||||
type nfc_service, service_manager_type;
|
||||
type radio_service, service_manager_type;
|
||||
type surfaceflinger_service, service_manager_type;
|
||||
|
|
|
@ -67,6 +67,7 @@ media.camera.proxy u:object_r:cameraproxy_service:s0
|
|||
media.log u:object_r:audioserver_service:s0
|
||||
media.player u:object_r:mediaserver_service:s0
|
||||
media.extractor u:object_r:mediaextractor_service:s0
|
||||
media.codec u:object_r:mediacodec_service:s0
|
||||
media.resource_manager u:object_r:mediaserver_service:s0
|
||||
media.radio u:object_r:audioserver_service:s0
|
||||
media.sound_trigger_hw u:object_r:audioserver_service:s0
|
||||
|
|
|
@ -138,12 +138,13 @@ binder_call(system_server, dumpstate)
|
|||
binder_service(system_server)
|
||||
|
||||
# Ask debuggerd to dump backtraces for native stacks of interest.
|
||||
allow system_server { audioserver mediaserver mediaextractor sdcardd surfaceflinger inputflinger }:debuggerd dump_backtrace;
|
||||
allow system_server { audioserver mediaserver mediacodec mediaextractor sdcardd surfaceflinger inputflinger }:debuggerd dump_backtrace;
|
||||
|
||||
# Read /proc/pid files for dumping stack traces of native processes.
|
||||
r_dir_file(system_server, audioserver)
|
||||
r_dir_file(system_server, mediaserver)
|
||||
r_dir_file(system_server, mediaextractor)
|
||||
r_dir_file(system_server, mediacodec)
|
||||
r_dir_file(system_server, sdcardd)
|
||||
r_dir_file(system_server, surfaceflinger)
|
||||
r_dir_file(system_server, inputflinger)
|
||||
|
@ -387,6 +388,7 @@ allow system_server gatekeeper_service:service_manager find;
|
|||
allow system_server fingerprintd_service:service_manager find;
|
||||
allow system_server mediaserver_service:service_manager find;
|
||||
allow system_server mediaextractor_service:service_manager find;
|
||||
allow system_server mediacodec_service:service_manager find;
|
||||
allow system_server nfc_service:service_manager find;
|
||||
allow system_server radio_service:service_manager find;
|
||||
allow system_server system_server_service:service_manager { add find };
|
||||
|
|
|
@ -71,6 +71,7 @@ allow untrusted_app drmserver_service:service_manager find;
|
|||
allow untrusted_app healthd_service:service_manager find;
|
||||
allow untrusted_app mediaserver_service:service_manager find;
|
||||
allow untrusted_app mediaextractor_service:service_manager find;
|
||||
allow untrusted_app mediacodec_service:service_manager find;
|
||||
allow untrusted_app nfc_service:service_manager find;
|
||||
allow untrusted_app radio_service:service_manager find;
|
||||
allow untrusted_app surfaceflinger_service:service_manager find;
|
||||
|
|
Loading…
Reference in a new issue