Skip to content
Snippets Groups Projects
Select Git revision
  • 1bee3fd24e636fb5bd0e45e0f35e05731cb9260a
  • master default protected
  • android-7.1.2_r28_klist
  • pie-cts-release
  • pie-vts-release
  • pie-cts-dev
  • oreo-mr1-iot-release
  • sdk-release
  • oreo-m6-s4-release
  • oreo-m4-s12-release
  • pie-release
  • pie-r2-release
  • pie-r2-s1-release
  • oreo-vts-release
  • oreo-cts-release
  • oreo-dev
  • oreo-mr1-dev
  • pie-gsi
  • pie-platform-release
  • pie-dev
  • oreo-cts-dev
  • android-o-mr1-iot-release-1.0.4
  • android-9.0.0_r8
  • android-9.0.0_r7
  • android-9.0.0_r6
  • android-9.0.0_r5
  • android-8.1.0_r46
  • android-8.1.0_r45
  • android-n-iot-release-smart-display-r2
  • android-vts-8.1_r5
  • android-cts-8.1_r8
  • android-cts-8.0_r12
  • android-cts-7.1_r20
  • android-cts-7.0_r24
  • android-o-mr1-iot-release-1.0.3
  • android-cts-9.0_r1
  • android-8.1.0_r43
  • android-8.1.0_r42
  • android-n-iot-release-smart-display
  • android-p-preview-5
  • android-9.0.0_r3
41 results

surfaceflinger.te

Blame
  • user avatar
    Jeff Vander Stoep authored and Jeffrey Vander Stoep committed
    Motivation: Domain is overly permissive. Start removing permissions
    from domain and assign them to the domain_deprecated attribute.
    Domain_deprecated and domain can initially be assigned to all
    domains. The goal is to not assign domain_deprecated to new domains
    and to start removing domain_deprecated where it is not required or
    reassigning the appropriate permissions to the inheriting domain
    when necessary.
    
    Bug: 25433265
    Change-Id: I8b11cb137df7bdd382629c98d916a73fe276413c
    d22987b4
    History
    surfaceflinger.te 2.33 KiB
    # surfaceflinger - display compositor service
    type surfaceflinger, domain, domain_deprecated;
    type surfaceflinger_exec, exec_type, file_type;
    
    init_daemon_domain(surfaceflinger)
    typeattribute surfaceflinger mlstrustedsubject;
    
    # Perform Binder IPC.
    binder_use(surfaceflinger)
    binder_call(surfaceflinger, binderservicedomain)
    binder_call(surfaceflinger, appdomain)
    binder_call(surfaceflinger, bootanim)
    binder_service(surfaceflinger)
    
    # Binder IPC to bu, presently runs in adbd domain.
    binder_call(surfaceflinger, adbd)
    
    # Read /proc/pid files for Binder clients.
    r_dir_file(surfaceflinger, binderservicedomain)
    r_dir_file(surfaceflinger, appdomain)
    
    # 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 create_socket_perms;
    
    # Set properties.
    set_prop(surfaceflinger, system_prop)
    set_prop(surfaceflinger, ctl_bootanim_prop)
    
    # Use open files supplied by an app.
    allow surfaceflinger appdomain:fd use;
    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)
    r_dir_file(surfaceflinger, dumpstate)
    
    # 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;
    
    
    # media.player service
    allow surfaceflinger mediaserver_service:service_manager find;
    allow surfaceflinger permission_service:service_manager find;
    allow surfaceflinger power_service:service_manager find;
    allow surfaceflinger surfaceflinger_service:service_manager { add find };
    allow surfaceflinger window_service:service_manager find;
    
    ###
    ### Neverallow rules
    ###
    ### surfaceflinger should NEVER do any of this
    
    # Do not allow accessing SDcard files as unsafe ejection could
    # cause the kernel to kill the process.
    neverallow surfaceflinger sdcard_type:file rw_file_perms;