Skip to content
Snippets Groups Projects
surfaceflinger.te 1.71 KiB
Newer Older
  • Learn to ignore specific revisions
  • Stephen Smalley's avatar
    Stephen Smalley committed
    # surfaceflinger - display compositor service
    type surfaceflinger, domain;
    
    permissive_or_unconfined(surfaceflinger)
    
    Stephen Smalley's avatar
    Stephen Smalley committed
    type surfaceflinger_exec, exec_type, file_type;
    
    init_daemon_domain(surfaceflinger)
    
    typeattribute surfaceflinger mlstrustedsubject;
    
    Stephen Smalley's avatar
    Stephen Smalley committed
    
    # Talk to init over the property socket.
    unix_socket_connect(surfaceflinger, property, init)
    
    
    # Perform Binder IPC.
    binder_use(surfaceflinger)
    binder_call(surfaceflinger, system_server)
    
    Nick Kralevich's avatar
    Nick Kralevich committed
    binder_call(surfaceflinger, nfc)
    
    rpcraig's avatar
    rpcraig committed
    binder_call(surfaceflinger, mediaserver)
    
    binder_service(surfaceflinger)
    
    
    # Access the GPU.
    allow surfaceflinger gpu_device:chr_file rw_file_perms;
    
    
    # Access /dev/graphics/fb0.
    allow surfaceflinger graphics_device:dir search;
    allow surfaceflinger graphics_device:chr_file rw_file_perms;
    
    # Access /dev/video1.
    
    allow surfaceflinger video_device:dir r_dir_perms;
    
    allow surfaceflinger video_device:chr_file rw_file_perms;
    
    # Create and use netlink kobject uevent sockets.
    allow surfaceflinger self:netlink_kobject_uevent_socket *;
    
    # Set properties.
    allow surfaceflinger system_prop:property_service set;
    allow surfaceflinger ctl_default_prop:property_service set;
    
    # Use open files supplied by an app.
    allow surfaceflinger appdomain:fd use;
    allow surfaceflinger platform_app_data_file:file { read write };
    allow surfaceflinger app_data_file:file { read write };
    
    
    # Use open file provided by bootanim.
    allow surfaceflinger bootanim:fd use;
    
    
    # Allow a dumpstate triggered screenshot
    binder_call(surfaceflinger, dumpstate)
    
    binder_call(surfaceflinger, shell)
    
    
    # Needed on some devices for playing DRM protected content,
    # but seems expected and appropriate for all devices.
    allow surfaceflinger tee:unix_stream_socket connectto;
    allow surfaceflinger tee_device:chr_file rw_file_perms;