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

attributes

Blame
    • mukesh agrawal's avatar
      84cfde22
      limit shell's access to log.* properties · 84cfde22
      mukesh agrawal authored
      Restrict the ability of the shell to set the log.*
      properties. Namely: only allow the shell to set
      such properities on eng and userdebug builds.
      
      The shell (and other domains) can continue to
      read log.* properties on all builds.
      
      While there: harmonize permissions for log.* and
      persist.log.tag. Doing so introduces two changes:
      - log.* is now writable from from |system_app|. This
        mirrors the behavior of persist.log.tag, which is
        writable to support "Developer options" ->
        "Logger buffer sizes" -> "Off".
        (Since this option is visible on user builds, the
        permission is enabled for all builds.)
      - persist.log.tag can now be set from |shell| on
        userdebug_or_eng().
      
      BUG=28221972
      TEST=manual (see below)
      
      Testing details
      - user build (log.tag)
        $ adb shell setprop log.tag.foo V
        $ adb shell getprop log.tag
        <blank line>
        $ adb bugreport | grep log.tag.foo
        [  146.525836] init: avc:  denied  { set } for property=log.tag.foo pid=4644 uid=2000 gid=2000 scontext=u:r:shell:s0 tcontext=u:object_r:log_prop:s0 tclass=property_service permissive=0
        [  146.525878] init: sys_prop: permission denied uid:2000  name:log.tag.foo
      - userdebug build (log.tag)
        $ adb shell getprop log.tag.foo
        <blank line>
        $ adb shell setprop log.tag.foo V
        $ adb shell getprop log.tag.foo
        V
      - user build (persist.log.tag)
        $ adb shell getprop | grep log.tag
        <no match>
        - Developer options -> Logger buffer sizes -> Off
        $ adb shell getprop | grep log.tag
        [persist.log.tag]: [Settings]
        [persist.log.tag.snet_event_log]: [I]
      
      Change-Id: Idf00e7a623723a7c46bf6d01e386aeca92b2ad75
      84cfde22
      History
      limit shell's access to log.* properties
      mukesh agrawal authored
      Restrict the ability of the shell to set the log.*
      properties. Namely: only allow the shell to set
      such properities on eng and userdebug builds.
      
      The shell (and other domains) can continue to
      read log.* properties on all builds.
      
      While there: harmonize permissions for log.* and
      persist.log.tag. Doing so introduces two changes:
      - log.* is now writable from from |system_app|. This
        mirrors the behavior of persist.log.tag, which is
        writable to support "Developer options" ->
        "Logger buffer sizes" -> "Off".
        (Since this option is visible on user builds, the
        permission is enabled for all builds.)
      - persist.log.tag can now be set from |shell| on
        userdebug_or_eng().
      
      BUG=28221972
      TEST=manual (see below)
      
      Testing details
      - user build (log.tag)
        $ adb shell setprop log.tag.foo V
        $ adb shell getprop log.tag
        <blank line>
        $ adb bugreport | grep log.tag.foo
        [  146.525836] init: avc:  denied  { set } for property=log.tag.foo pid=4644 uid=2000 gid=2000 scontext=u:r:shell:s0 tcontext=u:object_r:log_prop:s0 tclass=property_service permissive=0
        [  146.525878] init: sys_prop: permission denied uid:2000  name:log.tag.foo
      - userdebug build (log.tag)
        $ adb shell getprop log.tag.foo
        <blank line>
        $ adb shell setprop log.tag.foo V
        $ adb shell getprop log.tag.foo
        V
      - user build (persist.log.tag)
        $ adb shell getprop | grep log.tag
        <no match>
        - Developer options -> Logger buffer sizes -> Off
        $ adb shell getprop | grep log.tag
        [persist.log.tag]: [Settings]
        [persist.log.tag.snet_event_log]: [I]
      
      Change-Id: Idf00e7a623723a7c46bf6d01e386aeca92b2ad75
    attributes 2.86 KiB
    ######################################
    # Attribute declarations
    #
    
    # All types used for devices.
    # On change, update CHECK_FC_ASSERT_ATTRS
    # in tools/checkfc.c
    attribute dev_type;
    
    # All types used for processes.
    attribute domain;
    
    # Temporary attribute used for migrating permissions out of domain.
    # 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's not required or
    # reassigning the appropriate permissions to the inheriting domain
    # when necessary.
    attribute domain_deprecated;
    
    # All types used for filesystems.
    # On change, update CHECK_FC_ASSERT_ATTRS
    # definition in tools/checkfc.c.
    attribute fs_type;
    
    # All types used for context= mounts.
    attribute contextmount_type;
    
    # All types used for files that can exist on a labeled fs.
    # Do not use for pseudo file types.
    # On change, update CHECK_FC_ASSERT_ATTRS
    # definition in tools/checkfc.c.
    attribute file_type;
    
    # All types used for domain entry points.
    attribute exec_type;
    
    # All types used for /data files.
    attribute data_file_type;
    
    # All types use for sysfs files.
    attribute sysfs_type;
    
    # All types use for debugfs files.
    attribute debugfs_type;
    
    # Attribute used for all sdcards
    attribute sdcard_type;
    
    # All types used for nodes/hosts.
    attribute node_type;
    
    # All types used for network interfaces.
    attribute netif_type;
    
    # All types used for network ports.
    attribute port_type;
    
    # All types used for property service
    # On change, update CHECK_PC_ASSERT_ATTRS
    # definition in tools/checkfc.c.
    attribute property_type;
    
    # All properties defined in core SELinux policy. Should not be
    # used by device specific properties
    attribute core_property_type;
    
    # All properties used to configure log filtering.
    attribute log_property_type;
    
    # All service_manager types created by system_server
    attribute system_server_service;
    
    # services which should be available to all but isolated apps
    attribute app_api_service;
    
    # services which export only system_api
    attribute system_api_service;
    
    # All types used for services managed by service_manager.
    # On change, update CHECK_SC_ASSERT_ATTRS
    # definition in tools/checkfc.c.
    attribute service_manager_type;
    
    # All domains that can override MLS restrictions.
    # i.e. processes that can read up and write down.
    attribute mlstrustedsubject;
    
    # All types that can override MLS restrictions.
    # i.e. files that can be read by lower and written by higher
    attribute mlstrustedobject;
    
    # All domains used for apps.
    attribute appdomain;
    
    # All domains used for apps with network access.
    attribute netdomain;
    
    # All domains used for apps with bluetooth access.
    attribute bluetoothdomain;
    
    # All domains used for binder service domains.
    attribute binderservicedomain;