Skip to content
Snippets Groups Projects
Select Git revision
  • 33619e31deb59a481036fb86591d77e5ad2a4e27
  • 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

audioserver.te

Blame
    • dcashman's avatar
      cc39f637
      Split general policy into public and private components. · cc39f637
      dcashman authored
      Divide policy into public and private components.  This is the first
      step in splitting the policy creation for platform and non-platform
      policies.  The policy in the public directory will be exported for use
      in non-platform policy creation.  Backwards compatibility with it will
      be achieved by converting the exported policy into attribute-based
      policy when included as part of the non-platform policy and a mapping
      file will be maintained to be included with the platform policy that
      maps exported attributes of previous versions to the current platform
      version.
      
      Eventually we would like to create a clear interface between the
      platform and non-platform device components so that the exported policy,
      and the need for attributes is minimal.  For now, almost all types and
      avrules are left in public.
      
      Test: Tested by building policy and running on device.
      
      Change-Id: Idef796c9ec169259787c3f9d8f423edf4ce27f8c
      cc39f637
      History
      Split general policy into public and private components.
      dcashman authored
      Divide policy into public and private components.  This is the first
      step in splitting the policy creation for platform and non-platform
      policies.  The policy in the public directory will be exported for use
      in non-platform policy creation.  Backwards compatibility with it will
      be achieved by converting the exported policy into attribute-based
      policy when included as part of the non-platform policy and a mapping
      file will be maintained to be included with the platform policy that
      maps exported attributes of previous versions to the current platform
      version.
      
      Eventually we would like to create a clear interface between the
      platform and non-platform device components so that the exported policy,
      and the need for attributes is minimal.  For now, almost all types and
      avrules are left in public.
      
      Test: Tested by building policy and running on device.
      
      Change-Id: Idef796c9ec169259787c3f9d8f423edf4ce27f8c
    surfaceflinger.te 2.44 KiB
    # surfaceflinger - display compositor service
    type surfaceflinger, domain;
    type surfaceflinger_exec, exec_type, file_type;
    
    init_daemon_domain(surfaceflinger)
    typeattribute surfaceflinger mlstrustedsubject;
    
    # Talk to init over the property socket.
    unix_socket_connect(surfaceflinger, property, init)
    
    # 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.
    allow surfaceflinger system_prop:property_service set;
    allow surfaceflinger ctl_bootanim_prop:property_service set;
    
    # 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;