)]}'
{
  "commit": "b35f827c97ceb24e33fb2514ff62c8636bc46f59",
  "tree": "44ba8762fa4e6ae105797d6a03c07343ee6f11e7",
  "parents": [
    "5336d40ed4a33cf8650a579fe113d69415ccb687"
  ],
  "author": {
    "name": "Tom Cherry",
    "email": "tomcherry@google.com",
    "time": "Mon Oct 22 14:50:52 2018 -0700"
  },
  "committer": {
    "name": "Tom Cherry",
    "email": "tomcherry@google.com",
    "time": "Mon Oct 22 16:16:03 2018 -0700"
  },
  "message": "init: if vendor_init can read a property, let it be a trigger too\n\nThere is a list of \u0027stable_properties\u0027 that vendor_init can use as\nproperty triggers for Treble property compliance.  This list came about\nsince init parses init scripts before all partitions are mounted and\ntherefore before all property context files are available, such that\ninit cannot use the normal SELinux mechanisms for determining if a\ngiven property is vendor_init readable.\n\nCurrently though, we require all partitions that would contain\nproperty context files to be mounted during first stage mount, so we\ncan use the normal SELinux mechanisms here, so this change deprecates\nthe stable_properties list and moves init to use SELinux to determine\nif a property can be a trigger.\n\nBug: 71814576\nTest: vendor_init fails to use non-readable properties as a trigger\nTest: vendor_init successfully uses readable properties as a trigger\nChange-Id: I6a914e8c212a3418cbf4a8a07215056aad2e0162\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1481162005773a90a7b2e69960061618871ae4b0",
      "old_mode": 33188,
      "old_path": "init/action_parser.cpp",
      "new_id": "2d497b386432dba7eb7cadcefb0ec7a6911552ad",
      "new_mode": 33188,
      "new_path": "init/action_parser.cpp"
    },
    {
      "type": "modify",
      "old_id": "8866bdcd63a63614efdb73a657fcfab81adced74",
      "old_mode": 33188,
      "old_path": "init/host_init_stubs.cpp",
      "new_id": "b85e54a69b9c5b0d93531365cd55a7efb67339a5",
      "new_mode": 33188,
      "new_path": "init/host_init_stubs.cpp"
    },
    {
      "type": "modify",
      "old_id": "0af11f6673c23d0fd8124cc625e7766a96827dd4",
      "old_mode": 33188,
      "old_path": "init/host_init_stubs.h",
      "new_id": "63ceead6706a7d69a2f3de5427bfbca319664107",
      "new_mode": 33188,
      "new_path": "init/host_init_stubs.h"
    },
    {
      "type": "modify",
      "old_id": "6aed0a3937697ea83559f5cb8919f65cb4b4070a",
      "old_mode": 33188,
      "old_path": "init/property_service.cpp",
      "new_id": "53288697dda57114e01237b820c82725fa4e27e3",
      "new_mode": 33188,
      "new_path": "init/property_service.cpp"
    },
    {
      "type": "modify",
      "old_id": "cacd987f7ac2b2f526d30eaa2a395b66e9693af8",
      "old_mode": 33188,
      "old_path": "init/property_service.h",
      "new_id": "9022f5a8a4ab5d078671050170d256a6c0229fef",
      "new_mode": 33188,
      "new_path": "init/property_service.h"
    },
    {
      "type": "delete",
      "old_id": "baef833f7a826fac3f0fdeb6e95dda074817b1c2",
      "old_mode": 33188,
      "old_path": "init/stable_properties.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
