Skip to content
Snippets Groups Projects
  1. Jan 24, 2017
    • Calin Juravle's avatar
      SElinux policies for compiling secondary dex files · e5a1f64a
      Calin Juravle authored
      This CLs adds SElinux policies necessary to compile secondary dex files.
      
      When an app loads secondary dex files via the base class loader the
      files will get reported to PM. During maintance mode PM will compile the
      secondary dex files which were used via the standard installd model
      (fork, exec, change uid and lower capabilities).
      
      What is needed:
      dexoptanalyzer - needs to read the dex file and the boot image in order
      to decide if we need to actually comppile.
      dex2oat - needs to be able to create *.oat files next to the secondary
      dex files.
      
      Test: devices boots
            compilation of secondary dex files works without selinux denials
            cmd package compile --secondary-dex -f -m speed
      com.google.android.gms
      
      Bug: 32871170
      Change-Id: I038955b5bc9a72d49f6c24c1cb76276e0f53dc45
      e5a1f64a
  2. Jan 23, 2017
    • 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
  3. Jan 22, 2017
  4. Jan 21, 2017
  5. 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
    • Treehugger Robot's avatar
    • Paul Lawrence's avatar
      tracefs not debugfs · ef2a1709
      Paul Lawrence authored
      Test:   Device boots
              Can take photos
              Run "adb shell atrace -c -b 16000 -t 5 gfx" without root and check produces
              output
              Run "python systrace.py view gfx freq sched am wm dalvik
              binder_driver" from external/chromium-trace after adb root and
              check populated
      Bug: 31856701
      Change-Id: Ic319f8a0a3e395efa7ee8ba33a868ac55cb44fe4
      ef2a1709
    • Alex Klyubin's avatar
      952072b9
    • 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
    • Alex Klyubin's avatar
      937be2b4
    • Max Bires's avatar
      Merge "Removing unused rules." · 2b2c74f8
      Max Bires authored
      2b2c74f8
    • 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
    • Alex Klyubin's avatar
      Fix bugs in *_file_contexts targets · e4665d7f
      Alex Klyubin authored
      This fixes the following issues introduced in commit
      d225b697:
      * plat_file_contexts was empty because the target was referencing
        system/sepolicy/private/file_contexts via a misspelled variable
        name.
      * plat_file_contexts wasn't marked as dirty and thus wasn't rebuilt
        when system/sepolicy/private/file_contexts changed. This is because
        the file_contexts dependency was referenced via a misspelled
        variable name.
      * plat_file_contexts wasn't sorted (as opposed to other similar
        targets, such as nonplat_file_contexts and file_contexts.bin). This
        may lead to unnecessary non-determinism.
      * nonplat_file_contexts wasn't marked dirty and thus wasn't rebuilt
        when device-specific file_contexts file(s) changed. This is because
        the file_contexts files were referenced via a misspelled variable
        name.
      
      Test: "make plat_file_contexts" produces a non-empty file containing
            mappings from system/sepolicy/private/file_contexts
      Test: "make plat_file_contexts" updates output when
            system/sepolicy/private/file_contexts changes
      Test: "make plat_file_contexts" produces output which is sorted
            accroding to rules in fc_sort
      Test: "make nonplat_file_contexts" updates output when
            device/lge/bullhead/sepolicy/file_contexts changes (tested on
            aosp_bullhead-eng)
      Bug: 31363362
      Change-Id: I540555651103f02c96cf958bb93618f600e47a75
      e4665d7f
    • 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
    • Treehugger Robot's avatar
    • 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
  6. Jan 19, 2017
  7. 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
Loading