)]}'
{
  "log": [
    {
      "commit": "8cb36868a4138d094bf83802387fad008fd186cf",
      "tree": "15fd9c47a6811b0f8560ec9a5d00c773aa56b222",
      "parents": [
        "224d965be0f94484e88c061aa839f9f054cf4f11"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 24 16:24:58 2018 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 24 16:24:58 2018 -0700"
      },
      "message": "init: clarify documentation for disabled\n\nServices can be started by name or interface name now.\n\nBug: N/A\nTest: N/A\nChange-Id: I9fef619e7c27d458193311f7cd7fca4dcf8c8e72\n"
    },
    {
      "commit": "8e73e6f2427d5f3eca26b3ae0328a96ecb13fd30",
      "tree": "d82c3f810d2e554521807495df54b786ea84c8bd",
      "parents": [
        "def249956c1b17e56f41b76215b9ef6dd5592443",
        "2980f57f2c3da88139342b394f685c2c505c96c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 19 17:43:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 19 17:43:07 2018 +0000"
      },
      "message": "Merge \"init: Use android::base::boot_clock instead of /proc/uptime\""
    },
    {
      "commit": "def249956c1b17e56f41b76215b9ef6dd5592443",
      "tree": "676ce27c31fec998da242dda5bcd9142a62ee266",
      "parents": [
        "c629131c2617d5cceaa67152b1b93c62af7e7f21",
        "e383334457b3cb6cdf2ddb32a82f2284120525d5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 19 00:17:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 19 00:17:42 2018 +0000"
      },
      "message": "Merge \"Set property for metadata encryption on first boot\""
    },
    {
      "commit": "e383334457b3cb6cdf2ddb32a82f2284120525d5",
      "tree": "2d9aa16510c1d98ca21adb0bb932e0e81f980b2b",
      "parents": [
        "07de83831f9a2bf67e1c4a4df72baed42b26c7e9"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Tue Apr 17 12:28:12 2018 -0700"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed Apr 18 14:42:45 2018 -0700"
      },
      "message": "Set property for metadata encryption on first boot\n\nBug: 77335096\nTest: device boots twice with and without metadata encryption\nChange-Id: Iaed78288cb37865ba23833721b73b11414e7e862\n"
    },
    {
      "commit": "4640149fd566cc1f73fa4ac972220acdcbb05b81",
      "tree": "7f6657e333fb926d6e12f7ac4b23e7e31ce51ba4",
      "parents": [
        "b41879111db50b66894b0285a61f6869cfc76fc1",
        "0b66969ba03464bea45a12c978f51b59c4c200a9"
      ],
      "author": {
        "name": "Tri Vo",
        "email": "trong@google.com",
        "time": "Wed Apr 18 19:32:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 18 19:32:32 2018 +0000"
      },
      "message": "Merge \"Add /mnt/vendor rw mount point for vendor partitions.\""
    },
    {
      "commit": "b41879111db50b66894b0285a61f6869cfc76fc1",
      "tree": "b03c0e11b55b80ac888ee9698ea541bf53a31395",
      "parents": [
        "01ce44b734d8eeb6f29d6038857bcefe4854b7cd",
        "8f38048f7d23686a6f008e24cefb45972299d309"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 18 13:51:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 18 13:51:15 2018 +0000"
      },
      "message": "Merge \"init: add sigstop option for debugging services from their start\""
    },
    {
      "commit": "8f38048f7d23686a6f008e24cefb45972299d309",
      "tree": "42223b38bcda5296332d00d525b8cc70d8c671c9",
      "parents": [
        "22dc27b9fa46b20aca4f5982979681a858a97284"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 17 14:48:44 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 17 14:52:49 2018 -0700"
      },
      "message": "init: add sigstop option for debugging services from their start\n\nTest: the examples in README.md\nChange-Id: Idb528ea4017f8f4ce62911928c040f4bc558d196\n"
    },
    {
      "commit": "0b66969ba03464bea45a12c978f51b59c4c200a9",
      "tree": "bce361252c1a18e8218a94f1ccab768d74f89281",
      "parents": [
        "ca10ecb3aed00a146e9b3b35549d36797427eb88"
      ],
      "author": {
        "name": "Tri Vo",
        "email": "trong@google.com",
        "time": "Tue Apr 10 20:20:13 2018 -0700"
      },
      "committer": {
        "name": "Tri Vo",
        "email": "trong@google.com",
        "time": "Tue Apr 17 11:19:44 2018 -0700"
      },
      "message": "Add /mnt/vendor rw mount point for vendor partitions.\n\nChanges to init\u0027s behavior during early mount:\n1. Mounting of tmpfs on /mnt is moved from init stage to early mount.\n2. init creates /mnt/vendor used to mount vendor partitions.\n3. If a device tree fstab entry for early mount specifies a mount point\nunder /mnt/vendor e.g. /mnt/vendor/foo, init will create\n/mnt/vendor/foo mount point.\n\nBug: 64905218\nTest: change dt fstab entry to mount persist to /mnt/vendor/persist;\nmount point is created correctly, and partition is mounted in early\nmount. See go/pag/1069774\nTest: device boots with /mnt/vendor and previous contents of /mnt present,\nand selinux label \"mnt_vendor_file\" is applied correctly.\nTest: cts-tradefed run commandAndExit cts --skip-all-system-status-check\n--primary-abi-only --skip-preconditions -m CtsAppSecurityHostTestCases\n-t android.appsecurity.cts.PermissionsHostTest\nChange-Id: I3739130739eadf508355c7f2531366fcaed74175\nMerged-In: I3739130739eadf508355c7f2531366fcaed74175\n(cherry picked from commit b51147566461d411ad452df81d54dc800c554e06)\n"
    },
    {
      "commit": "c73b21558be59369aceb9a62174343ff2837b9f5",
      "tree": "d758a6fb43c18e4ee025afe0678e185eca7464f9",
      "parents": [
        "07de83831f9a2bf67e1c4a4df72baed42b26c7e9"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Fri Apr 13 17:38:57 2018 +0000"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Tue Apr 17 09:03:57 2018 -0700"
      },
      "message": "Re-land \"If enablefilecrypto or init_user0 fails, reboot into recovery.\"\n\nAn earlier such change was reverted in commit e242a97db547dc73efea1b5287536be66637dc33.\n\nBug: 70487538\nTest: ensure that angler can boot\nMerged-In: Id5f57fce1c9b817a2650e0c848143d8a0d286bf0\nChange-Id: Id5f57fce1c9b817a2650e0c848143d8a0d286bf0\n"
    },
    {
      "commit": "07de83831f9a2bf67e1c4a4df72baed42b26c7e9",
      "tree": "fddaf5d3419bfefc8435357afb696c06a4296999",
      "parents": [
        "ee1b5a605ef786b224f3448c6a50e9cf5890fbc4",
        "1325ec8cfb85806867b6e88aa2c63f3d183a3353"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 22:49:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 12 22:49:27 2018 +0000"
      },
      "message": "Merge \"init: use signalfd to catch SIGCHLD\""
    },
    {
      "commit": "ee1b5a605ef786b224f3448c6a50e9cf5890fbc4",
      "tree": "f25c16043a69d7978eb86eef2bf9655e16979ee7",
      "parents": [
        "4396bb85da4fc7f4c9b4cb153d56af504c781ca1",
        "00ef7d560ccd0dc197227af3daf6e7b554d611c0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 22:33:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 12 22:33:03 2018 +0000"
      },
      "message": "Merge \"Allow vendor-init-actionable for vold-related properties\""
    },
    {
      "commit": "4396bb85da4fc7f4c9b4cb153d56af504c781ca1",
      "tree": "d65037787ea4c489ace30854b5dd09e7a8b33b56",
      "parents": [
        "183b575e7856e831c5f6f8b9ea0ca32e4f3fe2f9",
        "a1dbeb8d338017715ae7747e5a7a3999a54e7213"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 12 22:31:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 12 22:31:02 2018 +0000"
      },
      "message": "Merge \"init: do not impose vendor_init restrictions on old vendor images\""
    },
    {
      "commit": "1325ec8cfb85806867b6e88aa2c63f3d183a3353",
      "tree": "9a5797679ec99b4c125526ac3e05c871f4d6c930",
      "parents": [
        "af15fbf9aa6bb991a6abe8b2b72acc1a9405eff9"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Wed Apr 11 18:46:38 2018 -0700"
      },
      "committer": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Thu Apr 12 14:15:26 2018 -0700"
      },
      "message": "init: use signalfd to catch SIGCHLD\n\nPreviously, if init received too many SIGCHLD signals, then the write to\nsignal_write_fd could fail with EAGAIN. The handler tried to log the\nEAGAIN error, and init deadlocked if the interrupted init process had\nalready acquired a logging-related lock.\n\nBug: b/77867680\nTest: manual\nChange-Id: Ief0b5e94d8517827a5a7d03773391ba3ba9447c4\n"
    },
    {
      "commit": "a1dbeb8d338017715ae7747e5a7a3999a54e7213",
      "tree": "a182419d6711774b79fae95bb597c6f3cffaf59d",
      "parents": [
        "e21b764eb6e6f573567a3f05ac1c16f540c57fb3"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Apr 11 15:50:00 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Apr 12 10:17:45 2018 -0700"
      },
      "message": "init: do not impose vendor_init restrictions on old vendor images\n\nDo not restrict vendor_init restrictions on vendor images that were\nbuilt before P, as they will not have the correct permissions.\n\nBug: 77732028\nTest: test new devices and see vendor_init still works\nChange-Id: I636a07b54fbfb248e1d1a68a8f3c4d047fd5a9e9\n"
    },
    {
      "commit": "00ef7d560ccd0dc197227af3daf6e7b554d611c0",
      "tree": "7117549e15d60109edbe8b35872f40aa30995387",
      "parents": [
        "af15fbf9aa6bb991a6abe8b2b72acc1a9405eff9"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Apr 12 08:16:31 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Apr 12 12:51:09 2018 +0900"
      },
      "message": "Allow vendor-init-actionable for vold-related properties\n\nBug: 75987246\nBug: 73871799\nTest: succeeded building and tested with taimen\nChange-Id: Ifec879f07705a52501757b58b1562a97c668b8b0\nMerged-In: Ifec879f07705a52501757b58b1562a97c668b8b0\n(cherry picked from commit 65ce3b2cd879e39d75012798eef348283ad8b4f3)\n"
    },
    {
      "commit": "2980f57f2c3da88139342b394f685c2c505c96c5",
      "tree": "580a6c2e514706d5d7afd7c86bf4e60b0f5e1d18",
      "parents": [
        "af15fbf9aa6bb991a6abe8b2b72acc1a9405eff9"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Wed Apr 11 15:35:44 2018 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Thu Apr 12 01:50:50 2018 +0000"
      },
      "message": "init: Use android::base::boot_clock instead of /proc/uptime\n\n/proc/uptime internally uses whatever would be returned by\nclock_gettime(CLOCK_BOOTTIME), so use android::base::boot_clock instead\nwhich avoids parsing strings and rounding errors.\n\nBug: 77273909\nTest: CtsBootStatsTestCases\nChange-Id: Ic162eefcf226073949a18cca55db3c2324b98749\n"
    },
    {
      "commit": "167ec7f1d255ef9754d21383a9af46b07a20bac0",
      "tree": "41f7e17b648853b237b16195338388dc4306e30a",
      "parents": [
        "243be559a1344ba44f7dbe6c6f55e8f7bb2d84a7"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Apr 05 21:20:59 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Apr 05 21:20:59 2018 +0900"
      },
      "message": "Allow vendor-init-actionable for wlan.driver.status and init.svc.surfaceflinger\n\nThey are being used as action triggers in some devices including Pixels.\nSo vendor-init-actionable should be allowed for them.\n\nBug: 74266614\nTest: building succeeded and tested on a Pixel with\nPRODUCT_COMPATIBLE_PROPERTY\u003dtrue\n\nChange-Id: I713c5c1a50053f8d64e1cecd1f7ab5dc18201da1\n"
    },
    {
      "commit": "b7ba61ffc55c6caa359c97ad364f5c06f92c41e6",
      "tree": "1474049adcf4a8b76df4f05e8348941599ff4db7",
      "parents": [
        "e6ae06e687e0e51fcc105d26b14b8d33fc70249e",
        "478c7c1eafdce7c0a5dd951b6fc8d324505c4f95"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Sat Mar 31 17:03:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 31 17:03:25 2018 +0000"
      },
      "message": "Merge \"Add dummy vndk library libmkbootimg to enable abi checks on boot_img_hdr.\""
    },
    {
      "commit": "478c7c1eafdce7c0a5dd951b6fc8d324505c4f95",
      "tree": "09fd00d34cf31290bd97de7ebc2f8a71d01c10e0",
      "parents": [
        "95a524460ab5f7694e488114378a1476415e3fe2"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Mar 28 18:45:35 2018 -0700"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Sat Mar 31 07:13:33 2018 -0700"
      },
      "message": "Add dummy vndk library libmkbootimg to enable abi checks on boot_img_hdr.\n\nBug: 74763691\n\nTest: m -j libmkbootimg creates libmkbootimg.so.lsdump.\n\nTest: make -j64\n\nChange-Id: I8d716c560467aaf090f4f7ee9cfbc53a9405f05d\n(cherry picked from commit 4cc755dce527434dc4b79c1734185faeab084bac)\n"
    },
    {
      "commit": "1f90ccefb6f809fd479ead55247a59378bc5908f",
      "tree": "eab113f777369dff9ac1e2aeefa31c99cab4de52",
      "parents": [
        "85d9e673618e867c2d602822459e35a31fb45d76"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Mar 29 14:54:51 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Mar 29 14:54:51 2018 +0900"
      },
      "message": "Allow vendor-init-actionable for ro.board.platform and sys.boot_from_charger_mode\n\nro.board.platform and sys.boot_from_charger_mode are already\npublic-readable, but they should be used as action triggers as well for\nsome products including Android Go devices.\n\nBug: 75987246\nTest: succeeded building and tested with taimen\nChange-Id: I140a8f7ef3fa9823ceced94b00a413800518c240\n"
    },
    {
      "commit": "4f214c5179b2bef7de84b8b5eb2c18fd3f7312a8",
      "tree": "ea2370095b7ab432f0e89715a7a6faee2c1e9abe",
      "parents": [
        "c41ff1b366eabad4371a972f6be9648990658760"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Mar 28 12:21:03 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Mar 28 12:21:03 2018 +0900"
      },
      "message": "Allow vendor-init-actionable for ro.debuggable\n\nSome partners are using ro.debuggable as action trigger to config a\nproduct differently according to its value.\n\nBug: 75987246\nTest: succeeded building and tested taimen\nChange-Id: I4cc57e7b52e17fc89e585afa0a8a10925e47fac8\n"
    },
    {
      "commit": "0a72e6cb721f3b9ac5b0719e142da3a84173b9a5",
      "tree": "11a32a20dfb72e8758d63ed4ba19ed2d8a5c1fea",
      "parents": [
        "e8d1b75c0c9384d476dd929b7215d9d121775081"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Mar 19 16:19:01 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Mar 19 16:37:02 2018 -0700"
      },
      "message": "Revert \"init: Reboot after timeout passes during reboot\"\n\nThis reverts commit c9fec9d2be73a26a4f4b297ee6bee9f9c62cb854.\n\nLooks like ext4 can\u0027t handle a system reboot happening in the middle\nof an unmount.  We\u0027ll have to find another way to handle this.\n\nBug: 74817735\nBug: 75310371\nTest: reboot device\nChange-Id: Ib4f7f7fd29988a31a99f146c40f6d987c1fef15e\n"
    },
    {
      "commit": "1f9d5406b3e4e86724248b71a3bd68a1440169e2",
      "tree": "6de805ae1fbc90af4bfdeff065ea11cc093da19b",
      "parents": [
        "ff9b1db67c930a3e04ed29714d8b872e92e27b85"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 15 10:22:40 2018 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 15 10:24:00 2018 -0700"
      },
      "message": "init: add timers around sync() during shutdown\n\nIt seems that these sync() calls may take a long time in some\noccasions, so we add these logs to check.\n\nBug: 74817735\nTest: tree hugger\nChange-Id: Id3635f6c7a6618b20c7caf93b05e50cc50ef99de\n"
    },
    {
      "commit": "9f5e6dbe854ca41d337a1fa8fc8efe95e22db04b",
      "tree": "e14a3455329da204079a8bc8ea68466671a2407b",
      "parents": [
        "dbfbf85f0cbdce188b9516789fe701ddadbcf3cb",
        "cba467eeda887d2eb65edf7777c525cad23b8ebb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 12 22:47:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 12 22:47:29 2018 +0000"
      },
      "message": "Merge \"Export init.svc.console as an actionable property\""
    },
    {
      "commit": "636ed5fc72b06afbfbb13cad247b7e407b78d1d4",
      "tree": "c538ce325ce7e34663659f66630f05d57b07f735",
      "parents": [
        "6fe59afe53b2cd791935e27338dd994f9fd9a319"
      ],
      "author": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Wed Mar 07 20:54:47 2018 -0800"
      },
      "committer": {
        "name": "Daniel Mentz",
        "email": "danielmentz@google.com",
        "time": "Mon Mar 12 11:35:02 2018 -0700"
      },
      "message": "ueventd: Increase uevent buffer size to 2MB\n\nLet\u0027s increase the receive buffer size for the NETLINK_KOBJECT_UEVENT\nsocket to 2MB. Unless a large number of uevents queue up, that memory is\nnot allocated anyways. The receive buffer size serves only as an upper\nlimit for the total amount of memory consumed by all skbs queued to a\nspecific socket.\n\nWe experienced situations where ueventd got blocked for multiple seconds\nwhile writing to /dev/kmsg, and the receive buffer overflowed in the\nmeantime.\n\nTest: compile\nBug: 72648767\nChange-Id: Ice6d7b9c5ed9c83efbad6111086ce95ac6432561\n"
    },
    {
      "commit": "cba467eeda887d2eb65edf7777c525cad23b8ebb",
      "tree": "9969f3f9d9559339a91149e00e1df84bb4830afe",
      "parents": [
        "04bf02374ca94292de20d79b9e833e7b3f476f25"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Mon Mar 12 10:53:32 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Mon Mar 12 10:53:32 2018 +0900"
      },
      "message": "Export init.svc.console as an actionable property\n\nThe state of console can be used to set up a device for debugging.\n\nBug: 74266614\nTest: succeeded building and tested with Pixels\nChange-Id: I3691fa2819594a521e05dad150550ab309a78c68\n"
    },
    {
      "commit": "c602f5ab6091c529c6ea061a15c81eff566c1e20",
      "tree": "7450535c4e52b10da00490d8a326296d2af83385",
      "parents": [
        "929112bcd19e92c9b9f647d8a227ba55c743239d",
        "cb336eef48b5e9ba3794d0dc4b9fe2d73e084cc6"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Mar 09 02:08:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 09 02:08:27 2018 +0000"
      },
      "message": "Merge changes I443e733f,If1e89a67,I0481d87a\n\n* changes:\n  init: document previously undocumentary service options\n  init: alphabetize service options in README.md\n  init: alphabetize service options\n"
    },
    {
      "commit": "cb336eef48b5e9ba3794d0dc4b9fe2d73e084cc6",
      "tree": "6f14a420c798e8b6620afd620e59b2a8f5282c9e",
      "parents": [
        "bbbfed6083b68327a174ede9ab9aadcfa28593ed"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 08 14:15:51 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 08 14:41:20 2018 -0800"
      },
      "message": "init: document previously undocumentary service options\n\nThese all should have been documented previously but haven\u0027t been.\n\nTest: n/a\nChange-Id: I443e733f06584bb09b68b404608c8a611bb2baa0\n"
    },
    {
      "commit": "bbbfed6083b68327a174ede9ab9aadcfa28593ed",
      "tree": "6b7ae7b54a2a600d0fbec0aa2e509b53a297598c",
      "parents": [
        "e2f341e8cef349ee0b7cb1adc3b5592558380ec8"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 08 14:02:26 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 08 14:40:18 2018 -0800"
      },
      "message": "init: alphabetize service options in README.md\n\nTest: n/a\nChange-Id: If1e89a67a41279cab6acf3e38ff8eb5b77a274c1\n"
    },
    {
      "commit": "e2f341e8cef349ee0b7cb1adc3b5592558380ec8",
      "tree": "2595ecc7a87860cccffc6ca3da76a3458ea7a451",
      "parents": [
        "fd42c098130890b86ba4bf7d717a0c16b3874bb4"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 08 13:51:10 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 08 13:51:10 2018 -0800"
      },
      "message": "init: alphabetize service options\n\nLists should always be alphabetized...\n\nTest: treehugger\nChange-Id: I0481d87ac62b59bbe8f328eeaaac1a84a05f20a9\n"
    },
    {
      "commit": "422367b97f5e3abcf8e4552fddf12f35e18e66f9",
      "tree": "be3d40861e8531eb26cda38fbe1c0c8de3341883",
      "parents": [
        "1d5b102671ba3cf5da51026328a75012d56f3b98"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Mar 06 14:57:46 2018 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Mar 07 19:00:15 2018 +0000"
      },
      "message": "init: use FQName parse\n\nFQName::FQName(string) could leave the FQName in an\ninvalid state, and so this constructor is being removed\nand the mValid member is being removed.\n\nBug: 73774955\nTest: boots + interface_start control messages received by init\nChange-Id: I58d4a089c0a0f1c2cc5129c5e87321e7f6663b72\n"
    },
    {
      "commit": "b9ee9abebe631b02f312f1d2517305cf6ead159a",
      "tree": "b4a5138a77e39f51537bf84c578e1492b7c9aa87",
      "parents": [
        "c3892c045ff82d57b9e584acdf32a2d7e1652f33",
        "e242a97db547dc73efea1b5287536be66637dc33"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 01:26:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 02 01:26:32 2018 +0000"
      },
      "message": "Merge \"Revert \"If enablefilecrypto or init_user0 fails, reboot into recovery.\"\""
    },
    {
      "commit": "e242a97db547dc73efea1b5287536be66637dc33",
      "tree": "4abc4e3afeb7c3cd88e3fe75357377aca6669072",
      "parents": [
        "959b05553576ffc15da4334a5917ce763611ab82"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Thu Mar 01 23:24:20 2018 +0000"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Thu Mar 01 23:24:20 2018 +0000"
      },
      "message": "Revert \"If enablefilecrypto or init_user0 fails, reboot into recovery.\"\n\nThis reverts commit 959b05553576ffc15da4334a5917ce763611ab82.\n\nReason for revert: b/73968735\nBug: 73968735\nTest: b/73968735#comment5\n\nChange-Id: Ifce4c029bab7380c60e20cc2b2885beb4a097456\n"
    },
    {
      "commit": "dc375869abb56a0ef8ee1299443866da1e76abb6",
      "tree": "e03e34ce5f5aaca6196be9ba7a03241c91122b4b",
      "parents": [
        "69d47aa829fa5a48baeadeff0e04d03e58f147b7"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 28 10:39:01 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 01 11:17:07 2018 -0800"
      },
      "message": "Restrict setting platform properties from vendor .prop files\n\nWe should only allow vendor-init-settable properties to be set from\n.prop files on /vendor and /odm.\n\nBug: 73905119\nTest: test on walleye that disallowed properties are rejected\nChange-Id: I2a5d244fdc71060ddda3e3d87442e831e6b97831\n"
    },
    {
      "commit": "69d47aa829fa5a48baeadeff0e04d03e58f147b7",
      "tree": "1a0a12df0d8c8f9cd49cf418b65464dc90bab7bd",
      "parents": [
        "45ee43b1acadc9635a547e41dcaf734f66678890"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 01 11:00:57 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Mar 01 11:14:02 2018 -0800"
      },
      "message": "Clean up property set error handling\n\nCurrently we only report why a property set call has failed but drop\nthe context of what was trying to set the property.  This change\nadds information about why a property was trying to be set when it\nfails.\n\nIt also unifies property_set() within init to go through the same\nHandlePropertySet() function as normal processes do, removing unneeded\nspecial cases.\n\nTest: boot bullhead\nTest: attempt to set invalid properties and see better error messages\nChange-Id: I5cd3a40086fd3b226e9c8a5e3a84cb3b31399c0d\n"
    },
    {
      "commit": "547f7318c2dd347d589617578ab558bc6a9f97a2",
      "tree": "d5ce720a50fe2347c4d9f82c8c1dca9c7973ebac",
      "parents": [
        "28d364792ffe9131fe197c596412981ef4e1c50e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 28 21:40:46 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 28 21:43:59 2018 -0800"
      },
      "message": "Don\u0027t build host_init_verifier on Android either\n\nAlso fixes another mac build issue...\n\nTest: linux builds still work...\nChange-Id: I549891c7e38729bd5fbe79f79b7345dabd9b4b28\n"
    },
    {
      "commit": "96ff0fed821f6b198b3f11d2c1d3ce4e0e1ed201",
      "tree": "5b70de4cfe121ce2ae2ad1b27f60196c8015eafc",
      "parents": [
        "49fd480edeeeece424f9b7958acf2943fdf87c96"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 28 17:20:27 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 28 17:21:14 2018 -0800"
      },
      "message": "Don\u0027t build host_init_verifier for darwin\n\nAnd therefore fix the mac build break.\n\nTest: none\nChange-Id: Ice28780abc62fc3e46119497d23bcbc124354159\n"
    },
    {
      "commit": "de6bd50d4238d19ec401127bcf2321dc679d908d",
      "tree": "f181f4acfa59f642c5927fc706060b192a2638e6",
      "parents": [
        "304dacae8acd6c3469a7c5ff05357478ad2ff074"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 13 16:50:08 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 28 10:45:45 2018 -0800"
      },
      "message": "init: add host side parser for init\n\nCreate a host side parser for init such that init rc files can be\nverified for syntax correctness before being used on the device.\n\nBug: 36970783\nTest: run the parser on init files on host\n\nChange-Id: I7e8772e278ebaff727057308596ebacf28b6fdda\n"
    },
    {
      "commit": "89063827b195056628f80ba13fedf4c8917c3d51",
      "tree": "e494f628540b243aa1f0a418b3a64df7dfd962c2",
      "parents": [
        "876d9c3159769fae988afac3709a2379b3686222",
        "c9fec9d2be73a26a4f4b297ee6bee9f9c62cb854"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Feb 26 17:41:11 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 26 17:41:11 2018 +0000"
      },
      "message": "Merge \"init: Reboot after timeout passes during reboot\""
    },
    {
      "commit": "a4644c9bc459d3be2852ab7ea787af0dd1ad9cf3",
      "tree": "cda386b3baff6d610fb0b6bd365bc40436c568ec",
      "parents": [
        "e0068770e3883fff664e99f6369e08062b070c12",
        "7e469ce60cceb0fb7a0274ac78f47ec975fe2e3e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 23 20:41:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 23 20:41:36 2018 +0000"
      },
      "message": "Merge \"Document property expansion.\""
    },
    {
      "commit": "c9fec9d2be73a26a4f4b297ee6bee9f9c62cb854",
      "tree": "a3140af4d7edd26bed7d1cb97da115ad37e0bd2e",
      "parents": [
        "cdf778f5d92ab8748897a4d95693524d3273c23a"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Feb 15 14:26:58 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Feb 23 11:03:01 2018 -0800"
      },
      "message": "init: Reboot after timeout passes during reboot\n\nThere is currently a timeout for reboot, however if the system gets\nstuck, particularly during file system operations, there is no safety\nmechanism that guarantees the system will still reboot.\n\nThis change does all of the optional reboot steps in a separate thread\nand waits for this thread with a timeout, such that if the reboot\nsteps get hung, the system is guaranteed to still reboot.\n\nThis is specific to \u0027reboot\u0027.  Shutdown continues to run unbounded to\nrun fsck.\n\nBug: 72781711\nTest: Reboot devices hitting and not hitting this timeout\nChange-Id: Id5e1b3693bab00602177e28b9b662e1499c32961\n"
    },
    {
      "commit": "7e469ce60cceb0fb7a0274ac78f47ec975fe2e3e",
      "tree": "05968f8617dee97271717e18168bd69f95967ddf",
      "parents": [
        "0609e8d231822c6be9ab33eba3d6514525ce3ae6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 23 09:24:36 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 23 10:40:53 2018 -0800"
      },
      "message": "Document property expansion.\n\nBug: N/A\nTest: N/A\nChange-Id: I54b9d2d08d98d83060b54981b1c5dc9660b93e8f\n"
    },
    {
      "commit": "6f2d56d584159f1aece2e50e604d8db61deed383",
      "tree": "2c64e3cf63b4d8dab129cb3bde929156330f243e",
      "parents": [
        "2733708cfb2ed041e0a82593eeaae5b48ca44a66"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 21 10:37:44 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 21 16:36:03 2018 -0800"
      },
      "message": "init: log control messages along with the process that sent them\n\nIt\u0027s currently not clear that init stops processes due to being sent a\ncontrol message nor who sent that message.\n\nBug: 73343913\nTest: send control messages and see the logs\nChange-Id: I9e9eff2001e649814107ea961b3b747a1f6da598\n"
    },
    {
      "commit": "ca26cbc5d389971887227b737489ff6b44e82a8f",
      "tree": "99a6b47b5de5be22a93869b9fc5d73a0cba41061",
      "parents": [
        "0609e8d231822c6be9ab33eba3d6514525ce3ae6",
        "b7ef7e7aff81893d327cbb14d2c803ac7c5e65e5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 20 20:52:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 20 20:52:31 2018 +0000"
      },
      "message": "Merge \"Fix intermittent crash in property_service_test\""
    },
    {
      "commit": "b7ef7e7aff81893d327cbb14d2c803ac7c5e65e5",
      "tree": "76e4500ccabbaa104f325ccc93def140db0c944a",
      "parents": [
        "e1ae2ff9e46547dfaa3947eedd5e471332c92a86"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 20 10:40:26 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 20 10:47:55 2018 -0800"
      },
      "message": "Fix intermittent crash in property_service_test\n\nThere is a race in the very_long_name_35166374 test of\nproperty_service.  The test first sends a size value that is beyond\nthe limit that init will handle, then sends a dummy data value.\nHowever, init closes the socket upon seeing the faulty size, and if\nthis happens before the test sends the dummy data, the test will crash\ndue to SIGPIPE.\n\nSince there is no reason to send the dummy data at all, this change no\nlonger sends it to prevent the crash.  It also now checks explicitly\nthat init returns an error through the socket.\n\nBug: 73619375\nTest: the unit test in question\nChange-Id: I2565a69fa54910cee0e15fc798445e18c91156ec\n"
    },
    {
      "commit": "dc699a269f6a22af6cbba0f6e1359fde103dc4d3",
      "tree": "db8830dc9e776480c4bc2170d276582d57a9a83a",
      "parents": [
        "8c0c1ba98939a201f758fc3952ab59c7429132c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 16 17:58:14 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 16 17:58:14 2018 -0800"
      },
      "message": "bpfmt.\n\nBug: N/A\nTest: builds\nChange-Id: I89ad00e1c4c7e0767bc80a7ac7935a4d55e090ac\n"
    },
    {
      "commit": "851803d3cf3e874bb9305341a681a56cc73e7c57",
      "tree": "7a738bb4f95a8b2a843e3f4cb2f3ad0aa841c298",
      "parents": [
        "e1ae2ff9e46547dfaa3947eedd5e471332c92a86",
        "959b05553576ffc15da4334a5917ce763611ab82"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 15 21:16:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 15 21:16:42 2018 +0000"
      },
      "message": "Merge \"If enablefilecrypto or init_user0 fails, reboot into recovery.\""
    },
    {
      "commit": "959b05553576ffc15da4334a5917ce763611ab82",
      "tree": "c293ae0483137406d401de6874785466bfac3210",
      "parents": [
        "0ce76f910b1794d422f8d45d77a3ee2b95ec3d3e"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Tue Feb 13 17:09:08 2018 -0800"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Thu Feb 15 10:23:52 2018 -0800"
      },
      "message": "If enablefilecrypto or init_user0 fails, reboot into recovery.\n\nTest: Roll back PLATFORM_SECURITY_PATCH, ensure recovery dialog is seen\nBug: 70487538\nChange-Id: Iceb6af3f9d6aea6bc646dbb4b5d29dffcb284736\n"
    },
    {
      "commit": "9cbf57048cf0057f499bf1911e4ac3eba795becb",
      "tree": "d35ece56762c71f178792237b1441f0592042233",
      "parents": [
        "7fd3bc27eccdcb11de4886bdda05cd26a8d8af5c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 13 16:24:51 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 14 16:37:17 2018 -0800"
      },
      "message": "Move all Action parsing into ActionParser\n\nBug: 36970783\nTest: Build\nChange-Id: Iea2d97fb45c3e88bc83fb72d6fa67049be42cfa9\n"
    },
    {
      "commit": "7fd3bc27eccdcb11de4886bdda05cd26a8d8af5c",
      "tree": "4235be71596d436217a6e4f3abff105472cf91ad",
      "parents": [
        "0f6417f232e92aad0d712ab1b131c0829869cddd"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 13 15:36:14 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 14 16:37:09 2018 -0800"
      },
      "message": "Move ActionManager to its own file\n\nBug: 36970783\nTest: build\nChange-Id: I08fa39052236b462249f79de1d02bf02bdbf4c84\n"
    },
    {
      "commit": "0f6417f232e92aad0d712ab1b131c0829869cddd",
      "tree": "1443f21b57b95cc361fe7d903091dc8eee83478b",
      "parents": [
        "cd2fa1f43215b829bd4359bf7725daa220b08dbf"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 13 15:25:29 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Feb 13 15:26:14 2018 -0800"
      },
      "message": "Move ActionParser to its own file\n\nBug: 36970783\nTest: build\nChange-Id: Idd5b923e4789760bb9ef67c10982b2642bc6a31a\n"
    },
    {
      "commit": "886474994a7995b05bb9c9ea618c3866781a397a",
      "tree": "5e34f015228540cee65875cb51f6d6125d4bc73b",
      "parents": [
        "8ca50401f534320e2dc5f472ce50bff459c6de55"
      ],
      "author": {
        "name": "Greg Hartman",
        "email": "ghartman@google.com",
        "time": "Mon Feb 05 13:48:11 2018 -0800"
      },
      "committer": {
        "name": "Greg Hartman",
        "email": "ghartman@google.com",
        "time": "Tue Feb 06 06:34:40 2018 +0000"
      },
      "message": "Add support for non-partitioned devices for system\n\nBUG: 69071989\nBUG: 71707530\nTest: Local build and boot\nChange-Id: I0cb7d61634be6a694ceb51cb06901c466eae1c35\n"
    },
    {
      "commit": "94e930551169f95593cd8732f8d9dcb452902ed0",
      "tree": "6cd7ea7c595fa979179b1893f0e98e310c45f4ea",
      "parents": [
        "7c271bdc3b240779ad78ab379ae98925785fac70",
        "880d566400d38743e75be0ae88b142bc5ba27c57"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 05 18:08:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 05 18:08:10 2018 +0000"
      },
      "message": "Merge \"init: add TODO for mount operations.\""
    },
    {
      "commit": "880d566400d38743e75be0ae88b142bc5ba27c57",
      "tree": "a58259d046dbf7e8ddb027c7d3b797204ee1980c",
      "parents": [
        "01ba1157325a5e6572122f5d46cfd0376b75aa98"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Feb 05 08:01:54 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Feb 05 08:01:54 2018 -0800"
      },
      "message": "init: add TODO for mount operations.\n\nmount operations should be done in vendor init context, but their\ncomplexity currently limits this.  Add a TODO to make this reason\nclear to those viewing the code.\n\nBug: 72488820\nTest: N/A\nChange-Id: I8b6dd92aa79f31dc24603559ed6de0815facfcba\n"
    },
    {
      "commit": "176afbbedf5dd1f4c51839dc1e3614a1f3ddd878",
      "tree": "ebdccbc45f852224e861d24e186058a714124e6d",
      "parents": [
        "4819edf4fc15264cae0d94fbda5482b2480e99b9",
        "4a4ec14e42e3a395086cfb8d992768a62b33aba4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 03 01:31:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 03 01:31:45 2018 +0000"
      },
      "message": "Merge \"Do not block SIGTERM in init\u0027s child processes\""
    },
    {
      "commit": "4a4ec14e42e3a395086cfb8d992768a62b33aba4",
      "tree": "7557d02179877f6a7740cf70453cd3e0b189d354",
      "parents": [
        "0ce76f910b1794d422f8d45d77a3ee2b95ec3d3e"
      ],
      "author": {
        "name": "yusukes",
        "email": "yusukes@google.com",
        "time": "Thu Feb 01 17:14:30 2018 -0800"
      },
      "committer": {
        "name": "yusukes",
        "email": "yusukes@google.com",
        "time": "Fri Feb 02 15:28:03 2018 -0800"
      },
      "message": "Do not block SIGTERM in init\u0027s child processes\n\nPreviously, unless the process unblocks the signal by itself,\nthe signal was never delivered to the process. This caused at\nleast one CTS test failure.\n\nBug: 72453675\nTest: \u0027kill -TERM app_pid\u0027 terminates the app process\n\nChange-Id: I3977cac75e2673b52c5cf91d34d7a9c258c1a0e4\n"
    },
    {
      "commit": "c684696a96623054666952e1616d57335fc4192c",
      "tree": "13fb44791899d8349886a80e5617fac8647feeee",
      "parents": [
        "0ce76f910b1794d422f8d45d77a3ee2b95ec3d3e"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Tue Jan 30 09:56:03 2018 -0800"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Thu Feb 01 14:54:04 2018 -0800"
      },
      "message": "Use vold\u0027s mount with metadata encryption service.\n\nDon\u0027t use the FDE flow to support metadata encryption; just use the\nvold service which directly mounts the volume.\n\nBug: 63927601\nTest: Boot Taimen to SUW with and without metadata encryption.\nChange-Id: Idf9c27a69872cd7a9e2fb76df09a91d8e5ef4896\n"
    },
    {
      "commit": "cf2da29d66d641d3b2f27de886403b28804cbe7b",
      "tree": "c0a39ecc445997357358f740fa92fdebdf2ed43a",
      "parents": [
        "8abe4e2638587957f621450b4e4c3ff7af310b08"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Jan 31 18:12:13 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Jan 31 21:47:09 2018 +0900"
      },
      "message": "Update stable_properties.h\n\nro.boot.* are from kernel cmdline, and kernel is usually owned by SoC\nvendor or ODM.\nSo those properties should be allowed as action triggers of\nvendor/odm init scripts.\n\nAdditionally the state of mediadrm (/system/bin/mediadrmserver) should\nbe used to operate the state of drm HAL.\nSo init.svc.mediadrm should be whitelisted as an action trigger as well.\n\nBug: 36796459\nTest: tested with walleye\nChange-Id: Ic9f68162c577cc190f193063988ad04e42478e6e\n"
    },
    {
      "commit": "8abe4e2638587957f621450b4e4c3ff7af310b08",
      "tree": "641f1a79b46fbb568a47baf6cfa3688b1d3a4329",
      "parents": [
        "91837d7efeb70d83a6d1e799003144a40b9fa639",
        "36cf353ffb6123f8b31668dfae6149e1674625bf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Jan 28 02:39:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Jan 28 02:39:28 2018 +0000"
      },
      "message": "Merge \"sepolicy: renames nonplat_* to vendor_*\""
    },
    {
      "commit": "dff165d3a2db868689bae12db1ed8b3c74fa7d60",
      "tree": "6237fc0bf1607237788962972b1b47ed4170f003",
      "parents": [
        "ccb9960bebe4e8ec7d674d8d1b778e5cd9669b48"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Tue Nov 28 12:10:10 2017 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Jan 25 09:37:20 2018 +0900"
      },
      "message": "Support /product partition\n\nThis CL will enable reading /product/build.prop and add product paths\ninto ld.config.txt.in.\n\nBug: 64195575\nTest: tested with \u0027PRODUCT_PRODUCT_PROPERTIES :\u003d ro.product.abc\u003dabc\u0027 on\nsailfish\n\nChange-Id: Ie996def20e25dc1afe0c74af2096af844934b2dc\n"
    },
    {
      "commit": "af0a1f87b9fd4994730da69e4e98742596b3b93c",
      "tree": "88dec5ef5c38ef7b412282f23bf8089052c21479",
      "parents": [
        "f09649c231e72c501e78838299318759257d5fe4"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jan 23 12:40:31 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jan 23 12:40:31 2018 -0800"
      },
      "message": "Label /vendor_file_contexts as file_contexts_file\n\nvendor_init doesn\u0027t have permissions to read rootfs labeled files, but\nneeds to read /vendor_file_contexts to do restorecon correctly.  This\nfile is a file_contexts file, so labeling it as such seems appropriate.\n\nTest: bullhead + vendor_init doesn\u0027t hit this audit\nChange-Id: I475e9735616c2426b9c7073700272f878ced2135\n"
    },
    {
      "commit": "f09649c231e72c501e78838299318759257d5fe4",
      "tree": "30ecda9bf49da101009960b3dc1904c7526456ad",
      "parents": [
        "b04bbccbb60ae303ecd083e5faa25f3168ba95cb",
        "32228485ffac6ff0b674210be448b121bbd6427c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jan 23 18:34:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 18:34:34 2018 +0000"
      },
      "message": "Merge \"Make vendor_init check SELinux before setting properties\""
    },
    {
      "commit": "17b959c9edbc1126aaea036d3fb627bb96c05425",
      "tree": "27bd2cf315c90d19867f3691dac97e4ddff34628",
      "parents": [
        "ad939afaf437f910dd3c4869c2683ca797a44f7c",
        "d5eccfd4171d4211f4a301c25fb75bec4b657b0a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 22 20:27:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 22 20:27:17 2018 +0000"
      },
      "message": "Merge \"Init remove direct calls to light sys nodes.\""
    },
    {
      "commit": "32228485ffac6ff0b674210be448b121bbd6427c",
      "tree": "5091f252b64d206d32747aa66aacbd15a763f6ce",
      "parents": [
        "ad939afaf437f910dd3c4869c2683ca797a44f7c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jan 18 16:14:25 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Jan 22 18:20:56 2018 +0000"
      },
      "message": "Make vendor_init check SELinux before setting properties\n\nFinishing a TODO from vendor_init, check SELinux permissions before\nsetting properties in vendor_init.\n\nBug: 62875318\nTest: N/A\nChange-Id: I3cb6abadd2613ae083705cc6b9c970587b6c6b19\n"
    },
    {
      "commit": "d5eccfd4171d4211f4a301c25fb75bec4b657b0a",
      "tree": "5ea70fdf68ebab537465541b37ccde3d365fe802",
      "parents": [
        "5e5056c5a575f6c117985f2003c71eae1900337c"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jan 19 13:01:53 2018 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jan 19 14:45:10 2018 -0800"
      },
      "message": "Init remove direct calls to light sys nodes.\n\nThese are halified. Instead launch blank_screen which\ndoes the same task w/o init itself having binder\ndependencies.\n\nBug: 70846424\nTest: manual + reboot appears similar\nChange-Id: If8b2a56cbc31077122ea81406721b06034e4498f\n"
    },
    {
      "commit": "618d3102c9aa7d6a6d0e60cc0175ad77319cb27b",
      "tree": "5de0cb7f0bd297ded16a95705311d8e06963722e",
      "parents": [
        "34f8eaab0de825b9a83b90348d837245c19ca728"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jan 19 14:25:48 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jan 19 14:25:48 2018 -0800"
      },
      "message": "Move all of init to libinit\n\nI\u0027d be not doing this for a while since some of this code doesn\u0027t\ncompile on host and libinit previously did.  But after realizing\nthe property_service.cpp (libinit) references symbols in init.cpp\n(init) and seeing a new linker error crop up due to that, it\u0027s time to\nmake the fix.\n\nMy only hold out previously was that libinit compiled on host bionic\nand some of init (builtins.cpp, etc) do not, however given that we\ndon\u0027t actually have host bionic support or host bionic init tests,\nthat isn\u0027t a good reason.  We can and should mock out the libraries\nthat aren\u0027t available with host bionic when ready.\n\nTest: build, unit tests, boot\nChange-Id: Ie49362ddb637924efc272540a4f32b693643fcdc\n"
    },
    {
      "commit": "2c4f487dfbf1e1cce6e887bfef5e864f8222d07f",
      "tree": "732a4c1c6af383e7243e69e9d8be3f8ebfce68d0",
      "parents": [
        "a0ffad60efdea8986175f31abc310e0eb9183d0c",
        "eeb21885545f25606498feee0ad3f1f9b29e44e8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 17 21:57:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 17 21:57:08 2018 +0000"
      },
      "message": "Merge \"Apply the whitelist of actionable system properties\""
    },
    {
      "commit": "eeb21885545f25606498feee0ad3f1f9b29e44e8",
      "tree": "da581722ce59de92841e19f94e68b4c60a6ec6a7",
      "parents": [
        "4719ecd28c1ee1ca1cf25a6bc789d005a8f62e60"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Tue Jan 16 12:51:19 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Jan 18 04:38:01 2018 +0900"
      },
      "message": "Apply the whitelist of actionable system properties\n\nThis whitelist will be applied only when\nro.actionable_compatible_property.enabled is true.\n\nBug: 38146102\nTest: tested on walleye with ro.actionable_compatible_property.enabled\u003dtrue\nChange-Id: Ifd7211396b53e50a06d79e7c67224e2b38ef7c9d\n"
    },
    {
      "commit": "927c5d5fdc46eb60c28e569a922659733d927ada",
      "tree": "f24924d114a787afda709db0dee2039d3a0bb7ee",
      "parents": [
        "4ba3ebbc2f8820741003a36b7ca6c545333f1627"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Dec 11 01:40:07 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Jan 16 14:44:40 2018 -0800"
      },
      "message": "Introduce property types\n\nProperties right now can take any format, but that makes it hard to\nspecify an API for these properties as Treble intends to do.\nTherefore this change introduces the idea of property types, described below.\n\n1) \u0027string\u0027 this is the default type and allows any property to be set.\n2) \u0027bool\u0027 this allows only boolean values (true|false|1|0)\n3) \u0027int\u0027 and \u0027uint\u0027 these allow signed and unsigned integer values\nrespectively.\n4) \u0027double\u0027 this allows floating point numbers with double precision.\n5) \u0027size\u0027 this allows for strings matching [0-9]+[gkm].\n6) \u0027enum\u0027 this allows only a specific set of space deliminated values\nto be set, e.g. \u0027enum allow these strings\u0027 only allows one of \u0027allow\u0027,\n\u0027these\u0027, or \u0027strings\u0027 to be set.\n\nBug: 70858511\nTest: unit tests, test that properties are only set if their type matches\nChange-Id: I7a6b00fb43ec630d1f56c9e9a1f1b61d3914f603\n"
    },
    {
      "commit": "c49719fc5d2cf3817f6997ce40fc2dac7d411efa",
      "tree": "20976b810ebb16b32d2bf125bed2df5750a1f763",
      "parents": [
        "eac86b0ea90f19f9a4116e9a1ca401f0959ceb03"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jan 10 11:04:34 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Jan 12 10:35:26 2018 -0800"
      },
      "message": "init: always expand args in subcontext\n\nCurrently init expands properties in arguments only when those\ncommands are run in a subcontext.  This creates a hole where\nproperties that should not be accessible from a given subcontext of\ninit can be accessed when running a command in the main init\nexecutable (for example `start`).\n\nThis change creates a callback in subcontext init that simply expands\nand returns arguments back to the main init process, to ensure that\nonly those properties that a subcontext can access get expanded.\n\nBug: 62875318\nTest: boot bullhead, new unit tests\nChange-Id: I2850009e70da877c08e4cc83350c727b0ea98796\n"
    },
    {
      "commit": "36cf353ffb6123f8b31668dfae6149e1674625bf",
      "tree": "1de5a1b5aee3fe884c5988114432ec782a1e81e6",
      "parents": [
        "8fa3e728460efa1b77bf0cb2f91d1556ff050919"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Thu Dec 07 16:05:25 2017 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Tue Jan 09 18:47:12 2018 +0800"
      },
      "message": "sepolicy: renames nonplat_* to vendor_*\n\nAlso fallbacks to nonplat_* if it doesn\u0027t exists.\n\nBug: 64240127\nBug: 70279378\nTest: boot bullhead and sailfish\nChange-Id: I372b42a3c559ae0f9602163699eaef4df148467b\n"
    },
    {
      "commit": "919458c350563e578e2d55852fbae187756c130a",
      "tree": "8a774f0884d5c7eeea328cbde9efd268d8983800",
      "parents": [
        "2af1be4c167d8ef462418368fa1bcd3b77e5cfcd"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jan 03 14:39:28 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jan 04 22:00:11 2018 +0000"
      },
      "message": "Create a host side checker for property info file correctness\n\nBug: 36001741\nTest: verify a valid property info file and fail due to various failures\nChange-Id: Iadd38796aa619f87ec559fe5687bbe2009df8b2d\n"
    },
    {
      "commit": "bb877e273b651aab6238f0320b4c2cac64f97a94",
      "tree": "2f446c2caad83fb1ab435da17d665b138becebb5",
      "parents": [
        "93d344d98cd02d66c3aac8067718be828ea283f9"
      ],
      "author": {
        "name": "Dong Jinguang",
        "email": "dongjinguang@huawei.com",
        "time": "Tue Jan 02 23:19:57 2018 +0800"
      },
      "committer": {
        "name": "Dong Jinguang",
        "email": "dongjinguang@huawei.com",
        "time": "Thu Jan 04 09:35:40 2018 +0800"
      },
      "message": "system property: property set without time spent asleep\n\nThere is a 2s timeout for system property set that currently\nuses boot_clock as its clock source. If the system goes to sleep\nduring a property set, it may erroneously cause the timeout to\nbe reached as boot_clock increments during sleep. This patch\nchanges from boot_clock to steady_clock to ignore time spent\nasleep when determining this timeout.\n\nbug: 71497234\nTest: 1. System service process try to set a system property\n      with timeout 2s\n      2. At the same time, the system go into sleep mode more\n      than 2s\n      3. System property set will be ok.\n\nChange-Id: I808b9af16974a0f4de60a4ca30ae64d095a13422\n"
    },
    {
      "commit": "579e682628805dd9c3f8c96765c0beb3f56f1494",
      "tree": "d9f77eb889f512a8a98ce9fb6826b4810bb2dc11",
      "parents": [
        "e1d9e7c343ac4577450b96d4de19da6f099eb154"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 20 09:41:00 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 20 09:42:22 2017 -0800"
      },
      "message": "Add std::string StartsWith*/EndsWith* overloads.\n\nWe should have done this from the beginning. Thanks to Windows, we\u0027re not\ngoing to be able to switch libbase over to std::string_view any time soon.\n\nBug: N/A\nTest: ran tests\nChange-Id: Iff2f56986e39de53f3ac484415378af17dacf26b\n"
    },
    {
      "commit": "2ae2f606f83bcf1c4aec85239a6300987e51eded",
      "tree": "4d119264799c204e3c8c1748dfe186c21f3099b2",
      "parents": [
        "9822f3c6cc5d85a462033cd545500bcc1c8b0927"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 14 01:58:17 2017 +0000"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Dec 14 01:58:17 2017 +0000"
      },
      "message": "Reland \"Have property_service create a serialized property_contexts file\"\n\nThis reverts commit 9822f3c6cc5d85a462033cd545500bcc1c8b0927.\n\nBug: 36001741\nChange-Id: I27dd391fc06a3c78e88a65c7931c84de1699f157\n"
    },
    {
      "commit": "9822f3c6cc5d85a462033cd545500bcc1c8b0927",
      "tree": "0cfec629c0b69606798236ec1fc1f37fee009cf1",
      "parents": [
        "5dde5e38d28ed083b2ea226ddad39bae17cba434"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Wed Dec 13 21:51:30 2017 +0000"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 13 14:42:26 2017 -0800"
      },
      "message": "Revert \"Have property_service create a serialized property_contexts file\"\n\nThis reverts commit e8181c0f553b9f77d655d31c2d23eb3e8047eb03.\n\nReason for revert: This is broken.\n\nBug: 36001741\n\nChange-Id: I458abc23275ecdfadcabacd611b288449196efa0\n"
    },
    {
      "commit": "c47dd6b5c04683acc505b1235c8626032e438155",
      "tree": "613078f0f6a0ccc2d05ddc8c21649e5eba457f96",
      "parents": [
        "43e063f0273b12ec3eb4774a45bd02df6175204d",
        "e8181c0f553b9f77d655d31c2d23eb3e8047eb03"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Dec 13 01:28:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 13 01:28:36 2017 +0000"
      },
      "message": "Merge changes from topic \"property-trie\"\n\n* changes:\n  Have property_service create a serialized property_contexts file\n  Parse property contexts via a serialized trie\n"
    },
    {
      "commit": "e8181c0f553b9f77d655d31c2d23eb3e8047eb03",
      "tree": "491baed999361c135e174554390cb32dff05b7f8",
      "parents": [
        "d853f77ed3a70bc0d80edcba775990348c6d3c76"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Nov 03 08:59:53 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Dec 11 16:12:13 2017 -0800"
      },
      "message": "Have property_service create a serialized property_contexts file\n\nInstead of requiring each process to parse the property contexts files\nin libc initialization, this change has property_service parse these\nfiles one into a serialized trie, which the property code in libc can\nthen directly interpret for mapping property names to their associated\nSELinux context.\n\nBug: 36001741\nTest: boot bullhead, walleye, run unit tests\n\nChange-Id: If67073d56e800b3ca667fb5322e6b993e7d810f6\n"
    },
    {
      "commit": "ec87074542834505c2aced2c99f7fd1879dce660",
      "tree": "95133a85b8866132d002f471e7c750c38e70816d",
      "parents": [
        "b07cc5e0c0c3743e014b940b0585bdbeb392d733",
        "899ad558cd20ffaeed31b9a7f044f769632e5e62"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@google.com",
        "time": "Fri Dec 08 00:57:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 08 00:57:42 2017 +0000"
      },
      "message": "Merge changes from topic \"sload_f2fs\"\n\n* changes:\n  fastboot/fs_mgr/init: add sload_f2fs\n  fs_mgr: format f2fs with length\u003dxx fstab\n"
    },
    {
      "commit": "3289b9c9282dec777363256e27fcc23cd97001c1",
      "tree": "e592f69aba1eceaf88b8ddb643935a5e77b13e3c",
      "parents": [
        "255c43cd050f5202e96483430684c19b7ce916ff",
        "693d63f9cfc21e3334c6f8f228d73c4fb60ced8b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 07 23:21:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 07 23:21:26 2017 +0000"
      },
      "message": "Merge \"Add OWNERS.\""
    },
    {
      "commit": "693d63f9cfc21e3334c6f8f228d73c4fb60ced8b",
      "tree": "f0cc35536aff301e680302b8f3654517b8863acc",
      "parents": [
        "aaa0bbce8eadf1a428493f3524066a74447eded4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 07 11:31:02 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 07 13:30:03 2017 -0800"
      },
      "message": "Add OWNERS.\n\nBug: N/A\nTest: N/A\nChange-Id: Ie785058c0f5eb9b4086c98ccba6e63e3ed411b65\n"
    },
    {
      "commit": "899ad558cd20ffaeed31b9a7f044f769632e5e62",
      "tree": "8f254d1e9cd5d89674d2fb53197a936db271f001",
      "parents": [
        "6a3967a64b960746777f29455897e8f90ce4fc18"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@google.com",
        "time": "Tue Nov 28 19:26:34 2017 -0800"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@google.com",
        "time": "Wed Dec 06 22:40:08 2017 -0800"
      },
      "message": "fastboot/fs_mgr/init: add sload_f2fs\n\nChange-Id: Iab1e4037cbb835aba97f941c8840b8971caf38e7\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@google.com\u003e\n"
    },
    {
      "commit": "4a33cee3f83c0dadda8a50a11698c2f77e8614e6",
      "tree": "600967d2173b53a9343796c86fae58ae444088c1",
      "parents": [
        "1ab4d182bddae30680f963f6b8846dfaa7c457f8",
        "5b78366665217f7e05c0cb849b3c494bffa91d45"
      ],
      "author": {
        "name": "Alin Jerpelea",
        "email": "alin.jerpelea@sonymobile.com",
        "time": "Wed Dec 06 04:10:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 06 04:10:02 2017 +0000"
      },
      "message": "Merge \"Allow firmware loading from ODM partition\"\nam: 5b78366665\n\nChange-Id: Ic7c19c97598fc4087af9a1b7fcc28d5ed0600558\n"
    },
    {
      "commit": "b398ac859c307e33dd5d439da3572b45c3e6dfc1",
      "tree": "89e22186de70c96e2a2084e3448950a834a82321",
      "parents": [
        "b4fda18d8353cd4b27aefac832f392ad264facc4"
      ],
      "author": {
        "name": "Alin Jerpelea",
        "email": "alin.jerpelea@sonymobile.com",
        "time": "Wed Oct 04 06:44:57 2017 +0200"
      },
      "committer": {
        "name": "Alin Jerpelea",
        "email": "alin.jerpelea@sonymobile.com",
        "time": "Mon Dec 04 16:22:15 2017 +0100"
      },
      "message": "Allow firmware loading from ODM partition\n\nODM partition may contain firmware and we should allow\nfirmware loading from this partition\n\nTest: firmware is loaded succesfully\nChange-Id: I7d327bc79a04d1a2dee0fd47407eb53f9d391665\nSigned-off-by: Alin Jerpelea \u003calin.jerpelea@sonymobile.com\u003e\n"
    },
    {
      "commit": "43da9ee6048ccae42542a64b25d4011d9d028fb0",
      "tree": "b019ef5e979ccec8c5c56b3ebcc180d89ce9e7c1",
      "parents": [
        "fe75fb7cef0a738b8000e5af6ad13c8d49b1c8ec",
        "d06a0c035b1463f597bbea4d4b7c2385f7f3c137"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Fri Dec 01 05:06:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 01 05:06:43 2017 +0000"
      },
      "message": "Merge \"init/selinux: renames nonplat_declaration.cil to plat_pub_versioned.cil\"\nam: d06a0c035b\n\nChange-Id: I9d5f5c441dc3669417787f69116f6e332807d337\n"
    },
    {
      "commit": "d06a0c035b1463f597bbea4d4b7c2385f7f3c137",
      "tree": "c26f2c4c21aeede77e48d25a1b169ec8aa3e5b90",
      "parents": [
        "b4d6b8ff8d5096557b4d81987576f42a5931d041",
        "069ab5bd1a1d2b68ef972d758ac69c7a0010b94f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 01 05:02:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 01 05:02:47 2017 +0000"
      },
      "message": "Merge \"init/selinux: renames nonplat_declaration.cil to plat_pub_versioned.cil\""
    },
    {
      "commit": "80d2fdcac7338f5bef89b49f3e19ddd5aecdbd0a",
      "tree": "5849dac6a0f8cd9679ceb2677efd1498b0d9198d",
      "parents": [
        "756d122b8fef989d81971a97413e06ef1a79604f",
        "c02b92a923513d97e7240b4af2f58c398081611c"
      ],
      "author": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Thu Nov 30 17:34:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 30 17:34:25 2017 +0000"
      },
      "message": "Merge \"Run restorecon after init creates a symlink or writes to a file.\"\nam: c02b92a923\n\nChange-Id: I06d9c5cdefa732ae2094d389678980e597a89c4c\n"
    },
    {
      "commit": "c02b92a923513d97e7240b4af2f58c398081611c",
      "tree": "d17664fed62e23489ee272bdf83e29acb84600ae",
      "parents": [
        "96b5268405555cb2fbe9d9541e2f1041507b1af3",
        "4b591f1851d1708dc6416a09d78437ac1d7b416e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 30 17:30:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 30 17:30:17 2017 +0000"
      },
      "message": "Merge \"Run restorecon after init creates a symlink or writes to a file.\""
    },
    {
      "commit": "4b591f1851d1708dc6416a09d78437ac1d7b416e",
      "tree": "058fe687371e5d76ee0b6f51a8f4d0e88106ae5c",
      "parents": [
        "fa65396ca278a0ecc21b14b9fb7603f219004ba2"
      ],
      "author": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Mon Nov 27 14:45:26 2017 -0800"
      },
      "committer": {
        "name": "Joel Galenson",
        "email": "jgalenson@google.com",
        "time": "Wed Nov 29 15:29:49 2017 -0800"
      },
      "message": "Run restorecon after init creates a symlink or writes to a file.\n\nInit currently sets the SELinux context on a mkdir but not on\nother operations.  This patch modifies it to do so when creating\nsymlinks, writing to a file, or copying a file.\n\nTest: Built, flashed, and booted.  Added fake init entries and\nverified that they received the proper SELinux context.\n\nChange-Id: I836b570fef81d74f3b6c8e7ce0274e94ca7b12d3\n"
    },
    {
      "commit": "069ab5bd1a1d2b68ef972d758ac69c7a0010b94f",
      "tree": "6de2f565dfba8ea7cd42e28fe20de821e1dc1221",
      "parents": [
        "fa65396ca278a0ecc21b14b9fb7603f219004ba2"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed Oct 18 17:03:20 2017 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed Nov 29 18:13:10 2017 +0800"
      },
      "message": "init/selinux: renames nonplat_declaration.cil to plat_pub_versioned.cil\n\nThe content of nonplat_declaration.cil in /vendor is a versioned public\nsepolicy exported from ${AOSP}/system/sepolicy/public. Renames it to\nbetter reflect the fact.\n\nBug: 64240127\nTest: boot sailfish normally without odm\nTest: boot another device having odm\nChange-Id: I654f5bbde2f2d666a2a5c7ed8561ccd93c983a6e\n"
    },
    {
      "commit": "a3f19e0261af928fb17b20d51d1dd437c8d40a57",
      "tree": "4d1967bc6c003c4dc997b1c006b517d39ce172d7",
      "parents": [
        "289c1f346857e5b78b5e77c3386d66a72dfe91b6",
        "f71a3d66b3192894eb3782d860bba1e64d67e53f"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Nov 27 23:00:22 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 27 23:00:22 2017 +0000"
      },
      "message": "Merge \"Revert \"init: use ro.init.subcontexts_enabled to enable subcontexts\"\"\nam: f71a3d66b3\n\nChange-Id: I79914c7f7757caa24b024cb33a6d454275704548\n"
    },
    {
      "commit": "f71a3d66b3192894eb3782d860bba1e64d67e53f",
      "tree": "e4cda46250605cf332872a1bcb2e908746b2ca9b",
      "parents": [
        "a22780401569df71d3774679f2097efec0bc767f",
        "193e43494f8afffaa1098690f1d249a3e61f2d43"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Nov 27 22:54:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 27 22:54:45 2017 +0000"
      },
      "message": "Merge \"Revert \"init: use ro.init.subcontexts_enabled to enable subcontexts\"\""
    },
    {
      "commit": "289c1f346857e5b78b5e77c3386d66a72dfe91b6",
      "tree": "e1d0353cd7d7012147965282e85dbbb4c9005669",
      "parents": [
        "4d736b5fa525391b8ffa0f198b6ff62a63cc6a20",
        "a22780401569df71d3774679f2097efec0bc767f"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Mon Nov 27 21:37:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 27 21:37:16 2017 +0000"
      },
      "message": "Merge \"init: Drop inheritable capabilities when switching uids\"\nam: a227804015\n\nChange-Id: I2d720e330e7043434e198ef455a8f340dd57b95d\n"
    },
    {
      "commit": "193e43494f8afffaa1098690f1d249a3e61f2d43",
      "tree": "d33bf3b0e8170ff8645f36a0ac870e72f16ede36",
      "parents": [
        "b77ecd04d852aacb02eeed20860a498b09d27134"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Nov 27 09:02:08 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Nov 27 09:03:28 2017 -0800"
      },
      "message": "Revert \"init: use ro.init.subcontexts_enabled to enable subcontexts\"\n\nThis reverts commit 79193a42e7aa5760a6f98c0718e3d70c560d0e8e.\n\nBug: 62875318\nTest: boot walleye, sailfish without SELinux audits\nChange-Id: I019b66a3130acba2c07e984e4bc352228f09d7f5\n"
    },
    {
      "commit": "94fb5b0bef4ff7bd5c610ed5ebfad9c0ba41c62f",
      "tree": "9875617ef3617782dc88450c5850759e91afc2d5",
      "parents": [
        "37eb97d911087992fb7dc986331e10a3c5a18d30"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Thu Nov 16 15:52:00 2017 -0800"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Fri Nov 17 09:11:37 2017 -0800"
      },
      "message": "init: Drop inheritable capabilities when switching uids\n\nThis change explicitly drops all inheritable capabilities (and, by\nextension, ambient capabilities) when there are no explicit capabilities\nbeing set by a service and the user is changed. This prevents Android\nrunning in a container from accidentally granting extra capabilities to\nservices.\n\nBug: 69320306\nTest: aosp_sailfish still boots\nTest: sailfish:/ $ grep Cap /proc/`pidof android.hardware.audio@2.0-service`/status\n      CapInh: 0000000000000000\n      CapPrm: 0000000000000000\n      CapEff: 0000000000000000\n      CapBnd: 0000003fffffffff\n      CapAmb: 0000000000000000\nTest: sailfish:/ $ grep Cap /proc/`pidof logd`/status\n      CapInh: 0000000000000000\n      CapPrm: 0000000440000000\n      CapEff: 0000000440000000\n      CapBnd: 0000003fffffffff\n      CapAmb: 0000000000000000\nTest: Android in Chrome OS still boots\nTest: localhost ~ # grep Cap /proc/`pidof android.hardware.audio@2.0-service`/status\n      CapInh: 0000000000000000\n      CapPrm: 0000000000000000\n      CapEff: 0000000000000000\n      CapBnd: 000000006daefdff\n      CapAmb: 0000000000000000\nTest: localhost ~ # grep Cap /proc/`pidof logd`/status\n      CapInh: 0000000000000000\n      CapPrm: 0000000040000000\n      CapEff: 0000000040000000\n      CapBnd: 000000006daefdff\n      CapAmb: 0000000000000000\n\nChange-Id: I9218f2e27ff4fb4d91d50f9a98c0fdb4e272952c\n"
    },
    {
      "commit": "864a1baa0fa971da39c0c8c221ee35290c53e2b2",
      "tree": "43bd75fd4c5b50db95cf5017cd09884b2818bd9b",
      "parents": [
        "11bb6bbf415389ca0aaab97b8dbe283f249d1135",
        "37eb97d911087992fb7dc986331e10a3c5a18d30"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Nov 15 21:49:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 15 21:49:19 2017 +0000"
      },
      "message": "Merge changes from topic \"b69050941\"\nam: 37eb97d911\n\nChange-Id: Icdfc3e160b2ae1d2dc63c1d86c1a75a199fdf1c0\n"
    },
    {
      "commit": "6f5333a4a94becb7ef74a5b54d0c28a3738881fd",
      "tree": "fa1045f06bc9300a2d51e70b568ed5282c325498",
      "parents": [
        "5e1bea30b924661878c6fac4ec14b18e5ba17773"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Nov 13 15:31:54 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Nov 15 10:39:29 2017 -0800"
      },
      "message": "Allow a service to override another.\n\nFor instance, on vendor.img:\nservice foo /vendor/bin/nfc\n    ...\n\nAnd then on odm.img:\nservice foo /odm/bin/super-nfc\n    override\n\nAllows a service on ODM to override a HAL on vendor.\n\nBug: 69050941\nTest: boot, init_tests\nChange-Id: I4e908fb66e89fc6e021799fe1fa6603d3072d62a\n"
    },
    {
      "commit": "5e1bea30b924661878c6fac4ec14b18e5ba17773",
      "tree": "b46478a42b8a95e58c221d828b8dd4afdd0119a2",
      "parents": [
        "7d0a5c3656ee56eb81e442b58063d500b4f506e0"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Nov 10 14:43:58 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Nov 15 10:39:29 2017 -0800"
      },
      "message": "Move service name duplication lookup to EndSection\n\nThis is paving the way to allow an \"override\" tag\nin init services. This also means that errors for\npart of a service definition in its section will\nbe shown in addition to the fact that the service\nis duplicated.\n\nBug: 69050941\nTest: boot, init_tests\nChange-Id: Ic1ea8597789f45ead1083451b3e933db1524bdc9\n"
    },
    {
      "commit": "7d0a5c3656ee56eb81e442b58063d500b4f506e0",
      "tree": "1b066819020691798e8f57bc3b64c58e11f21f2f",
      "parents": [
        "b480d441ac092fc855711180023e6292e705e589"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Nov 10 14:20:47 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Nov 15 10:39:29 2017 -0800"
      },
      "message": "EndSection returns Result\u003cSuccess\u003e\n\nAllow it to fail. When there is an error for a section ending,\nprint the error pointing to the line where the section starts.\n\nBug: 69050941\nTest: boot, init_tests\nChange-Id: I1d8ed25f4b74cc9ac24d38b8075751c7d606aea8\n"
    },
    {
      "commit": "b480d441ac092fc855711180023e6292e705e589",
      "tree": "da41ae8bc6c0fe93596cce870ebc6a445a4da461",
      "parents": [
        "b77ecd04d852aacb02eeed20860a498b09d27134"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Nov 10 12:50:58 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Nov 14 13:47:59 2017 -0800"
      },
      "message": "Fix out of date SectionParser comment.\n\nIt has since been refactored with different\nreturn types.\n\nBug: 69050941\nTest: boot, init_tests\nChange-Id: I54c0e6745640136f060ba1876b2f26d95bddc9d6\n"
    }
  ],
  "next": "23e27db576d06761363365494327baf062468a66"
}
