Skip to content
Snippets Groups Projects
  1. Jan 24, 2017
    • Steven Moreland's avatar
      system_server: add hal_lights permission · 0223ca51
      Steven Moreland authored
      system_server needs the permissions to open the lights hal in the same
      process.
      
      Bug: 34634317
      Test: can change brightness on marlin (tested on internal master)
      Change-Id: I11fe59b4ab32e13d6dad246f4e6c56951e051181
      0223ca51
  2. Jan 20, 2017
  3. Jan 19, 2017
    • Jim Miller's avatar
      Fix fingerprint crypto operations. · 2796009e
      Jim Miller authored
      This fixes a bug introduced in the HIDL port where fingerprint no
      longer notifies keystore of authentications.
      
      Test: keyguard, FingerprintDialog
      
      Fixes bug 34200870
      
      Change-Id: I8b1aef9469ff4f4218573a6cde4c3a151512c226
      2796009e
  4. Jan 18, 2017
    • mukesh agrawal's avatar
      allow init and system_server access to tracing · 3a6bc68e
      mukesh agrawal authored
      Revise policy, to allow init and system_server to configure,
      clear, and read kernel trace events. This will enable us to
      debug certain WiFi failures.
      
      Note that system_server is restricted to only accessing
      a wifi-specific trace instance. (Hence, system_server is
      not allowed to interfere with atrace.) Moreover, even for
      the wifi trace instance, system_server is granted limited
      permissions. (system_server can not, e.g., change which
      events are traced.)
      
      Note also that init and system_server are only granted these
      powers on userdebug or eng builds.
      
      The init.te and system_server.te changes resolve the
      following denials:
      
      // Denials when wifi-events.rc configures tracing
      { write } for pid=1 comm="init" name="instances" dev="debugfs" ino=755 scontext=u:r:init:s0 tcontext=u:object_r:debugfs_tracing_instances:s0 tclass=dir permissive=1
      { add_name } for pid=1 comm="init" name="wifi" scontext=u:r:init:s0 tcontext=u:object_r:debugfs_tracing_instances:s0 tclass=dir permissive=1
      { create } for pid=1 comm="init" name="wifi" scontext=u:r:init:s0 tcontext=u:object_r:debugfs_tracing_instances:s0 tclass=dir permissive=1
      { write } for pid=1 comm="init" name="tracing_on" dev="debugfs" ino=18067 scontext=u:r:init:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { write } for pid=1 comm="init" name="buffer_size_kb" dev="debugfs" ino=18061 scontext=u:r:init:s0 tcontext=u:object_r:debugfs_tracing_instances:s0 tclass=file permissive=1
      
      // Denials when system_server sets up fail-safe
      // (auto-terminate tracing if system_server dies)
      { search } for pid=882 comm="system_server" name="instances" dev="debugfs" ino=755 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_tracing_instances:s0 tclass=dir permissive=1
      { read } for pid=882 comm="system_server" name="free_buffer" dev="debugfs" ino=18063 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { open } for pid=882 comm="system_server" path="/sys/kernel/debug/tracing/instances/wifi/free_buffer" dev="debugfs" ino=18063 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { getattr } for pid=882 comm="system_server" path="/sys/kernel/debug/tracing/instances/wifi/free_buffer" dev="debugfs" ino=18063 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      
      // Denials when system_server toggles tracing on or off
      // (WifiStateMachine is a thread in system_server)
      { search } for pid=989 comm="WifiStateMachin" name="instances" dev="debugfs" ino=755 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_tracing_instances:s0 tclass=dir permissive=1
      { write } for pid=989 comm="WifiStateMachin" name="tracing_on" dev="debugfs" ino=18067 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { open } for pid=989 comm="WifiStateMachin" path="/sys/kernel/debug/tracing/instances/wifi/tracing_on" dev="debugfs" ino=18067 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { getattr } for pid=989 comm="WifiStateMachin" path="/sys/kernel/debug/tracing/instances/wifi/tracing_on" dev="debugfs" ino=18067 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { write } for pid=989 comm="WifiStateMachin" name="tracing_on" dev="debugfs" ino=18067 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { open } for pid=989 comm="WifiStateMachin" path="/sys/kernel/debug/tracing/instances/wifi/tracing_on" dev="debugfs" ino=18067 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { getattr } for pid=989 comm="WifiStateMachin" path="/sys/kernel/debug/tracing/instances/wifi/tracing_on" dev="debugfs" ino=18067 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      
      // Denials when system_server reads the event trace
      // (This happens in response to a dumpsys request)
      { search } for pid=3537 comm="Binder:882_B" name="instances" dev="debugfs" ino=755 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_tracing_instances:s0 tclass=dir permissive=1
      { read } for pid=3537 comm="Binder:882_B" name="trace" dev="debugfs" ino=18059 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { open } for pid=3537 comm="Binder:882_B" path="/sys/kernel/debug/tracing/instances/wifi/trace" dev="debugfs" ino=18059 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { getattr } for pid=3537 comm="Binder:882_B" path="/sys/kernel/debug/tracing/instances/wifi/trace" dev="debugfs" ino=18059 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      { write } for pid=3537 comm="Binder:882_B" name="trace" dev="debugfs" ino=18059 scontext=u:r:system_server:s0 tcontext=u:object_r:debugfs_wifi_tracing:s0 tclass=file permissive=1
      
      Bug: 27254565
      Test: manual
      Manual test:
      - Build this CL along with CL:322337
      - Verify that system boots, and that we can connect to GoogleGuest.
        (Testing of actual trace functionality with require some more
        patches in frameworks/opt/net/wifi.)
      $ adb root && adb shell dmesg | egrep 'avc: denied.+debugfs'
      
      Change-Id: Ib6eb4116549277f85bd510d25fb30200f1752f4d
      3a6bc68e
    • Josh Gao's avatar
      Introduce crash_dump debugging helper. · cb3eb4ee
      Josh Gao authored
      Replace the global debuggerd with a per-process debugging helper that
      gets exec'ed by the process that crashed.
      
      Bug: http://b/30705528
      Test: crasher/crasher64, `debuggerd <pid>`, `kill -ABRT <pid>`
      Change-Id: Iad1b7478f7a4e2690720db4b066417d8b66834ed
      cb3eb4ee
    • Daichi Hirono's avatar
      Don't open appfuse files in apps. · 7ae1d237
      Daichi Hirono authored
      Previously we published appfuse mount points to apps and apps open
      appfuse file by themselves. We changed the design and we don't allow
      apps to access appfuse mount point. Instead system server opens a file
      on appfuse mount points and passes FD to apps.
      
      The change updates apps and system server policies to adopt new design.
      
      Bug: 29970149
      Test: None
      Change-Id: I0b35fee9816f61565705eecb88a472754ccffdca
      7ae1d237
    • Jeff Sharkey's avatar
      Define policy for /proc/uid_procstat/set. · 828433c8
      Jeff Sharkey authored
      New procfs file written by the system_server to communicate fg/bg
      state of UIDs to switch the statistics counter sets used.
      
      avc: denied { write } for name="set" dev="proc" ino=4026531862 scontext=u:r:system_server:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
      
      Test: builds, boots, counter sets updated
      Bug: 34360629
      Change-Id: I2efbfbba9e73f50ce50a80a3dffd3b14fa55c048
      828433c8
  5. Jan 13, 2017
    • Jim Miller's avatar
      New SeLinux policy for fingerprint HIDL · 54e0e5af
      Jim Miller authored
      Move from fingerprintd to new fingerprint_hal and update SeLinux policy.
      
      Test: Boot with no errors related to fingerprint sepolicy
      Bug: 33199080
      Change-Id: Idfde0cb0530e75e705033042f64f3040f6df22d6
      54e0e5af
    • Hridya Valsaraju's avatar
      add selinux policy for GNSS hal · 953c4396
      Hridya Valsaraju authored
      The following are the avc denials that are addressed:
      
      avc: denied { call } for pid=889 comm="system_server"
      scontext=u:r:system_server:s0 tcontext=u:r:hal_gnss_default:s0
      tclass=binder permissive=0
      
      avc: denied { call } for scontext=u:r:hal_gnss_default:s0
      tcontext=u:r:system_server:s0 tclass=binder permissive=0
      
      avc: denied { read } for name="hw" dev="mmcblk0p43" ino=1837
      scontext=u:r:hal_gnss_default:s0 tcontext=u:object_r:system_file:s0
      tclass=dir permissive=0
      
      avc: denied { open } for path="/system/lib64/hw" dev="mmcblk0p43"
      ino=1837 scontext=u:r:hal_gnss_default:s0
      tcontext=u:object_r:system_file:s0 tclass=dir permissive=0
      
      Bug:31974439
      
      Test: Checked that there no more related avc denial messages related to
      the GNSS HAL in dmesg.
      
      Change-Id: I5b43dc088017a5568dd8e442726d2bf52e95b1d5
      953c4396
  6. Jan 10, 2017
  7. Dec 29, 2016
  8. Dec 28, 2016
  9. Dec 27, 2016
    • Alex Klyubin's avatar
      Remove access to ro.runtime.firstboot from apps · 062236a8
      Alex Klyubin authored
      ro.runtime.firstboot system property is only used internally by
      system_server to distinguish between first start after boot from
      consecutive starts (for example, this happens when full-disk
      encryption is enabled). The value of the property is a
      millisecond-precise timestamp which can help track individual
      device. Thus apps should not have access to this property.
      
      Test: Device boots fine, reading ro.runtime.firstboot from an app results in an error and SELinux denial.
      Bug: 33700679
      Change-Id: I4c3c26a35c5dd840bced3a3e53d071f45317f63c
      062236a8
  10. Dec 22, 2016
    • Alex Klyubin's avatar
      Restrict access to ro.serialno and ro.boot.serialno · 20151072
      Alex Klyubin authored
      This restricts access to ro.serialno and ro.boot.serialno, the two
      system properties which contain the device's serial number, to a
      select few SELinux domains which need the access. In particular, this
      removes access to these properties from Android apps. Apps can access
      the serial number via the public android.os.Build API. System
      properties are not public API for apps.
      
      The reason for the restriction is that serial number is a globally
      unique identifier which cannot be reset by the user. Thus, it can be
      used as a super-cookie by apps. Apps need to wean themselves off of
      identifiers not resettable by the user.
      
      Test: Set up fresh GMS device, install some apps via Play, update some apps, use Chrome
      Test: Access the device via ADB (ADBD exposes serial number)
      Test: Enable MTP over USB, use mtp-detect to confirm that serial number is reported in MTP DeviceInfo
      Bug: 31402365
      Bug: 33700679
      Change-Id: I4713133b8d78dbc63d8272503e80cd2ffd63a2a7
      20151072
    • Mikhail Naganov's avatar
      Allow hal_audio to set scheduling policy for its threads · e91740a5
      Mikhail Naganov authored
      Audio HAL server needs to set SCHED_FIFO scheduling policy
      for its threads that communicate with FastMixer threads of
      AudioFlinger that use the same scheduler.
      
      Bug: 30222631
      Change-Id: I405a69d097a6bfed455e3483365b27c4004e1063
      e91740a5
  11. Dec 14, 2016
    • Nick Kralevich's avatar
      Assign a label to the ro.boottime.* properties · bb9a3888
      Nick Kralevich authored
      system/core commit 331cf2fb7c16b5b25064f8d2f00284105a9b413f created a
      number of new properties of the form:
      
        [ro.boottime.init]: [5294587604]
        [ro.boottime.InputEventFind]: [10278767840]
        [ro.boottime.adbd]: [8359267180]
        ...
      
      These properties were assigned the default_prop SELinux label because a
      better label did not exist. Properties labeled with the default_prop
      label are readable to any SELinux domain, which is overly broad.
      
        bullhead:/ $ getprop -Z ro.boottime.adbd
        u:object_r:default_prop:s0
      
      Instead, create a new label for the ro.boottime.* properties so we can
      apply more fine grain read access control to these properties.
      
        bullhead:/ $ getprop -Z ro.boottime.adbd
        u:object_r:boottime_prop:s0
      
      New SELinux property labels have minimal permissions by default. As a
      result, after this change, ro.boottime.* properties will only be
      readable to system_server, bootstat, init (because it manages the property
      space), and "adb root" (because no SELinux permissions are enforced there).
      
      Additional read access can be granted as-needed.
      
      This is part of a larger effort to implement fine-grain access control
      on the properties managed by init.
      
      Test: Device boots and no SELinux denials on boot.
      Change-Id: Ibf981cb81898f4356fdc5c1b6f15dd93c0d6d84d
      bb9a3888
  12. Dec 13, 2016
  13. Dec 12, 2016
    • Roshan Pius's avatar
      hal_wifi: Allow system_server to access wifi HIDL services · 02ed21e8
      Roshan Pius authored
      We're going to be using Android framework directly to invoke Wifi HIDL
      calls. So, change permissions appropriately.
      
      Bug: 33398154
      Test: Verfied that framework is able to make HIDL calls using
      go/aog/310610.
      
      Change-Id: I4d0d88961753ad73f3876aec58b26b89486cc02a
      02ed21e8
  14. Dec 09, 2016
    • Jeff Sharkey's avatar
      installd has moved on to Binder; goodbye socket! · 8b1d4520
      Jeff Sharkey authored
      After a series of recent commits, installd has fully migrated over
      to Binder, and all socket-based communication has been removed.
      
      Test: builds, boots, apps install fine, pre-OTA dexopt works
      Bug: 13758960, 30944031
      Change-Id: Ia67b6260de58240d057c99b1bbd782b44376dfb5
      8b1d4520
  15. Dec 06, 2016
    • dcashman's avatar
      sepolicy: add version_policy tool and version non-platform policy. · 2e00e637
      dcashman authored
      In order to support platform changes without simultaneous updates from
      non-platform components, the platform and non-platform policies must be
      split.  In order to provide a guarantee that policy written for
      non-platform objects continues to provide the same access, all types
      exposed to non-platform policy are versioned by converting them and the
      policy using them into attributes.
      
      This change performs that split, the subsequent versioning and also
      generates a mapping file to glue the different policy components
      together.
      
      Test: Device boots and runs.
      Bug: 31369363
      Change-Id: Ibfd3eb077bd9b8e2ff3b2e6a0ca87e44d78b1317
      2e00e637
  16. Dec 05, 2016
    • Jeff Sharkey's avatar
      Rules for new installd Binder interface. · e160d14e
      Jeff Sharkey authored
      Most of this CL mirrors what we've already done for the "netd" Binder
      interface, while sorting a few lists alphabetically.
      
      Migrating installd to Binder will allow us to get rid of one of
      the few lingering text-based command protocols, improving system
      maintainability and security.
      
      Test: builds, boots
      Bug: 13758960, 30944031
      Change-Id: I59b89f916fd12e22f9813ace6673be38314c97b7
      e160d14e
  17. Dec 03, 2016
    • Ray Essick's avatar
      Allow access to mediaanalytics service · 090f4a4d
      Ray Essick authored
      media framework analytics are gathered in a separate service.
      define a context for this new service, allow various
      media-related services and libraries to access this new service.
      
      Bug: 30267133
      Test: ran media CTS, watched for selinux denials.
      Change-Id: I5aa5aaa5aa9e82465b8024f87ed32d6ba4db35ca
      090f4a4d
  18. Dec 02, 2016
    • Jeff Sharkey's avatar
      Allow system_server to measure emulated stats. · 17c675b3
      Jeff Sharkey authored
      Historically we pushed all system_server SD card interactions through
      DefaultContainerService to avoid holding open FDs, but it's safe to
      measure disk usage for internal emulated storage when looking
      directly at /data/media, since there is no risk of unsafe ejection.
      
      These rule changes give us just enough access to measure statistics.
      
      avc: denied { getattr } for path="/data/media/0/DCIM/.thumbnails" dev="sda35" ino=589892 scontext=u:r:system_server:s0 tcontext=u:object_r:media_rw_data_file:s0:c512,c768 tclass=dir permissive=1
      avc: denied { open } for path="/data/media/0/DCIM/.thumbnails" dev="sda35" ino=589892 scontext=u:r:system_server:s0 tcontext=u:object_r:media_rw_data_file:s0:c512,c768 tclass=dir permissive=1
      avc: denied { read } for name="0" dev="sda35" ino=589827 scontext=u:r:system_server:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=1
      
      Test: builds, boots, and access allowed
      Bug: 33298975
      Change-Id: I9748608a5c1169d542e763c5a8f79c4f26f7a382
      17c675b3
  19. Nov 26, 2016
    • Nick Kralevich's avatar
      system_server: Delete system_file:file execute_no_trans; · 55e86a3a
      Nick Kralevich authored
      auditallow has been in place since Apr 2016
      (f84b7981) and no SELinux denials have
      been generated / collected. Remove unused functionality.
      
      Test: Device boots with no problems.
      Test: no SELinux denials of this type collected.
      Bug: 28035297
      Change-Id: I52414832abb5780a1645a4df723c6f0c758eb5e6
      55e86a3a
  20. Nov 14, 2016
    • Chia-I Wu's avatar
      Add sepolicy for gralloc-alloc HAL · dd958e5a
      Chia-I Wu authored
      Allow SurfaceFlinger to call into IAllocator, and allow everyone to access
      IAllocator's fd.
      
      Specifically,
      
      hwbinder_use(...) for
      avc: denied { call } for scontext=u:r:hal_graphics_allocator:s0 tcontext=u:r:hwservicemanager:s0 tclass=binder permissive=1
      avc: denied { transfer } for scontext=u:r:hal_graphics_allocator:s0 tcontext=u:r:hwservicemanager:s0 tclass=binder permissive=1
      
      allow ... ion_device:chr_file r_file_perms for
      avc: denied { read } for name="ion" dev="tmpfs" ino=15014 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1
      avc: denied { open } for path="/dev/ion" dev="tmpfs" ino=15014 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1
      avc: denied { ioctl } for path="/dev/ion" dev="tmpfs" ino=15014 ioctlcmd=4900 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1
      
      allow ... gpu_device:chr_file rw_file_perms; for
      avc: denied { read write } for name="kgsl-3d0" dev="tmpfs" ino=14956 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1
      avc: denied { open } for path="/dev/kgsl-3d0" dev="tmpfs" ino=14956 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1
      avc: denied { ioctl } for path="/dev/kgsl-3d0" dev="tmpfs" ino=14956 ioctlcmd=940 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1
      
      binder_call(surfaceflinger, ...) for
      avc: denied { call } for scontext=u:r:surfaceflinger:s0 tcontext=u:r:hal_graphics_allocator:s0 tclass=binder permissive=1
      
      allow ... ...:fd use for
      avc: denied { use } for path="anon_inode:dmabuf" dev="anon_inodefs" ino=12794 scontext=u:r:surfaceflinger:s0 tcontext=u:r:hal_graphics_allocator:s0 tclass=fd permissive=1
      
      Bug: 32021161
      Test: make bootimage
      Change-Id: Ie7700142313407ac438c43dd1a85544dc4c67f13
      dd958e5a
  21. Nov 12, 2016
  22. Nov 11, 2016
    • Robert Sesek's avatar
      Add the "webview_zygote" domain. · dc43f7cd
      Robert Sesek authored
      The webview_zygote is a new unprivileged zygote and has its own sockets for
      listening to fork requests. However the webview_zygote does not run as root
      (though it does require certain capabilities) and only allows dyntransition to
      the isolated_app domain.
      
      Test: m
      Test: angler boots
      
      Bug: 21643067
      Change-Id: I89a72ffe6dcb983c4a44048518efd7efb7ed8e83
      dc43f7cd
  23. Nov 10, 2016
    • Jason Monk's avatar
      Add persist.vendor.overlay. to properties · 0e1cbf56
      Jason Monk authored
      Allow the system_server to change. Allow the zygote to read it as well.
      
      Test: Have system_server set a property
      Change-Id: Ie90eec8b733fa7193861026a3a6e0fb0ba5d5318
      0e1cbf56
  24. Nov 08, 2016
  25. Nov 04, 2016
  26. Nov 03, 2016
  27. Nov 01, 2016
    • Steven Moreland's avatar
      Sepolicy for light hal. · 1ec710c8
      Steven Moreland authored
      Bug: 32022100
      Test: end to end
      Change-Id: I5dd9b64c98a5c549fdaf9e47d5a92fa6963370c7
      1ec710c8
    • Felipe Leme's avatar
      Added permissions for the dumpstate service. · b5f5931e
      Felipe Leme authored
      - Allow dumpstate to create the dumpservice service.
      - Allow System Server and Shell to find that service.
      - Don't allow anyone else to create that service.
      - Don't allow anyone else to find that service.
      
      BUG: 31636879
      Test: manual verification
      Change-Id: I642fe873560a2b123e6bafde645467d45a5f5711
      b5f5931e
  28. Oct 29, 2016
    • Nick Kralevich's avatar
      system_server: allow appendable file descriptors · 8044129f
      Nick Kralevich authored
      system_server is currently allowed write (but not open) access to
      various app file descriptor types, to allow it to perform write
      operations on file descriptors passed to it from Android processes.
      However, system_server was not allowed to handle file descriptors
      open only for append operations.
      
      Write operations are a superset of that allowed by appendable
      operations, so it makes no sense to deny system_server the use of
      appendable file descriptors. Allow it for app data types, as well as a
      few other types (for robustness).
      
      Addresses the following denial generated when adb bugreport is run:
      
        type=1400 audit(0.0:12): avc: denied { append } for
        path="/data/user_de/0/com.android.shell/files/bugreports/bugreport-MASTER-2016-10-29-08-13-50-dumpstate_log-6214.txt"
        dev="dm-2" ino=384984 scontext=u:r:system_server:s0
        tcontext=u:object_r:shell_data_file:s0 tclass=file permissive=0
      
      Bug: 32246161
      Test: policy compiles
      Test: No more append denials when running adb shell am bug-report --progress
      Change-Id: Ia4e81cb0b3c3580fa9130952eedaed9cab3e8487
      8044129f
  29. Oct 26, 2016
  30. Oct 25, 2016
  31. Oct 21, 2016
Loading