Skip to content
Snippets Groups Projects
  1. Apr 05, 2016
    • Alex Deymo's avatar
      Revert "Remove "exec_type" from postinstall_file." · f43af3a6
      Alex Deymo authored
      We decided a different approach for these policies in the
      meeting today.
      
      This reverts commit 5507fa66.
      
      Bug: 28008031
      Change-Id: Id86520660bdbc3fc36ac4acf51082547d6a559eb
      f43af3a6
    • Alex Deymo's avatar
      Remove "exec_type" from postinstall_file. · 5507fa66
      Alex Deymo authored
      update_engine had an automatic transition to the "postinstall" domain
      when executing a "postinstall_file" which required it to be an
      entrypoint. This patch removes this automatic transition and the
      associated rules in update_engine.te, removing as well the need to
      add exec_type to postinstall_file. Instead, update_engine now makes
      this transition explicit by calling setexeccon(3).
      
      Bug: 28008031
      TEST=make dist; Deployed an update to edison-eng: postinstall runs as "postinstall" domain.
      
      Change-Id: I2b799ac4808c90b010a9e776aaa7015020a94b49
      5507fa66
  2. Mar 02, 2016
    • Alex Deymo's avatar
      New postinstall domain and rules to run post-install program. · 6cb2c893
      Alex Deymo authored
      When using the A/B updater, a device specific hook is sometimes needed
      to run after the new partitions are updated but before rebooting into
      the new image. This hook is referred to throughout the code as the
      "postinstall" step.
      
      This patch creates a new execution domain "postinstall" which
      update_engine will use to run said hook. Since the hook needs to run
      from the new image (namelly, slot "B"), update_engine needs to
      temporarly mount this B partition into /postinstall and then run a
      program from there.
      
      Since the new program in B runs from the old execution context in A, we
      can't rely on the labels set in the xattr in the new filesystem to
      enforce the policies baked into the old running image. Instead, when
      temporarily mounting the new filesystem in update_engine, we override
      all the new file attributes with the new postinstall_file type by
      passing "context=u:object_r:postinstall_file:s0" to the mount syscall.
      This allows us to set new rules specific to the postinstall environment
      that are consistent with the rules in the old system.
      
      Bug: 27177071
      TEST=Deployed a payload with a trivial postinstall script to edison-eng.
      
      Change-Id: Ib06fab92afb45edaec3c9c9872304dc9386151b4
      6cb2c893
  3. Feb 09, 2016
    • Tao Bao's avatar
      update_engine: Allow to access bootctrl_block_device. · 3ec34ceb
      Tao Bao authored
      update_engine needs to access bootctrl_block_device to get and set the slot to boot.
      avc: denied { write } for name="mmcblk0boot1" dev="tmpfs" ino=1266 scontext=u:r:update_engine:s0 tcontext=u:object_r:bootctrl_block_device:s0 tclass=blk_file
      avc: denied { open } for path="/dev/block/mmcblk0boot1" dev="tmpfs" ino=1266 scontext=u:r:update_engine:s0 tcontext=u:object_r:bootctrl_block_device:s0 tclass=blk_file
      
      Also track the name change of the native binder service.
      avc:  denied  { add } for service=android.os.UpdateEngineService pid=210 uid=0 scontext=u:r:update_engine:s0 tcontext=u:object_r:default_android_service:s0 tclass=service_manager
      
      Bug: 27106053
      Change-Id: Idbfef18578489db33fead0721e8f26d63db5ce09
      3ec34ceb
  4. Jan 26, 2016
    • Tao Bao's avatar
      Allow update_engine to use Binder IPC. · dce317cf
      Tao Bao authored
      Register service with servicemanager and name the context.
      
      avc: denied { call } for scontext=u:r:update_engine:s0 tcontext=u:r:servicemanager:s0 tclass=binder
      avc: denied { add } for service=android.os.IUpdateEngine scontext=u:r:update_engine:s0 tcontext=u:object_r:update_engine_service:s0 tclass=service_manager
      
      Also allow priv_app to communicate with update_engine.
      
      avc: denied { find } for service=android.os.IUpdateEngine scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:update_engine_service:s0 tclass=service_manager
      avc: denied { call } for scontext=u:r:priv_app:s0:c512,c768 tcontext=u:r:update_engine:s0 tclass=binder
      avc: denied { call } for scontext=u:r:update_engine:s0 tcontext=u:r:priv_app:s0 tclass=binder
      
      Change-Id: Ib4498717c1a72f5faab5ea04c636924ee4eb412c
      dce317cf
  5. Nov 21, 2015
    • Sen Jiang's avatar
      Add bspatch to update_engine_exec. · d33155be
      Sen Jiang authored
      This allow bspatch to have same perssion as update_engine.
      
      Also added a rule to allow update_engine to execute bspatch.
      
      Bug: 24478450
      Test: No more permission deny during delta update.
      
      Change-Id: If94bc703b2f3fc32f901f0d7f300934316d4e9a4
      d33155be
  6. Nov 19, 2015
    • David Zeuthen's avatar
      DO NOT MERGE Move update_engine policy to AOSP. · 500a598e
      David Zeuthen authored
      The update_engine daemon from Brillo is expected to be used also in
      Android so move its selinux policy to AOSP.
      
      Put update_engine in the whitelist (currently only has the recovery
      there) allowing it to bypass the notallow for writing to partititions
      labeled as system_block_device.
      
      Also introduce the misc_block_device dev_type as update_engine in some
      configurations may need to read/write the misc partition. Start
      migrating uncrypt to use this instead of overly broad
      block_device:blk_file access.
      
      Bug: 23186405
      Test: Manually tested with Brillo build.
      
      Change-Id: Icf8cdb4133d4bbdf14bacc6c0fa7418810ac307a
      (cherry picked from commit a10f789d)
      500a598e
  7. Nov 03, 2015
    • Jeff Vander Stoep's avatar
      Create attribute for moving perms out of domain · d22987b4
      Jeff Vander Stoep authored
      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 is not required or
      reassigning the appropriate permissions to the inheriting domain
      when necessary.
      
      Bug: 25433265
      Change-Id: I8b11cb137df7bdd382629c98d916a73fe276413c
      d22987b4
  8. Oct 07, 2015
    • David Zeuthen's avatar
      Move update_engine policy to AOSP. · a10f789d
      David Zeuthen authored
      The update_engine daemon from Brillo is expected to be used also in
      Android so move its selinux policy to AOSP.
      
      Put update_engine in the whitelist (currently only has the recovery
      there) allowing it to bypass the notallow for writing to partititions
      labeled as system_block_device.
      
      Also introduce the misc_block_device dev_type as update_engine in some
      configurations may need to read/write the misc partition. Start
      migrating uncrypt to use this instead of overly broad
      block_device:blk_file access.
      
      Bug: 23186405
      Test: Manually tested with Brillo build.
      
      Change-Id: Icf8cdb4133d4bbdf14bacc6c0fa7418810ac307a
      a10f789d
Loading