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

profman.te

Blame
    • Alex Klyubin's avatar
      f5446eb1
      Vendor domains must not use Binder · f5446eb1
      Alex Klyubin authored
      On PRODUCT_FULL_TREBLE devices, non-vendor domains (except vendor
      apps) are not permitted to use Binder. This commit thus:
      * groups non-vendor domains using the new "coredomain" attribute,
      * adds neverallow rules restricting Binder use to coredomain and
        appdomain only, and
      * temporarily exempts the domains which are currently violating this
        rule from this restriction. These domains are grouped using the new
        "binder_in_vendor_violators" attribute. The attribute is needed
        because the types corresponding to violators are not exposed to the
        public policy where the neverallow rules are.
      
      Test: mmm system/sepolicy
      Test: Device boots, no new denials
      Test: In Chrome, navigate to ip6.me, play a YouTube video
      Test: YouTube: play a video
      Test: Netflix: play a movie
      Test: Google Camera: take a photo, take an HDR+ photo, record video with
            sound, record slow motion video with sound. Confirm videos play
            back fine and with sound.
      Bug: 35870313
      Change-Id: I0cd1a80b60bcbde358ce0f7a47b90f4435a45c95
      f5446eb1
      History
      Vendor domains must not use Binder
      Alex Klyubin authored
      On PRODUCT_FULL_TREBLE devices, non-vendor domains (except vendor
      apps) are not permitted to use Binder. This commit thus:
      * groups non-vendor domains using the new "coredomain" attribute,
      * adds neverallow rules restricting Binder use to coredomain and
        appdomain only, and
      * temporarily exempts the domains which are currently violating this
        rule from this restriction. These domains are grouped using the new
        "binder_in_vendor_violators" attribute. The attribute is needed
        because the types corresponding to violators are not exposed to the
        public policy where the neverallow rules are.
      
      Test: mmm system/sepolicy
      Test: Device boots, no new denials
      Test: In Chrome, navigate to ip6.me, play a YouTube video
      Test: YouTube: play a video
      Test: Netflix: play a movie
      Test: Google Camera: take a photo, take an HDR+ photo, record video with
            sound, record slow motion video with sound. Confirm videos play
            back fine and with sound.
      Bug: 35870313
      Change-Id: I0cd1a80b60bcbde358ce0f7a47b90f4435a45c95
    surfaceflinger.te 1.67 KiB
    # surfaceflinger - display compositor service
    type surfaceflinger, domain;
    permissive surfaceflinger;
    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, system_server)
    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)
    allow surfaceflinger shell_data_file:file write;
    
    # 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;