Skip to content
Snippets Groups Projects
drmserver.te 1.79 KiB
Newer Older
  • Learn to ignore specific revisions
  • Stephen Smalley's avatar
    Stephen Smalley committed
    # drmserver - DRM service
    type drmserver, domain;
    type drmserver_exec, exec_type, file_type;
    
    init_daemon_domain(drmserver)
    
    typeattribute drmserver mlstrustedsubject;
    
    
    Stephen Smalley's avatar
    Stephen Smalley committed
    net_domain(drmserver)
    
    
    # Perform Binder IPC to system server.
    binder_use(drmserver)
    binder_call(drmserver, system_server)
    binder_call(drmserver, appdomain)
    binder_service(drmserver)
    
    # Perform Binder IPC to mediaserver
    binder_call(drmserver, mediaserver)
    
    allow drmserver sdcard_type:dir search;
    allow drmserver drm_data_file:dir create_dir_perms;
    allow drmserver drm_data_file:file create_file_perms;
    allow drmserver tee_device:chr_file rw_file_perms;
    
    allow drmserver app_data_file:file { read write getattr };
    
    allow drmserver sdcard_type:file { read write getattr };
    
    r_dir_file(drmserver, efs_file)
    
    type drmserver_socket, file_type;
    
    # /data/app/tlcd_sock socket file.
    # Clearly, /data/app is the most logical place to create a socket.  Not.
    allow drmserver apk_data_file:dir rw_dir_perms;
    type_transition drmserver apk_data_file:sock_file drmserver_socket;
    allow drmserver drmserver_socket:sock_file create_file_perms;
    
    allow drmserver tee:unix_stream_socket connectto;
    
    # Delete old socket file if present.
    allow drmserver apk_data_file:sock_file unlink;
    
    
    # After taking a video, drmserver looks at the video file.
    r_dir_file(drmserver, media_rw_data_file)
    
    
    # Read resources from open apk files passed over Binder.
    allow drmserver apk_data_file:file { read getattr };
    allow drmserver asec_apk_file:file { read getattr };
    
    
    # Read /data/data/com.android.providers.telephony files passed over Binder.
    allow drmserver radio_data_file:file { read getattr };
    
    
    allow drmserver drmserver_service:service_manager add;
    
    
    # Audited locally.
    service_manager_local_audit_domain(drmserver)
    auditallow drmserver { service_manager_type -drmserver_service }:service_manager find;