Skip to content
Snippets Groups Projects
  1. Jan 24, 2017
    • Steven Moreland's avatar
      update_verifier: read dir perms · bafa38e0
      Steven Moreland authored
      Allow update_verifier to load the boot_control_hal in passthrough mode.
      
      Test: update_verifier works, no denials
      Bug: 34656553
      Change-Id: I5c20ce67c8f1fd195f2429dae497221514ed95a8
      bafa38e0
    • 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 23, 2017
    • Max Bires's avatar
      Adding a neverallow rule to prevent renaming of device and char files · 626f90c5
      Max Bires authored
      This neverallow addition addresses the renaming of files in exploits in
      order to bypass denied permissions. An example of a similar use case of
      using mv to bypass permission denials appeared in a recent project zero
      ChromeOS exploit as one of the steps in the exploit chain.
      https://googleprojectzero.blogspot.com/2016/12/chrome-os-exploit-one-byte-overflow-and.html
      
      Additionally, vold and init both had permission sets that allowed them
      to rename, but neither of them seem to need it. Therefore the rename
      permission has also been removed from these two .te files.
      
      Test: The device boots successfully
      Change-Id: I07bbb58f058bf050f269b083e836c2c9a5bbad80
      626f90c5
    • Josh Gao's avatar
      tombstoned: temporarily allow write to anr_data_file. · 4c27d7a1
      Josh Gao authored
      auditallow this until we track down where the file is opened without
      O_APPEND.
      
      01-23 08:02:12.272   555   555 W tombstoned: type=1400 audit(0.0:11480): avc: denied { write } for path="/data/anr/traces.txt" dev="sda35" ino=4669445 scontext=u:r:tombstoned:s0 tcontext=u:object_r:anr_data_file:s0 tclass=file permissive=0
      
      Bug: http://b/34193533
      Test: mma
      Change-Id: I77b854dce06231232004432839ebd5aa963ef035
      4c27d7a1
    • Clara Bayarri's avatar
      Declare new Fonts service · b69af83b
      Clara Bayarri authored
      Merged-In: Id2b849d7fa22989225066ebe487fc98d319743ea
      Bug: 34190490
      Test: CTS in internal master
      Change-Id: I27ab62469f3a405c59eda1a2a249899e845bed56
      b69af83b
  3. Jan 20, 2017
    • Steven Moreland's avatar
      shell: hwbinder_use · 5fd36267
      Steven Moreland authored
      In order to dump hardware services using dumpsys, dumpsys needs to be
      able to talk to the hwservicemanager.
      
      Bug: 33382892
      Test: dumpsys --hw works from unrooted shell
      Change-Id: I31f0982193991428da465507f93d50646cb38726
      5fd36267
    • Alex Klyubin's avatar
      Grant rild and gatekeeperd access to hwservicemanager · 7f468994
      Alex Klyubin authored
      In my commit f41d89eb I forgot to
      switch rild and gatekeeperd rules from explicitly associating these
      domains with the hal_telephony and hal_gatekeeper to using the
      hal_impl_domain macro. As a result, the recent commit
      a2519226 inadvertently revoked
      HwBinder access from rild and gatekeeperd.
      
      This commit fixes the issue by switching rild and gatekeeperd to the
      hal_impl_domain macro.
      
      Test: "sepolicy-analyze out/target/product/bullhead/root/sepolicy attribute haldomain"
            now lists rild and gatekeeperd
      Test: "sepolicy-analyze out/target/product/bullhead/root/sepolicy attribute hal_telephony"
            still lists rild
      Test: "sepolicy-analyze out/target/product/bullhead/root/sepolicy attribute hal_gatekeeper"
            still lists gatekeeperd
      Bug: 34180936
      Bug: 34470443
      Change-Id: I7949556f58c36811205d5ea3ee78ea5708e95b45
      7f468994
    • Josh Gao's avatar
      tombstoned: allow append to anr_data_file. · 4eddb3e3
      Josh Gao authored
      Fix the following denial:
      
      tombstoned: type=1400 audit(0.0:563): avc: denied { append } for path="/data/anr/traces.txt" dev="sda35" ino=679941 scontext=u:r:tombstoned:s0 tcontext=u:object_r:anr_data_file:s0 tclass=file permissive=0
      
      Bug: http://b/34472671
      Test: mma
      Change-Id: Iab5fbaf50888aa0f195841cb7e718ff393e526dd
      4eddb3e3
    • Alex Klyubin's avatar
      Sort hal_* declarations alphabetically · e1ff7e88
      Alex Klyubin authored
      Test: No change to SELinux policy
      Change-Id: I45d6d6ab0538b9d4768b922cfdc2c972272d0b18
      e1ff7e88
    • William Roberts's avatar
      wificond_service: drop system_service typeattribute · 9d8edcae
      William Roberts authored
      
      wificond_service is not a system_server service, so drop the
      typeattribute.
      
      Provide find permission for system_server so it can still call
      wificond.
      
      Test: compile and run on emulator. Also check built policy to verify
      the permissions changes are as expected. system_server should have lost
      the add permissions on wificond_service. Most importantly this needs
      to be tested on a device with wificond.
      
      Change-Id: I6dd655a5ac1dbfef809b8759a86429557a7c1207
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      9d8edcae
    • Nick Kralevich's avatar
      more ephemeral_app cleanup · d5b6043f
      Nick Kralevich authored
      As of https://android-review.googlesource.com/324092, ephemeral_app is
      now an appdomain, so places where both appdomain and ephemeral_app are
      granted the same set of rules can be deleted.
      
      Test: policy compiles.
      Change-Id: Ideee710ea47af7303e5eb3af1331653afa698415
      d5b6043f
    • Nick Kralevich's avatar
      Revert "wificond_service: drop system_service typeattribute" · c20d476c
      Nick Kralevich authored
      wificond is a system_server service used by wifi, wifi doesnt start now
      
      This reverts commit b68a0149.
      
      Change-Id: If958c852e5d8adf8e8d82346554d2d6b3e8306c9
      c20d476c
    • Steven Moreland's avatar
      hal_light: add permission to sys/class/leds. · 62aee3b4
      Steven Moreland authored
      /sys/class/leds is the standard location for linux files dealing with
      leds, however the exact contents of this directory is non-standard
      (hence the need for a hal).
      
      Bug: 32022100
      Test: compiles and works for the subset of common files
      Change-Id: I7571d7267d5ed531c4cf95599d5f2acc22287ef4
      62aee3b4
  4. Jan 19, 2017
    • William Roberts's avatar
      wificond_service: drop system_service typeattribute · b68a0149
      William Roberts authored
      
      wificond_service is not a system_server service, so drop the
      typeattribute.
      
      Test: compile
      Change-Id: Ic212dd2c8bc897fbdc13ca33a9864ac8d4e68732
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      b68a0149
    • 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
    • Chad Brubaker's avatar
      Allow ephemeral apps to read/write external storage · 3d348fd6
      Chad Brubaker authored
      Ephemeral apps cannot open files from external storage, but can be given
      access to files via the file picker.
      
      Test: ACTION_OPEN_DOCUMENTS from an ephemeral app returns a readable fd.
      Change-Id: Ie21b64a9633eff258be254b9cd86f282db1509e8
      3d348fd6
    • Chad Brubaker's avatar
      Move ephemeral_app to appdomain · 5c566d1a
      Chad Brubaker authored
      Ephemeral apps are still apps with very similar capabilities, it makes
      more sense to have them under appdomain and benefit from the shared
      state (and all the neverallow rules) than to try and dupplicate them and
      keep them in sync.
      
      This is an initial move, there are parts of ephemeral_app that still
      need to be locked down further and some parts of appdomain that should
      be pushed down into the various app domains.
      
      Test: Builds, ephemeral apps work without denials.
      Change-Id: I1526b2c2aa783a91fbf6543ac7f6d0d9906d70af
      5c566d1a
    • Josh Gao's avatar
      Add mlstrustedobject to tombstone_data_file. · d94c5be5
      Josh Gao authored
      Bug: http://b/30705528
      Bug: http://b/34450704
      Test: mma
      Change-Id: I315a52411232b6ff38d014a2e0fadb0bcfbc1f3f
      d94c5be5
    • Max Bires's avatar
      Removing unused rules. · 58fb5ceb
      Max Bires authored
      After checking the auditallow logs for the rule being monitored, it's
      clear that the rule is not in use and can be removed. All unused rules
      should be removed, as they present needless additional attack vectors.
      
      Test: The device boots.
      Change-Id: Ie9e060c4d134212e01309a536ac052851e408320
      58fb5ceb
  5. Jan 18, 2017
    • Max Bires's avatar
      Removing setprop permissions from rild. · 8aef51e7
      Max Bires authored
      There were some auditallow rules left around in rild.te that had logs
      showing nothing was triggering them. Thus the rules they were auditing
      could be removed, as that's clear indication there's no use for them.
      Having rules around that aren't being used does nothing except increase
      attack surface and bloat sepolicy, and so should always be removed if
      possible.
      
      Test: The device boots
      Change-Id: I906ffc493807fbae90593548d478643cda4864eb
      8aef51e7
    • 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
    • Eino-Ville Talvala's avatar
      DO NOT MERGE: Camera: Add initial Treble camera HAL sepolicy · 9c43a3ff
      Eino-Ville Talvala authored
      - Allow cameraservice to talk to hwbinder, hwservicemanager
      - Allow hal_camera to talk to the same interfaces as cameraservice
      
      Test: Compiles, confirmed that cameraservice can call hwservicemanager
      Bug: 32991422
      Change-Id: Ied0a3f5f7149e29c468a13887510c78d555dcb2a
      9c43a3ff
    • Jin Qian's avatar
      Define policy for /proc/uid_io/stats · d345906b
      Jin Qian authored
      New procfs file read by storaged to dump fg/bg IO usage.
      
      Remove kmsg rule since it's no longer used by storaged.
      
      Allow storaged to find permission_service to translate UID
      to package name.
      
      Test: adb shell storaged -u
      Bug: 34198239
      Change-Id: I74654662c75571cbe166cf2b8cbab84828218cbd
      d345906b
    • Steven Moreland's avatar
      haldomain: add hwbinder_use · a2519226
      Steven Moreland authored
      All hals need to use hwbinder.
      
      Test: no additional denials
      Bug: 34180936
      Change-Id: Ie92cdbd79fc75062c4afa4cda53cb57ccde7e370
      a2519226
    • 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
    • Alex Klyubin's avatar
      1-arg variant of hal_impl_domain · b68cee25
      Alex Klyubin authored
      This improves readability and consistency for HAL implementation
      domains which have only one implementation.
      
      Test: No change to policy according to sesearch
      Test: No change to which types are associated with haldomain according to "sepolicy-analyze <sepolicy file> attribute haldomain"
      Bug: 34180936
      Change-Id: Ice599ea4971cdfbd8b835b1fd02ad1e14c7a0386
      b68cee25
  6. Jan 17, 2017
    • Alex Klyubin's avatar
      Group all HAL impls using haldomain attribute · f41d89eb
      Alex Klyubin authored
      This marks all HAL domain implementations with the haldomain attribute
      so that rules can be written which apply to all HAL implementations.
      
      This follows the pattern used for appdomain, netdomain and
      bluetoothdomain.
      
      Test: No change to policy according to sesearch.
      Bug: 34180936
      Change-Id: I0cfe599b0d49feed36538503c226dfce41eb65f6
      f41d89eb
    • Mikhail Naganov's avatar
      hal_audio: In binderized mode hal_audio needs access to IAllocator · ddb52d82
      Mikhail Naganov authored
      This is to ensure that hal_audio can access memory shared by
      audioserver.
      
      Bug: 34261005
      Change-Id: I84103b0d4692fd10afc56846fb116fec6a7b3dc7
      ddb52d82
  7. 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
    • Max Bires's avatar
      Auditing init and ueventd access to chr device files. · 9e7a5b0a
      Max Bires authored
      It seems likely that there is no reason to keep around a number of
      devices that are configured to be included into the pixel kernels. Init
      and ueventd should be the only processes with r/w access to these
      devices, so auditallow rules have been added to ensure that they aren't
      actually used.
      
      /dev/keychord was given its own type since it's one of the few character
      devices that's actually legitimately used and would cause log spam in
      the auditallow otherwise.
      
      Bug: 33347297
      Test: The phone boots without any apparent log spam.
      
      Change-Id: I3dd9557df8a9218b8c802e33ff549d15849216fb
      9e7a5b0a
  8. Jan 12, 2017
  9. Jan 11, 2017
  10. Jan 10, 2017
  11. Jan 09, 2017
    • Alex Klyubin's avatar
      Move ephemeral_app policy to private · baeac1fd
      Alex Klyubin authored
      This leaves only the existence of ephemeral_app domain as public API.
      All other rules are implementation details of this domain's policy and
      are thus now private. There are a few rules, defined by other domains'
      files remaining in the public policy until the rules from these
      domains also move to the private policy:
      
      allow ephemeral_app_current appdomain:binder transfer;
      allow ephemeral_app_current audioserver_current:binder transfer;
      allow ephemeral_app_current drmserver_current:binder transfer;
      allow ephemeral_app_current dumpstate_current:binder transfer;
      allow ephemeral_app_current mediaserver_current:binder transfer;
      allow ephemeral_app_current surfaceflinger_current:binder transfer;
      allow ephemeral_app_current system_server_current:binder transfer;
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules from platform_app_current
            attribute (as expected).
      Bug: 31364497
      
      Change-Id: I98687181434a98a141469ef676c461fcd1db2d4e
      baeac1fd
Loading