Skip to content
Snippets Groups Projects
  1. Aug 05, 2013
  2. Jul 26, 2013
  3. Jul 16, 2013
  4. Jul 15, 2013
  5. Jul 14, 2013
    • Nick Kralevich's avatar
      untrusted_app.te / isolated_app.te / app.te first pass · 6634a108
      Nick Kralevich authored
      This is my first attempt at creating an enforcing SELinux domain for
      apps, untrusted_apps, and isolated_apps. Much of these rules are based on the
      contents of app.te as of commit 11153ef3
      with extensive modifications, some of which are included below.
      
      * Allow communication with netd/dnsproxyd, to allow netd to handle
        dns requests
      * Allow binder communications with the DNS server
      * Allow binder communications with surfaceflinger
      * Allow an app to bind to tcp/udp ports
      * Allow all domains to read files from the root partition, assuming
        the DAC allows access.
      
      In addition, I added a bunch of "neverallow" rules, to assert that
      certain capabilities are never added.
      
      This change has a high probability of breaking someone, somewhere.
      If it does, then I'm happy to fix the breakage, rollback this change,
      or put untrusted_app into permissive mode.
      
      Change-Id: I83f220135d20ab4f70fbd7be9401b5b1def1fe35
      6634a108
  6. Jul 13, 2013
    • Nick Kralevich's avatar
      remove "self:process ptrace" from domain, netd neverallow rules · 9a19885c
      Nick Kralevich authored
      Remove "self:process ptrace" from all SELinux enforced domains.
      In general, a process should never need to ptrace itself.
      We can add this back to more narrowly scoped domains as needed.
      
      Add a bunch of neverallow assertions to netd.te, to verify that netd
      never gets unexpected capabilities.
      
      Change-Id: Ie862dc95bec84068536bb64705667e36210c5f4e
      9a19885c
    • Nick Kralevich's avatar
      Move *_app into their own file · 748fdef6
      Nick Kralevich authored
      app.te covers a lot of different apps types (platform_app, media_app,
      shared_app, release_app, isolated_app, and untrusted_app), all
      of which are going to have slightly different security policies.
      
      Separate the different domains from app.te. Over time, these
      files are likely to grow substantially, and mixing different domain types
      is a recipe for confusion and mistakes.
      
      No functional change.
      
      Change-Id: Ida4e77fadb510f5993eb2d32f2f7649227edff4f
      748fdef6
  7. Jul 12, 2013
  8. Jul 11, 2013
    • Nick Kralevich's avatar
      domain.te: allow access to /sys/kernel/debug/tracing/trace_marker · 8758cc5f
      Nick Kralevich authored
      Bug: 9781325
      Change-Id: Ib6f6875f690420b59fceb0a32590a2b9ed8dda95
      8758cc5f
    • Nick Kralevich's avatar
      domain.te: Add backwards compatibility for unlabeled files · 0c9708b2
      Nick Kralevich authored
      For unlabeled files, revert to DAC rules. This is for backwards
      compatibility, as files created before SELinux was in place may
      not be properly labeled.
      
      Over time, the number of unlabeled files will decrease, and we can
      (hopefully) remove this rule in the future.
      
      To prevent inadvertantly introducing the "relabelto" permission, add
      a neverallow domain, and add apps which have a legitimate need to
      relabel to this domain.
      
      Bug: 9777552
      Change-Id: I71b0ff8abd4925432062007c45b5be85f6f70a88
      0c9708b2
  9. Jul 10, 2013
  10. Jul 08, 2013
    • Alex Klyubin's avatar
      Grant fsetid Linux capability to vold. · b25fe91e
      Alex Klyubin authored
      This fixes the issue where paid apps failed to install via Google
      Play with "Package file has a bad manifest" error. The issue appears
      to be caused by vold being prevented by SELinux policy from setting
      the setgid bit on the ASEC container directory into which the APK is
      decrypted. As a result, the APK is not readable to PackageParser.
      
      Bug: 9736808
      Change-Id: I07546a9f9caac3de8b720499bd1bf1604edea0fe
      b25fe91e
  11. Jul 03, 2013
  12. Jul 02, 2013
    • Nick Kralevich's avatar
      installd: enable SELinux restrictions · 51946bc8
      Nick Kralevich authored
      This change enables SELinux security enforcement on the installd
      process.
      
      For the installd.te file only, this change is equivalent to reverting
      the following commits:
      
          * 50e37b93
          * 77d4731e
      
      No other changes were required.
      
      Testing: As much as possible, I've tested that package installation
      works, from both adb and via Android market. There were no denials
      in the kernel dmesg log, and everything appears to be working correctly.
      
      It's quite possible I've missed something. If we experience problems,
      I'm happy to roll back this change.
      
      Bug: 9662644
      Change-Id: Id93d4ee7b517dfa28c9a0b1d45d936b56892ac0a
      51946bc8
  13. Jul 01, 2013
    • Nick Kralevich's avatar
      zygote: enable SELinux restrictions · 6aca515c
      Nick Kralevich authored
      This change enables SELinux security enforcement on zygote
      (but not zygote spawned apps).
      
      For the zygote.te file only, this change is equivalent to reverting
      the following commits:
      
      * 50e37b93
      * 77d4731e
      
      No other changes were required.
      
      Testing: As much as possible, I've tested that zygote properly
      starts up, and that there's no problem spawning zygote or zygote
      apps. There were no denials in the kernel dmesg log, and
      everything appears to work correctly. It's quite
      possible I've missed something. If we experience problems, I
      happy to roll back this change.
      
      Bug: 9657732
      Change-Id: Id2a7adcbeebda5d1606cb13470fad6c3fcffd558
      6aca515c
  14. Jun 29, 2013
    • Nick Kralevich's avatar
      Enable SELinux on vold · 7914a47f
      Nick Kralevich authored
      This change enables SELinux security enforcement on vold.
      
      For the vold.te file ONLY, this change is conceptually a revert of
      77d4731e and
      50e37b93, with the following
      additional changes:
      
      1) Removal of "allow vold proc:file write;" and
      "allow vold self:capability { sys_boot };". As of system/vold
      change adfba3626e76c1931649634275d241b226cd1b9a, vold no longer
      performs it's own reboots, so these capabilities are no longer
      needed.
      
      2) Addition of the powerctl property, which vold contacts to
      tell init to reboot.
      
      3) Removal of "allow vold kernel:system module_request;". As of
      CTS commit f2cfdf5c057140d9442fcfeb4e4a648e8258b659, Android
      devices no longer ship with loadable modules, hence we don't
      require this rule.
      
      4) Removal of "fsetid" from "self:capability". Any setuid / setgid
      bits SHOULD be cleared if vold is able to change the permissions
      of files. IMHO, it was a mistake to ever include this capability in
      the first place.
      
      Testing: As much as possible, I've tested filesystem related
      functionality, including factory reset and device encryption.
      I wasn't able to test fstrim functionality, which is a fairly
      new feature.  I didn't see any policy denials in dmesg. It's quite
      possible I've missed something. If we experience problems, I
      happy to roll back this change.
      
      Bug: 9629920
      Change-Id: I683afa0dffe9f28952287bfdb7ee4e0423c2e97a
      7914a47f
  15. Jun 28, 2013
    • Nick Kralevich's avatar
      Enable SELinux protections for netd. · dbd28d91
      Nick Kralevich authored
      This change does several things:
      
      1) Restore domain.te to the version present at
      cd516a32 . This is the version
      currently being distributed in AOSP.
      
      2) Add "allow domain properties_device:file r_file_perms;" to
      domain.te, to allow all domains to read /dev/__properties__ .
      This change was missing from AOSP.
      
      3) Restore netd.te to the version present at
      80c9ba52 . This is the version
      currently being distributed in AOSP.
      
      4) Remove anything involving module loading from netd.te. CTS
      enforces that Android kernels can't have module loading enabled.
      
      5) Add several new capabilities, plus data file rules, to
      netd.te, since netd needs to write to files owned by wifi.
      
      6) Add a new unconfined domain called dnsmasq.te, and allow
      transitions from netd to that domain. Over time, we'll tighten up
      the dnsmasq.te domain.
      
      7) Add a new unconfined domain called hostapd.te, and allow
      transitions from netd to that domain. Over time, we'll tighten up
      the hostapd.te domain.
      
      The net effect of these changes is to re-enable SELinux protections
      for netd. The policy is FAR from perfect, and allows a lot of wiggle
      room, but we can improve it over time.
      
      Testing: as much as possible, I've exercised networking related
      functionality, including turning on and off wifi, entering airplane
      mode, and enabling tethering and portable wifi hotspots. It's quite
      possible I've missed something, and if we experience problems, I
      can roll back this change.
      
      Bug: 9618347
      Change-Id: I23ff3eebcef629bc7baabcf6962f25f116c4a3c0
      dbd28d91
  16. Jun 27, 2013
    • Nick Kralevich's avatar
      Add "shell" to seapp_contexts · 59444368
      Nick Kralevich authored
      In the process of taking a bugreport, "dumpstate -B" will instruct
      zygote to fire up com.android.shell, which runs as UID=2000.
      This transition was not included in seapp_contexts, so zygote
      didn't know how to properly set the context for the shell user.
      
      Add an entry to allow zygote to know what to do with UID=2000
      requests.
      
      Bug: 9588981
      Change-Id: I2e726be8d58437ef1de3bcbad3b897a97ed18e22
      59444368
  17. Jun 24, 2013
    • Nick Kralevich's avatar
      allow system server to control zygote spawned processes · d2703d21
      Nick Kralevich authored
      System server needs to be able to tell Zygote to create processes
      with differing ids, capabilities, and SELinux security information.
      Allow it.
      
      These rules are not in unconfined.te, and as a result, are not
      automatically allowed by SELinux in enforcing mode.
      
      Change-Id: I010eaa2b0e0cee5d995e08e6c785cc5e01b2c974
      d2703d21
  18. Jun 18, 2013
  19. May 24, 2013
  20. May 22, 2013
  21. May 20, 2013
  22. May 17, 2013
  23. May 15, 2013
Loading