)]}'
{
  "log": [
    {
      "commit": "6bcd50ed6dee24ffb8d0f3d7669bc6fd995880e5",
      "tree": "0cb59f59b360efc5e9f2b89b3ce3788bb5635a50",
      "parents": [
        "c42f5d64e487b9cab18606583fa3d22d3b42d8ef"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 10 18:54:28 2019 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 10 18:54:28 2019 -0700"
      },
      "message": "system/apex/*/bin should be 0751\n\nConsistent with other bin directories, system/apex/*/bin should\nbe 0751.\n\nTest: compiles and boots\nChange-Id: Ie32e7623d2b2eb923417d0c2ba3ee6899a9bfc7b\n"
    },
    {
      "commit": "c42f5d64e487b9cab18606583fa3d22d3b42d8ef",
      "tree": "f752d391bc474a1cc67a9257bb11c6809abc86a2",
      "parents": [
        "24815a49d478c9612268f8a781c5db821fa0215b",
        "af32f9377ea5c1fa694db68bc3722d1e95e22108"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 10 23:47:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 23:47:15 2019 +0000"
      },
      "message": "Merge \"libsnapshot: collapse fix sanity checks\""
    },
    {
      "commit": "24815a49d478c9612268f8a781c5db821fa0215b",
      "tree": "97abdefff29cd801576fc7a6d6d9c6303a02afd2",
      "parents": [
        "878930be925e44f72df4bb84671aede51f1aa12d",
        "f4cd54e51290e011bfbe9786368da42868d30844"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 10 23:46:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 23:46:22 2019 +0000"
      },
      "message": "Merge \"libsnapshot: MapSnapshot: use device string for inner device\""
    },
    {
      "commit": "878930be925e44f72df4bb84671aede51f1aa12d",
      "tree": "c74af960e6f74227503706186fb451ec76306905",
      "parents": [
        "dfad089dad494066e9931a182f0b6743c8dc342d",
        "922cfefbb9b1e7a2d32331c10a15c497ae7acd89"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Tue Sep 10 21:36:39 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 21:36:39 2019 +0000"
      },
      "message": "Merge \"liblp: Add a helper to differentiate empty from non-empty images.\""
    },
    {
      "commit": "dfad089dad494066e9931a182f0b6743c8dc342d",
      "tree": "7ba03e8d0d6af8ecdb705aeb53864ae0b723bef9",
      "parents": [
        "f7fbbbfcc9545c9d216c43ba4e85167802be9e0e",
        "c649ca538d639629c85f43e85762455b9634440c"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Tue Sep 10 19:09:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 19:09:04 2019 +0000"
      },
      "message": "Merge \"Provide VINTF for Trusty Keymaster\""
    },
    {
      "commit": "f7fbbbfcc9545c9d216c43ba4e85167802be9e0e",
      "tree": "68c66b2ce0cca29744c14bc47a4bd8ea5c3b5772",
      "parents": [
        "4e46a33c70c50940b19e37af7b99924f559b8542",
        "3d1023e50d89baf6520aeea93cbf9d8b8fd61b24"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Tue Sep 10 17:15:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 17:15:53 2019 +0000"
      },
      "message": "Merge \"Inject auth token into tags\""
    },
    {
      "commit": "4e46a33c70c50940b19e37af7b99924f559b8542",
      "tree": "78ed479609281bf3e45c2a2ee2731fa127f9a71b",
      "parents": [
        "483c2f90598aedfcdedd120fcce26ab7c39989a4",
        "1ab3dfcab469198114c4bb4a3914c6b64b891f72"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Sep 10 17:04:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 17:04:57 2019 +0000"
      },
      "message": "Merge \"Reland^2: \"init: run property service in a thread\"\""
    },
    {
      "commit": "483c2f90598aedfcdedd120fcce26ab7c39989a4",
      "tree": "1b4fc18230328a3db0aaf1b02792f1828070d886",
      "parents": [
        "e351e5ed06a675b27fb797bfd8df95d5815c6ccf",
        "e9bd8df8b90c00595448f80b19daf022109a711e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 10 16:19:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 16:19:47 2019 +0000"
      },
      "message": "Merge \"libbacktrace: Fix clang-tidy warning\""
    },
    {
      "commit": "e351e5ed06a675b27fb797bfd8df95d5815c6ccf",
      "tree": "1d1f8631d049e92692f6dd9c01444c962f18eaf7",
      "parents": [
        "9bcec87086e13e2f32b2157cefcb700d8e398a01",
        "4233ec7f66d54d30109c838d09b358f21e214011"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Sep 10 14:52:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 14:52:31 2019 +0000"
      },
      "message": "Merge \"ueventd: make parallel restorecon functionality optional\""
    },
    {
      "commit": "9bcec87086e13e2f32b2157cefcb700d8e398a01",
      "tree": "4c964a77b077f14806b509436a94d517e67ed2ec",
      "parents": [
        "b120efd0c3c77feaf6305a2b570af8fb1a1fa07d",
        "2d29c4b0a38511cddcdaec9f0baf7732360ad88f"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Sep 10 10:23:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 10:23:33 2019 +0000"
      },
      "message": "Merge \"ion-unit-tests: Add system heap presence test\""
    },
    {
      "commit": "2d29c4b0a38511cddcdaec9f0baf7732360ad88f",
      "tree": "dba90f9485095b5c88324950f791d3e830c90dae",
      "parents": [
        "983f76b3c632b29ca6ff858d986378a9028493c2"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Sep 10 00:46:45 2019 -0700"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Sep 10 00:46:45 2019 -0700"
      },
      "message": "ion-unit-tests: Add system heap presence test\n\nMake sure system heap is present on devices, its id is \u00270\u0027,\nand that we can allocate and free buffers from the system heap\n\nBug: 140507100\nFixes: 140507100\nTests: ion-unit-tests --gtest_fiter\u003dSystemHeap.*\n\nChange-Id: Ief502c9fce1e54f54b4e6d60f288954e4bf42e04\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "af32f9377ea5c1fa694db68bc3722d1e95e22108",
      "tree": "0fff45f911c9b39b171ac41f1376c555a620ec8a",
      "parents": [
        "f4cd54e51290e011bfbe9786368da42868d30844"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Sep 09 16:16:57 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Sep 09 19:45:14 2019 -0700"
      },
      "message": "libsnapshot: collapse fix sanity checks\n\nFix sanity checks of the snapshot device sizes.\nTest: libsnapshot_test\n\nChange-Id: If2945eaa84be59e14ea1fbc9028022db3a145698\n"
    },
    {
      "commit": "f4cd54e51290e011bfbe9786368da42868d30844",
      "tree": "80b5af0dd257e6496a7c0da85de46c1214083c08",
      "parents": [
        "b120efd0c3c77feaf6305a2b570af8fb1a1fa07d"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Sep 09 15:48:08 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Sep 09 19:45:14 2019 -0700"
      },
      "message": "libsnapshot: MapSnapshot: use device string for inner device\n\nPreviously, the device path for the -inner device is used, which\nmay not be present. Use the major:minor instead.\n\nTest: libsnapshot (not flaky)\nChange-Id: I8b8cbe8af27a49a50876385bb0c0353ecf7ed1de\n"
    },
    {
      "commit": "b120efd0c3c77feaf6305a2b570af8fb1a1fa07d",
      "tree": "fb9d82bd3caf72f6b0c10def3b5ce2f1b57d78b2",
      "parents": [
        "c48b65c67ed5f4aceda79e0b06d8fb6a601e5a5c",
        "16fb3f9e425bc511ec5f8952d3130c633dee8ddc"
      ],
      "author": {
        "name": "Jon Spivack",
        "email": "spivack@google.com",
        "time": "Tue Sep 10 02:38:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 02:38:31 2019 +0000"
      },
      "message": "Merge \"Allow AIDL interfaces in service parsing\""
    },
    {
      "commit": "c48b65c67ed5f4aceda79e0b06d8fb6a601e5a5c",
      "tree": "73cb81f976d957f21205f8a706ec00caadb2f10c",
      "parents": [
        "fc920dcbb77f5b5ada475cad424076ce6e51fdfb",
        "26a2e6eb7bbe3fd9438210153b17d85786754027"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 10 02:12:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 10 02:12:58 2019 +0000"
      },
      "message": "Merge \"libsnapshot: cancel ok if unverified and old slot\""
    },
    {
      "commit": "c649ca538d639629c85f43e85762455b9634440c",
      "tree": "ad58bad13c85e12412cc06f86f1122715d971901",
      "parents": [
        "fc920dcbb77f5b5ada475cad424076ce6e51fdfb"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Aug 26 10:47:51 2019 -0700"
      },
      "committer": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Sep 09 23:23:45 2019 +0000"
      },
      "message": "Provide VINTF for Trusty Keymaster\n\nThis makes it easier to add or remove the Trusty keymaster service from\na device by providing a manifest fragment to add whenever it is enabled.\n\nTest: Keymaster VTS, Keystore CTS (sans attestation)\nChange-Id: Ib0f5fd7c016c0c18d77c9d2623c89f3b35ba7ad7\n"
    },
    {
      "commit": "3d1023e50d89baf6520aeea93cbf9d8b8fd61b24",
      "tree": "b4b1482f2e4defb94ef58f19206a013ae711e62c",
      "parents": [
        "fc920dcbb77f5b5ada475cad424076ce6e51fdfb"
      ],
      "author": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Aug 26 10:44:45 2019 -0700"
      },
      "committer": {
        "name": "Matthew Maurer",
        "email": "mmaurer@google.com",
        "time": "Mon Sep 09 16:00:36 2019 -0700"
      },
      "message": "Inject auth token into tags\n\nThe reference keymaster at system/keymaster still expects to receive its\nauth tokens in the tags, rather than as a separate parameter. This\nchange injects the separate parameter passed to the KM4 HAL as a legacy\ntag in the request.\n\nLonger term, system/keymaster should support a separate authToken\nparameter, and it should be serialized and sent to Trusty separately.\n\nTest: Keymaster VTS + Keystore CTS (sans attestation)\nChange-Id: Ie69cbd358504bb7612f7d55158509043cdad4e4e\n"
    },
    {
      "commit": "16fb3f9e425bc511ec5f8952d3130c633dee8ddc",
      "tree": "c1684bdc95e9ffb95580ca645f643d9a256c1b93",
      "parents": [
        "983f76b3c632b29ca6ff858d986378a9028493c2"
      ],
      "author": {
        "name": "Jon Spivack",
        "email": "spivack@google.com",
        "time": "Fri Jul 26 13:14:42 2019 -0700"
      },
      "committer": {
        "name": "Jon Spivack",
        "email": "spivack@google.com",
        "time": "Mon Sep 09 15:24:42 2019 -0700"
      },
      "message": "Allow AIDL interfaces in service parsing\n\nBug: 138756857\nTest: Manual (using mediaextractor as a test service)\nChange-Id: Ice2c695fca7062d6a115df13a6ac1d6fe82a3a98\n"
    },
    {
      "commit": "26a2e6eb7bbe3fd9438210153b17d85786754027",
      "tree": "73cb81f976d957f21205f8a706ec00caadb2f10c",
      "parents": [
        "fc920dcbb77f5b5ada475cad424076ce6e51fdfb"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Sep 05 17:54:03 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Sep 09 14:41:57 2019 -0700"
      },
      "message": "libsnapshot: cancel ok if unverified and old slot\n\nAllow canceling an update if the update has been applied\nbut not rebooted into it.\n\nTest: libsnapshot_test\nChange-Id: I694d74e200908ec622855074ab811e3029328f43\n"
    },
    {
      "commit": "922cfefbb9b1e7a2d32331c10a15c497ae7acd89",
      "tree": "10ee8dfe40201b58dbdacf5b518a44208c3da239",
      "parents": [
        "50e408db2d1bd015f87996f98b0bc21a39402ab0"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Thu Sep 05 18:56:43 2019 -0700"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Mon Sep 09 13:16:02 2019 -0700"
      },
      "message": "liblp: Add a helper to differentiate empty from non-empty images.\n\nAlso, finally explain the difference between these somewhere.\n\nBug: 140204341\nTest: lpdump\nChange-Id: I128780b01a28e893afac65f3aa4f4a8d36032d63\n"
    },
    {
      "commit": "fc920dcbb77f5b5ada475cad424076ce6e51fdfb",
      "tree": "5a35fc07784e8a3ca15e34ca49947ee376ee8c1a",
      "parents": [
        "983f76b3c632b29ca6ff858d986378a9028493c2",
        "8bdbea8df5b776a8984b21706f06b3fc56603079"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Mon Sep 09 19:42:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 09 19:42:13 2019 +0000"
      },
      "message": "Merge \"Remove `start vold` action from post-fs-data\""
    },
    {
      "commit": "e9bd8df8b90c00595448f80b19daf022109a711e",
      "tree": "494624037bfac5905d31424bda2e4a202a4d8a6c",
      "parents": [
        "983f76b3c632b29ca6ff858d986378a9028493c2"
      ],
      "author": {
        "name": "Luca Stefani",
        "email": "luca.stefani.ge1@gmail.com",
        "time": "Mon Sep 09 18:39:08 2019 +0200"
      },
      "committer": {
        "name": "Luca Stefani",
        "email": "luca.stefani.ge1@gmail.com",
        "time": "Mon Sep 09 18:39:08 2019 +0200"
      },
      "message": "libbacktrace: Fix clang-tidy warning\n\n* warning: overloaded \u0027operator{++,--}\u0027 returns a reference instead of a constant object type [cert-dcl21-cpp]\n\nChange-Id: I8a904622b30dc70d17483b87748c2ea541e50c46\n"
    },
    {
      "commit": "4233ec7f66d54d30109c838d09b358f21e214011",
      "tree": "c72d0322a78fdc005a600bb3ead293067f8b356d",
      "parents": [
        "50e408db2d1bd015f87996f98b0bc21a39402ab0"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Sep 06 10:52:31 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Sep 09 09:02:48 2019 -0700"
      },
      "message": "ueventd: make parallel restorecon functionality optional\n\n5aa6197d5f387579ff04c330001840d6988e825f added the ability to\nparallelize restorecon to speed up boot for devices that have not\ncompletely moved to genfscon.  This parallel restorecon happens after\nthe parallel ueventd handling.\n\nThis causes a performance regression for devices that have moved to\ngenfscon, since previously, the restorecon() was done in the main\nueventd thread in parallel with the uevent handlers.\n\nI also tried to run the fully parallelized restorecon in parallel with\nthe uevent handlers, but that did not make any change to the cold boot\ntime, likely due to the additional overhead of parallelizing the work.\n\nBug: 140458170\nTest: blueline coldboot time returns to pre-regression time.\nChange-Id: I3cd6a869cc9b62792466813d94ad6c69834e854e\n"
    },
    {
      "commit": "8bdbea8df5b776a8984b21706f06b3fc56603079",
      "tree": "5a35fc07784e8a3ca15e34ca49947ee376ee8c1a",
      "parents": [
        "983f76b3c632b29ca6ff858d986378a9028493c2"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Mon Sep 09 14:47:47 2019 +0100"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Mon Sep 09 14:50:33 2019 +0100"
      },
      "message": "Remove `start vold` action from post-fs-data\n\nvold is already started during early-fs which happens before\npost-fs-data.\n\nTrying to start it again in post-fs-data is a little bit confusing.\n\nTest: device boots\nChange-Id: I5faefe6d1f1bb7472ea3d032b1f157c69da565f1\n"
    },
    {
      "commit": "983f76b3c632b29ca6ff858d986378a9028493c2",
      "tree": "29a7412bfaf1ccb7581826784d99ec1a24c21ddb",
      "parents": [
        "c8eadff1de468456fa321117788ed3fdba60fad0",
        "1136f1592a50c90b3b59fbc3293e4c1e155972e0"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sat Sep 07 23:46:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 07 23:46:00 2019 +0000"
      },
      "message": "Merge \"Init: Run boringssl self test via separate binaries.\""
    },
    {
      "commit": "c8eadff1de468456fa321117788ed3fdba60fad0",
      "tree": "4d9dce794f993963eab9fc57ec3c03b690269834",
      "parents": [
        "d5dff2604942e0756cb24cf575305714cb07a087",
        "3b8cd67dff9d39cb29da2d600a6849842e224506"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 07 03:22:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 07 03:22:15 2019 +0000"
      },
      "message": "Merge \"Add stub code to read MS OS 2.0 descriptors.\""
    },
    {
      "commit": "d5dff2604942e0756cb24cf575305714cb07a087",
      "tree": "b9b815c4e305ca218b3b66f4c5077854b28cbec3",
      "parents": [
        "4118221c66786eaeb1cb7bc6508f3c0ae8027d7c",
        "5f181bc503c27164bfa3fcf52fd26b0b68c3a580"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Fri Sep 06 22:59:07 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 06 22:59:07 2019 +0000"
      },
      "message": "Merge \"init: boot into thermal shutdown target on supported devices\""
    },
    {
      "commit": "3b8cd67dff9d39cb29da2d600a6849842e224506",
      "tree": "a6ae2282bdd503536a027a06ef918d1d5932cb37",
      "parents": [
        "4118221c66786eaeb1cb7bc6508f3c0ae8027d7c"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 06 14:42:06 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 06 14:45:11 2019 -0700"
      },
      "message": "Add stub code to read MS OS 2.0 descriptors.\n\nLinux doesn\u0027t seem to actually support emitting them, so we can\u0027t check\nthat they\u0027re actually there, but commit the code to read them so that\nif and when Linux gets support, it\u0027s easier to check.\n\nThis also adds some error checking for ill-formed binary object store\nentries.\n\nTest: check_ms_os_desc\nChange-Id: I4baf6a16f0f96acbec468b843db65d4ab3a589fe\n"
    },
    {
      "commit": "4118221c66786eaeb1cb7bc6508f3c0ae8027d7c",
      "tree": "6b004b40cbb79bd41844ea120e58171f3363699f",
      "parents": [
        "edf8e5715b229201c920b736c73cd6f7e1a8abc5",
        "27512c9e490107e4e07edea941e1de6651c203ab"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 06 20:19:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 06 20:19:31 2019 +0000"
      },
      "message": "Merge \"adb: add host tool to check for WinUSB descriptor.\""
    },
    {
      "commit": "edf8e5715b229201c920b736c73cd6f7e1a8abc5",
      "tree": "1744af39cdab45fdc7968de0c0c1a6b8e2ced478",
      "parents": [
        "233c32a4546ff2d28ba359c4dba193bb98f095ca",
        "a4eaf64de8727e870cdea23be203268405c8606d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 06 20:04:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 06 20:04:32 2019 +0000"
      },
      "message": "Merge \"Remove libhwbinder/libhidltransport deps\""
    },
    {
      "commit": "233c32a4546ff2d28ba359c4dba193bb98f095ca",
      "tree": "f5fa82eb783917826583ec77a7b1a6b897c93d36",
      "parents": [
        "7b968315ee30218748b1b5daf896fd195f770158",
        "f35687df6e9571ae900bcd6e783549ba33abca2d"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Sep 06 19:28:09 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 06 19:28:09 2019 +0000"
      },
      "message": "Merge changes from topic \"libsnapshot_prep\"\n\n* changes:\n  libsnapshot: MapPartitionWithSnapshot cleanup itself if failed\n  libsnapshot: MapPartitionWithSnapshot: fix timeout\n  libsnapshot: require ex lock for {Create}{CowImage,Snapshot} / DeleteSnapshot\n  libsnapshot: Refactor: add {Create,Map,Unmap}CowImage\n"
    },
    {
      "commit": "5f181bc503c27164bfa3fcf52fd26b0b68c3a580",
      "tree": "9e0a7c1899272af75c6ca2e134d60c916c9c645f",
      "parents": [
        "8c8ce02e2eb2dc0671518423f2e6b0661013a514"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Aug 27 16:35:35 2019 -0700"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Fri Sep 06 11:26:43 2019 -0700"
      },
      "message": "init: boot into thermal shutdown target on supported devices\n\nBug: 137982557\nTest: thermal shutdown\nChange-Id: I4c7c4647e340be6be7a37a3dde6324b4d7903007\n(cherry picked from commit 271014e8325f17ac1fcf83dede7ce987c293fb2c)\n"
    },
    {
      "commit": "7b968315ee30218748b1b5daf896fd195f770158",
      "tree": "99d1fa68f1d6eb744188023f178d95f0e5024230",
      "parents": [
        "0b18c6735fec7d8874625b839ed6567b098f7e88",
        "7a5f6c5912233833c6e445c7aca1ba6b74d138d0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 06 17:34:05 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 06 17:34:05 2019 +0000"
      },
      "message": "Merge \"init/fscrypt_init_extensions: remove redundant log message\""
    },
    {
      "commit": "0b18c6735fec7d8874625b839ed6567b098f7e88",
      "tree": "be18f8fcd4b02b5351b595ad20ca8f70df5f25e3",
      "parents": [
        "95773aa4b6d128bb4793492cf8b995bdb40033f5",
        "6ef0081fc6ad40bdbf82bedc6ffa399fe5660e1e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 06 03:28:42 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 06 03:28:42 2019 +0000"
      },
      "message": "Merge \"fs_mgr: overlayfs: README merge in public document\""
    },
    {
      "commit": "95773aa4b6d128bb4793492cf8b995bdb40033f5",
      "tree": "e50e34e1313789a2c4133f9d8d962b3ece46dbef",
      "parents": [
        "f613b4a9a60099df06822938a9cd6a02492826fb",
        "79f875f240eec909275fe667d89a5a3a9a82b4fe"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 06 03:17:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 06 03:17:22 2019 +0000"
      },
      "message": "Merge \"Moving skip_mount.cfg to system_ext partition\""
    },
    {
      "commit": "f613b4a9a60099df06822938a9cd6a02492826fb",
      "tree": "6c7f194fc96cd772034fcafc4f73dec661306983",
      "parents": [
        "fd4fecc162aa1bbed0834f35b034261c47c208e5",
        "9fb93edd5bd4531f72faadfb269a0aa25d413b5d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 06 02:29:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 06 02:29:23 2019 +0000"
      },
      "message": "Merge \"Reland \"libutils: Introduce StaticString16\"\"\""
    },
    {
      "commit": "fd4fecc162aa1bbed0834f35b034261c47c208e5",
      "tree": "0c8b2db78c83ca2960e404061306eac2cd47a8c7",
      "parents": [
        "50e408db2d1bd015f87996f98b0bc21a39402ab0",
        "c732c034823f304efe688a86e5df518b4520b695"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 05 23:42:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 05 23:42:53 2019 +0000"
      },
      "message": "Merge \"compare android::Vector and std::vector\""
    },
    {
      "commit": "27512c9e490107e4e07edea941e1de6651c203ab",
      "tree": "481998f50a985d58a5a96734c72c58dded89a059",
      "parents": [
        "50e408db2d1bd015f87996f98b0bc21a39402ab0"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Sep 04 16:31:51 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 05 15:56:54 2019 -0700"
      },
      "message": "adb: add host tool to check for WinUSB descriptor.\n\nBug: http://b/68993980\nTest: manual\nChange-Id: I97395c9738a671dd136c6cf66f88fdb769ec7227\n"
    },
    {
      "commit": "f35687df6e9571ae900bcd6e783549ba33abca2d",
      "tree": "69d2f04484c1945ba91af2a12e774606ce0fda07",
      "parents": [
        "5576f7cc13bdec1e25ce7573deca0058d7ddb3bb"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Aug 27 18:37:41 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Sep 05 15:14:34 2019 -0700"
      },
      "message": "libsnapshot: MapPartitionWithSnapshot cleanup itself if failed\n\nWhen we run MapPartitionWithSnapshot, intermediate devices aren\u0027t\ncleaned up if the call fails. Hence, record these intermediate devices\nwe have created along the way using the new AutoDevices class. Upon\nfailure, the AutoDevices object will be destroyed, and all the\nintermediate devices will be deleted from device mapper or image\nmanager. Upon success, AutoDevices::Release() makes sure the\nintermediate devices aren\u0027t deleted.\n\nTest: libsnapshot_test\n\nChange-Id: Iff4c1297528288a27765c0224b67254b68c89776\n"
    },
    {
      "commit": "5576f7cc13bdec1e25ce7573deca0058d7ddb3bb",
      "tree": "a35d6972abf5365fc6455541b9bfe82fc894ba16",
      "parents": [
        "caaf9a617af7bacaf735586cf6e7ca9a13d7d2ab"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 14:33:29 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Sep 05 15:14:34 2019 -0700"
      },
      "message": "libsnapshot: MapPartitionWithSnapshot: fix timeout\n\nThe MapPartitionWithSnapshot call doesn\u0027t respect params.timeout.\nFix it.\n\nTest: libsnapshot_test\nChange-Id: I2c5a2889e4687449319bb2018e39405682b458a6\n"
    },
    {
      "commit": "caaf9a617af7bacaf735586cf6e7ca9a13d7d2ab",
      "tree": "d612f31bfc3558712fae26c4b516a01da3d9f602",
      "parents": [
        "27fb95dedfafeef20220294f0a814cec06e9db87"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Aug 27 18:56:07 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Sep 05 15:14:34 2019 -0700"
      },
      "message": "libsnapshot: require ex lock for {Create}{CowImage,Snapshot} / DeleteSnapshot\n\nCreate / Deleting the COW image / snapshot changes states, so it makes\nsense to require an exclusive lock before doing so. If caller doesn\u0027t hold\nan exclusive lock, parallel calls to MapCowImage / MapSnapshot / UnmapCowImage /\nUnmapSnapshot may have weird results.\n\nTest: libsnapshot_test\n\nChange-Id: I4be660df1059ec24144f8baf43a1c8c05d9e372b\n"
    },
    {
      "commit": "27fb95dedfafeef20220294f0a814cec06e9db87",
      "tree": "72d625acb384a23eb9a2b17029b2632f30c59c1d",
      "parents": [
        "dccd6b33894c42a2b05afe04f16465f093920eac"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Aug 27 14:25:10 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Sep 05 15:14:34 2019 -0700"
      },
      "message": "libsnapshot: Refactor: add {Create,Map,Unmap}CowImage\n\nMove operations on image manager in *Snapshot functions to their own\nfunctions for finer granularity in control. *Snapshot functions only\nchanges snapshot state and snapshot devices, but not the supporting\ndevices.\n\nNow, MapSnapshot can take a customized COW device path. We will have\na more complicated stack for the COW device in upcomming CLs.\n\nAlso, Change SnapshotManager::CreateSnapshot\u0027s signature to\naccept a SnapshotStatus struct that includes all sizes, so that\ncow_partition_size and cow_file_size can also be written to the snapshot\nstatus file.\n\nTest: libsnapshot_test\n\nChange-Id: I388ecd4bcfbfcc3f379ecb6993615234f4fbcb4e\n"
    },
    {
      "commit": "1ab3dfcab469198114c4bb4a3914c6b64b891f72",
      "tree": "7e8fb97277f79767cb4f473b22f1173011c3d149",
      "parents": [
        "50e408db2d1bd015f87996f98b0bc21a39402ab0"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 22 17:46:37 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Sep 05 14:42:58 2019 -0700"
      },
      "message": "Reland^2: \"init: run property service in a thread\"\n\nIt\u0027s been a long standing issue that init cannot respond to property\nset messages when it is running a builtin command.  This is\nparticularly problematic when the commands involve IPC to vold or\nother daemons, as it prevents them from being able to set properties.\n\nThis change has init run property service in a thread, which\neliminates the above issue.\n\nThis change may also serve as a starting block to running property\nservice in an entirely different process to better isolate init from\nhandling property requests.\n\nReland: during reboot, init stops processing property_changed messages\nfrom property service, since it will not act on these anyway.  This\nhad an unexpected effect of causing future property_set calls to block\nindefinitely, since the buffer between init and property_service was\nfilling up and the send() call from property_service would then\nblock.  This change has init tell property_service to stop sending it\nproperty_changed messages once reboot begins.\n\nTest: CF boots, walleye boots, properties are set appropriately\nChange-Id: I26902708e8be788caa6dbcf4b6d2968d90962785\n"
    },
    {
      "commit": "a4eaf64de8727e870cdea23be203268405c8606d",
      "tree": "96a2677f2c11e598ad5e230dcb803e17a238e8ee",
      "parents": [
        "50e408db2d1bd015f87996f98b0bc21a39402ab0"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Sep 05 14:17:42 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Sep 05 14:17:42 2019 -0700"
      },
      "message": "Remove libhwbinder/libhidltransport deps\n\nSince these were combined into libhidlbase.\n\nBug: 135686713\nTest: build only (libhwbinder/libhidltransport are empty)\nChange-Id: I0bdffced6af52695c0ef98c9dd659348e56f7aa6\n"
    },
    {
      "commit": "6ef0081fc6ad40bdbf82bedc6ffa399fe5660e1e",
      "tree": "505c0ef9fff04d9d2bea1fc5694f67a1810c87fb",
      "parents": [
        "50e408db2d1bd015f87996f98b0bc21a39402ab0"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 05 14:02:58 2019 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 05 14:07:57 2019 -0700"
      },
      "message": "fs_mgr: overlayfs: README merge in public document\n\nA public facing document rewrite merged into the AOSP-facing README.\n\nTest: none\nBug: 118781664\nChange-Id: I6b9d3c4e274edc700dd587f2adc51147382d6b3f\n"
    },
    {
      "commit": "7a5f6c5912233833c6e445c7aca1ba6b74d138d0",
      "tree": "a010db32498ddf21d37d44365e64640eae942215",
      "parents": [
        "48eb2ee17644dc7b497c0422c18745b1e063ff3f"
      ],
      "author": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Thu Sep 05 13:01:13 2019 -0700"
      },
      "committer": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Thu Sep 05 13:20:25 2019 -0700"
      },
      "message": "init/fscrypt_init_extensions: remove redundant log message\n\nOn every boot, there is a \"duplicate\" message logged at INFO level for\nevery system device-encrypted directory, e.g.:\n\n    1     1 I init    : Setting policy on /data/app-private\n    1     1 I init    : Encryption policy of /data/app-private set to 3a19970b1aa3abed modes 127/4\n\nOr:\n\n    1     1 I init    : Setting policy on /data/app-private\n    1     1 I init    : Verified that /data/app-private has the encryption policy 3a19970b1aa3abed modes 127/4\n\n(Before I51ee70706bc9ccb216ccefd7bdfbbfc57faae14d the second messages\nwere slightly different, but were similar and still at INFO level.)\n\nThe issue is that set_system_de_policy_on() prints its own log message,\nthen calls fscrypt_policy_ensure() which prints a message too; and the\nsecond message is essentially a superset of the first.\n\nClean this up by removing the message from set_system_de_policy_on().\n\nTest: Booted and checked the log.\nChange-Id: I2786ba7e2dbb355f159ac9d8fe5ad1f0a4cdbfea\n"
    },
    {
      "commit": "9fb93edd5bd4531f72faadfb269a0aa25d413b5d",
      "tree": "72e8c274e883d168e1be903d69d0da6bb98866e6",
      "parents": [
        "8bea425845ce232c272d8adc9e3149d49ba91a6f"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Thu Sep 05 13:18:27 2019 -0700"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Thu Sep 05 13:19:14 2019 -0700"
      },
      "message": "Reland \"libutils: Introduce StaticString16\"\"\n\nThis reverts commit 1270e4fbf17402fb01dbfa7928a654d41d8553ee.\n\nBug: 138856262\nTest: Run unit tests.\nChange-Id: I37be01d7d4f98a83078870cb0917275336fa2bbd\nMerged-In: I8da93f2c9b95183e32d4a2ea895f90c449abbe4d\n"
    },
    {
      "commit": "50e408db2d1bd015f87996f98b0bc21a39402ab0",
      "tree": "9b0a3e3c4fd09da411d425f185a3b97c294a5e04",
      "parents": [
        "8bea425845ce232c272d8adc9e3149d49ba91a6f",
        "c72fd9a9cac7824d87046a6fd25cc281dbe7352e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 05 19:33:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 05 19:33:38 2019 +0000"
      },
      "message": "Merge \"Limit the compat symlinks to ART binaries.\""
    },
    {
      "commit": "8bea425845ce232c272d8adc9e3149d49ba91a6f",
      "tree": "f81cf234e49ba15fae29cc004023b9121d5dc0b5",
      "parents": [
        "d0a45dbc9a8b2b4fc44528843228eccb16436f64",
        "7896e7adccbd272533ee2250f4a9c65cd4ca66d0"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Sep 05 18:04:14 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 05 18:04:14 2019 +0000"
      },
      "message": "Merge \"init: add exec_reboot_on_failure builtin\""
    },
    {
      "commit": "d0a45dbc9a8b2b4fc44528843228eccb16436f64",
      "tree": "f292dab7c2b779e4663e58701b6e3f1de35f0a1a",
      "parents": [
        "915521c7d8a99238f0937e6f3810cbe156968b92",
        "d4ef92d86666c15693b5e256b4f3fb970d02a190"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Sep 05 16:53:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 05 16:53:23 2019 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Merge Android 10 into master\""
    },
    {
      "commit": "915521c7d8a99238f0937e6f3810cbe156968b92",
      "tree": "c0fd1aec12adf7c5d2f0d343d10a4551258420ef",
      "parents": [
        "8412deda5189c9f24f5fbe350a8bc75aab74c64e",
        "c0660668e795cd8ed8714acdad759596ae20047c"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Sep 05 15:57:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 05 15:57:46 2019 +0000"
      },
      "message": "Merge \"libcutils: Implement ashmem_valid on host.\""
    },
    {
      "commit": "d4ef92d86666c15693b5e256b4f3fb970d02a190",
      "tree": "5ab3466fd92adb6c3ae1b33f9097bdd53b293a77",
      "parents": [
        "48eb2ee17644dc7b497c0422c18745b1e063ff3f",
        "4375597f95476d6e88c7bfdeae5fab84c5375476"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Sep 04 22:08:17 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Sep 04 22:08:17 2019 -0700"
      },
      "message": "DO NOT MERGE - Merge Android 10 into master\n\nBug: 139893257\nChange-Id: Id5c7c0c40d29884640b649db217be1eb86ee9147\n"
    },
    {
      "commit": "4375597f95476d6e88c7bfdeae5fab84c5375476",
      "tree": "5ab3466fd92adb6c3ae1b33f9097bdd53b293a77",
      "parents": [
        "2378575dac467fbda73e2e50dc9fc3140864eeed",
        "8412deda5189c9f24f5fbe350a8bc75aab74c64e"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 04 19:30:02 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 04 19:30:02 2019 -0700"
      },
      "message": "Merge \"liblog: run liblog#enoent only as root\"\nam: 8412deda51\n\nChange-Id: I5b179babe5324bcd63a5303f65a72e9e4bb6e9c2\n"
    },
    {
      "commit": "8412deda5189c9f24f5fbe350a8bc75aab74c64e",
      "tree": "5e2a5339b9d2504c97b16d5b9128b4d21485f150",
      "parents": [
        "9ad079ba58cd8803afcd2fa9fc43fd752b3e83b2",
        "0bf41672e9b3e00ce18fed48d1d470868eff3302"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 05 02:04:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 05 02:04:33 2019 +0000"
      },
      "message": "Merge \"liblog: run liblog#enoent only as root\""
    },
    {
      "commit": "c0660668e795cd8ed8714acdad759596ae20047c",
      "tree": "7032c27157a83b97e758a6bba7990f5226376f83",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Sep 04 17:48:32 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Sep 05 01:26:19 2019 +0000"
      },
      "message": "libcutils: Implement ashmem_valid on host.\n\nWas missing.\n\nBug: 124524556\nTest: build host code with dependency on this\nChange-Id: I0074923e9ec53e42f9479fff47df0a24c8750164\n"
    },
    {
      "commit": "2378575dac467fbda73e2e50dc9fc3140864eeed",
      "tree": "bcb64e74562bdd8dcb1a6a9e764ebee2f93c09e7",
      "parents": [
        "362853af1a218d2d315181c9b790b5cec8ccd1df",
        "9ad079ba58cd8803afcd2fa9fc43fd752b3e83b2"
      ],
      "author": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Wed Sep 04 18:20:24 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 04 18:20:24 2019 -0700"
      },
      "message": "Merge \"Improve codegen slightly when doing FD validity checks\"\nam: 9ad079ba58\n\nChange-Id: I4262f086b9041bb28536cf2c7598817fac63b8cc\n"
    },
    {
      "commit": "9ad079ba58cd8803afcd2fa9fc43fd752b3e83b2",
      "tree": "37983c6b39e4aa14483a51518e9daadc2de6d39f",
      "parents": [
        "dccd6b33894c42a2b05afe04f16465f093920eac",
        "7c706baedbbb0d739c9a231be36b0430faa2fbe6"
      ],
      "author": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Thu Sep 05 00:56:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 05 00:56:38 2019 +0000"
      },
      "message": "Merge \"Improve codegen slightly when doing FD validity checks\""
    },
    {
      "commit": "1136f1592a50c90b3b59fbc3293e4c1e155972e0",
      "tree": "1a2e18452d2a0167ca52d7f86ddf7bc728fe59bd",
      "parents": [
        "7896e7adccbd272533ee2250f4a9c65cd4ca66d0"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Fri Aug 23 14:05:29 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Sep 05 01:41:08 2019 +0100"
      },
      "message": "Init: Run boringssl self test via separate binaries.\n\nInstead of init.cpp knowning about the boringssl self\ntest, use init.rc to exec dedicated self test executables.\n\nAdvantages:\n - The self test is run not only both the copy of libcrypto\n   in /system but also /apex/com.android.conscrypt.\n - The self test is run not only for the primary (e.g. 64bit)\n   ABI but also for a secondarry (e.g. 32bit) ABI.\n - The dependency on libcrypto is kept to the self test binary.\n - The self test binary abstracts the exact native API for\n   running the self test (this will change soon because the\n   self test will be run when the library is loaded).\n\nBug: 137267623\nTest: Check that logcat shows both binaries being started as root,\n      and finishing with exit code 0.\n\nChange-Id: I1e716749ee2133993f0f7b2836483391fd1a62f0\n"
    },
    {
      "commit": "7896e7adccbd272533ee2250f4a9c65cd4ca66d0",
      "tree": "83a7b6e1c74b5e49d4a34a5ee7661b07dc80eff6",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 04 15:26:52 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 04 16:23:15 2019 -0700"
      },
      "message": "init: add exec_reboot_on_failure builtin\n\nAdd exec_reboot_on_failure builtin and refactor the VDC commands that\nhad similar functionality.  These will now also reboot in the case\nthat the program cannot be found or run for any reason.\n\nTest: boots normally, reboots if command is not found or if command\n      returns status \u00271\u0027\n\nChange-Id: I1c99498c2b741512a50188e1a325c25e9ec8fba0\n"
    },
    {
      "commit": "362853af1a218d2d315181c9b790b5cec8ccd1df",
      "tree": "6a135a2ffa99d27448a8a5c787df0858782f20d0",
      "parents": [
        "fb0386f76c3d7e61ab7191036fcdb8771b65666a",
        "dccd6b33894c42a2b05afe04f16465f093920eac"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Sep 04 15:11:48 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 04 15:11:48 2019 -0700"
      },
      "message": "Merge \"libsnapshot: Refactor CreateLogicalAndSnapshotPartitions\"\nam: dccd6b3389\n\nChange-Id: I6222327558d2fc9f0bad1056ef4d53e4e8a5fa48\n"
    },
    {
      "commit": "fb0386f76c3d7e61ab7191036fcdb8771b65666a",
      "tree": "4335ade2aa499c1247de12219d5a175e6b7f856d",
      "parents": [
        "ab92aeb61b97dfdd19d2a58db1d1c45861b6300e",
        "d6c426c0f5ca13fb38c18ee309d803830291a5af"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Sep 04 15:10:54 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 04 15:10:54 2019 -0700"
      },
      "message": "Merge \"liblp: Indicate usable regions in ResizePartition\"\nam: d6c426c0f5\n\nChange-Id: Ia555bc10e05cd60fec50f7974581ff9a1269c67d\n"
    },
    {
      "commit": "dccd6b33894c42a2b05afe04f16465f093920eac",
      "tree": "05c27a4ec4bd82adb59a163905731158188c0857",
      "parents": [
        "d6c426c0f5ca13fb38c18ee309d803830291a5af",
        "31fda7e476fa75e9934771c9073e3dd733f62856"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Sep 04 21:55:39 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 04 21:55:39 2019 +0000"
      },
      "message": "Merge \"libsnapshot: Refactor CreateLogicalAndSnapshotPartitions\""
    },
    {
      "commit": "d6c426c0f5ca13fb38c18ee309d803830291a5af",
      "tree": "06198e9334b1d4f32b48642703479a079d87d7fc",
      "parents": [
        "2dc25441e2d8ce5d3e07d80d4c7f3e05994842f0",
        "d65020d05e07334f814d583f6195488b3337f27a"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Sep 04 21:53:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 04 21:53:57 2019 +0000"
      },
      "message": "Merge \"liblp: Indicate usable regions in ResizePartition\""
    },
    {
      "commit": "ab92aeb61b97dfdd19d2a58db1d1c45861b6300e",
      "tree": "800a2c86473d1b0cfd1918f3ad4bebde538f791f",
      "parents": [
        "f0edee5933f936fa4b87c5b8a25bc403cbda2508",
        "2dc25441e2d8ce5d3e07d80d4c7f3e05994842f0"
      ],
      "author": {
        "name": "Alessio Balsini",
        "email": "balsini@google.com",
        "time": "Wed Sep 04 14:35:35 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 04 14:35:35 2019 -0700"
      },
      "message": "Merge \"CreateSnapshot: reduce zero-filling for CoW images\"\nam: 2dc25441e2\n\nChange-Id: Ia97c9c1888bcb751de5b2fccde30e036c2618591\n"
    },
    {
      "commit": "f0edee5933f936fa4b87c5b8a25bc403cbda2508",
      "tree": "1f3db020962b8760f6d1b48c0006ba1e311f8fc6",
      "parents": [
        "44d025d928b9aaec6b6b05ba33591dbf85e2d02d",
        "c3163e7664ccb8b80c6b1078b960f2edbe23646c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 04 14:21:22 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 04 14:21:22 2019 -0700"
      },
      "message": "Merge \"Add test mapping to run the libunwind tests.\"\nam: c3163e7664\n\nChange-Id: Ib82965bef7d9e9a983cbc7d282fa59abab083ece\n"
    },
    {
      "commit": "2dc25441e2d8ce5d3e07d80d4c7f3e05994842f0",
      "tree": "dece4f9aedfbec57090c4bdc26b28e3b09affe93",
      "parents": [
        "c3163e7664ccb8b80c6b1078b960f2edbe23646c",
        "396a4f279eea91fc935823625e61670b81e823e7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 04 21:19:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 04 21:19:44 2019 +0000"
      },
      "message": "Merge \"CreateSnapshot: reduce zero-filling for CoW images\""
    },
    {
      "commit": "7c706baedbbb0d739c9a231be36b0430faa2fbe6",
      "tree": "2d8e09261acc23fbc4b43d7275da4973d62a5146",
      "parents": [
        "c3163e7664ccb8b80c6b1078b960f2edbe23646c"
      ],
      "author": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Wed Sep 04 13:46:50 2019 -0700"
      },
      "committer": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Wed Sep 04 13:46:50 2019 -0700"
      },
      "message": "Improve codegen slightly when doing FD validity checks\n\nSee https://gcc.godbolt.org/z/hGUZIk\n\nTest: inspection\nBug: 140506797\nChange-Id: I6fe87b16e18c93b7fc3ca28edbbc68c245e7e5e5\n"
    },
    {
      "commit": "0bf41672e9b3e00ce18fed48d1d470868eff3302",
      "tree": "15804b830e9ae257a1d7596945bcde988e8c9dab",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 04 13:39:06 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Sep 04 13:39:06 2019 -0700"
      },
      "message": "liblog: run liblog#enoent only as root\n\nPreviously this test would rely on ro.debuggable being true, but there\nare now some circumstances where ro.debuggable is true, yet `su` does\nnot exist.  Therefore we only run this test when it is root.\n\nAlso simplify some of the test macros.\n\nBug: 140446213\nTest: passes as root, skips as non-root\nChange-Id: I0651963d5c7d4f5308989ab6b04aab1042094e5a\n"
    },
    {
      "commit": "c3163e7664ccb8b80c6b1078b960f2edbe23646c",
      "tree": "75eb1c579ebab43e154b194da253a1017097a9d5",
      "parents": [
        "48eb2ee17644dc7b497c0422c18745b1e063ff3f",
        "7aba5142e90f1f1ea64707c6c9b14ccd58c8ee79"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 04 20:28:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 04 20:28:37 2019 +0000"
      },
      "message": "Merge \"Add test mapping to run the libunwind tests.\""
    },
    {
      "commit": "44d025d928b9aaec6b6b05ba33591dbf85e2d02d",
      "tree": "1d3f0424954445c267a2fc56a82a31f92450f4bc",
      "parents": [
        "ab13ed350ecdfcf8dcc589368029ff3866b14bf9",
        "48eb2ee17644dc7b497c0422c18745b1e063ff3f"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Sep 04 13:08:13 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 04 13:08:13 2019 -0700"
      },
      "message": "Merge \"libsnapshot: Don\u0027t accidentally delete snapshot when collapsing\"\nam: 48eb2ee176\n\nChange-Id: Ibe795625cd858e7cf72dc0a7ac4d08bf2f081d7b\n"
    },
    {
      "commit": "ab13ed350ecdfcf8dcc589368029ff3866b14bf9",
      "tree": "6f3f2e1c293fc937341e4f01faea6efff4c3ab73",
      "parents": [
        "6777935a94d3ece179b8882a8681d630072d6e8e",
        "09a0c985063789d6dddc4043d6b3ca8c281b23b3"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Sep 04 13:05:48 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 04 13:05:48 2019 -0700"
      },
      "message": "Merge \"libsnapshot: Allow multiple calls to FinishedSnapshotWrites\"\nam: 09a0c98506\n\nChange-Id: If259e2d4a9663575198aa1b14e13a4c9a50cf1e7\n"
    },
    {
      "commit": "48eb2ee17644dc7b497c0422c18745b1e063ff3f",
      "tree": "f1a86ce10d258f67e6fbd55f76130dff3c393f0d",
      "parents": [
        "09a0c985063789d6dddc4043d6b3ca8c281b23b3",
        "27139799ff5321a12ba2172552cc01d782049890"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Sep 04 18:53:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 04 18:53:23 2019 +0000"
      },
      "message": "Merge \"libsnapshot: Don\u0027t accidentally delete snapshot when collapsing\""
    },
    {
      "commit": "09a0c985063789d6dddc4043d6b3ca8c281b23b3",
      "tree": "918324473ec55eaf00ac2e0c4afb677bade5a807",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed",
        "a93ac6b9c80f3d198df93df6493173a57f46a91a"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Sep 04 18:52:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 04 18:52:30 2019 +0000"
      },
      "message": "Merge \"libsnapshot: Allow multiple calls to FinishedSnapshotWrites\""
    },
    {
      "commit": "79f875f240eec909275fe667d89a5a3a9a82b4fe",
      "tree": "8251c92081cf91af3f1ecee0eadde995c23bee0a",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed Sep 04 22:20:01 2019 +0800"
      },
      "committer": {
        "name": "Bowgo Tsai",
        "email": "bowgotsai@google.com",
        "time": "Wed Sep 04 22:28:47 2019 +0800"
      },
      "message": "Moving skip_mount.cfg to system_ext partition\n\nWe\u0027re now adding a core CSI system.img that is common across different\ntargets. So GSI-specific files should be moved to system_ext partition.\n\nNote that GSI is a system.img that includes the contents of product and\nsystem_ext partitions, under /system/product and /system/system_ext,\nrespectively. That\u0027s why it\u0027s under /system/system_ext instead of\n/system or /system_ext.\n\nBug: 137711197\nTest: boot GSI on crosshatch\nChange-Id: I1ee54c1a434f2d7cf34b4ea2cbda9c732ec932a1\n"
    },
    {
      "commit": "a93ac6b9c80f3d198df93df6493173a57f46a91a",
      "tree": "918324473ec55eaf00ac2e0c4afb677bade5a807",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 20:54:52 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 21:07:30 2019 -0700"
      },
      "message": "libsnapshot: Allow multiple calls to FinishedSnapshotWrites\n\nIf update_engine crashes at certain point, it may\ncall FinishedSnapshotWrites multiple times. Allow\nthis to happen.\n\nTest: apply OTA\nChange-Id: Ib36cfe38328fd5d6ca408c97024c81569a4bd440\n"
    },
    {
      "commit": "d65020d05e07334f814d583f6195488b3337f27a",
      "tree": "2d42951485a25b645ce2694a0f3844b6968bb751",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 15:35:33 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 20:08:28 2019 -0700"
      },
      "message": "liblp: Indicate usable regions in ResizePartition\n\n- Open up GetFreeRegions() API.\n- Add a new argument, free_region_hint, to ResizePartitions(). It\n  indicates the regions that extents can be allocated to.\n- Expose Interval::Intersect functions. libsnapshot needs the algorithm\n  to intersect extents to find out the free regions for COW partitions.\n\nTest: liblp_test\n\nChange-Id: I0c079c0e919aa7b0627eb76a071a7cc2a281d692\n"
    },
    {
      "commit": "31fda7e476fa75e9934771c9073e3dd733f62856",
      "tree": "656c327523c68d1548612764c97127965f281d48",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Aug 16 15:00:27 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 19:45:22 2019 -0700"
      },
      "message": "libsnapshot: Refactor CreateLogicalAndSnapshotPartitions\n\nCreate SnapshotManager::MapPartitionWithSnapshot that deals\nwith one partition so that the code can be re-used later.\n\nTest: libsnapshot_test\n\nChange-Id: Iba36e6c05f8541397323361f7ceb62a6472d2e1c\n"
    },
    {
      "commit": "c732c034823f304efe688a86e5df518b4520b695",
      "tree": "8e445ac2ca08112679811f802c5cea0461243063",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Sep 03 18:04:50 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Sep 03 18:11:43 2019 -0700"
      },
      "message": "compare android::Vector and std::vector\n\nHave been wondering for a while.\n\nTest: libutils_benchmark\n--------------------------------------------------------------------\nBenchmark                          Time             CPU   Iterations\n--------------------------------------------------------------------\nBM_fill_android_vector          24.6 ns         24.5 ns     28207074\nBM_fill_std_vector              5.24 ns         5.21 ns    130675479\nBM_prepend_android_vector       5783 ns         5770 ns       100000\nBM_prepend_std_vector           5731 ns         5717 ns       100000\n\nChange-Id: Ie296ce2c4395121b6a456d57421f820909418afe\n"
    },
    {
      "commit": "27139799ff5321a12ba2172552cc01d782049890",
      "tree": "4cc0a9b25a04a8f641e87100c0ea473fb6df54b9",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 15:51:28 2019 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 16:07:31 2019 -0700"
      },
      "message": "libsnapshot: Don\u0027t accidentally delete snapshot when collapsing\n\nTest: libsnapshot_test\nChange-Id: Ie84546f90f7f186bda88f19f7d29ad437ce97aa8\n"
    },
    {
      "commit": "7aba5142e90f1f1ea64707c6c9b14ccd58c8ee79",
      "tree": "fe6c786bceea54134e7a570850cf74e74cdadf2e",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 10:18:42 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 13:32:51 2019 -0700"
      },
      "message": "Add test mapping to run the libunwind tests.\n\nCreated a special target, libunwindstack_unit_test, that doesn\u0027t\ninclude the test that dlopen\u0027s a shared library. It appears atest\ndoesn\u0027t understand how to handle the require keyword.\n\nAlso, move the shared library into the libunwindstack_test directory\nitself.\n\nTest: Ran atest libunwindstack_unit_test.\nChange-Id: I967919b1d74a08669b61d0363d80861685725609\n"
    },
    {
      "commit": "6777935a94d3ece179b8882a8681d630072d6e8e",
      "tree": "3c414c55809fe5dc64558c957983331c574645c5",
      "parents": [
        "0a0ea7972439443c40f2b2a9c21d9d51b7c28ab2",
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 09:57:39 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 03 09:57:39 2019 -0700"
      },
      "message": "Merge \"libsnapshot: Record COW size(s) in snapshot status file\"\nam: a9ffef27e1\n\nChange-Id: Iea27711e0c366a9136b3a1fa4940df5d4eff4e7b\n"
    },
    {
      "commit": "0a0ea7972439443c40f2b2a9c21d9d51b7c28ab2",
      "tree": "43820e44a1aafb5aefe2cbc56c5e6ff7ab1d520e",
      "parents": [
        "3f5cc2dd84be36924513cc143b6c9d135cce0453",
        "0ac9b9a894d5e7e954489a330fb641d83b5a5f0c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 09:57:09 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 03 09:57:09 2019 -0700"
      },
      "message": "Merge \"Add test of undefined return address.\"\nam: 0ac9b9a894\n\nChange-Id: I60812c461523eccb8b272fcfd8173542f537d3c2\n"
    },
    {
      "commit": "3f5cc2dd84be36924513cc143b6c9d135cce0453",
      "tree": "fb917027ab17fe732cd59f8e291540e48dbdbcd5",
      "parents": [
        "9c72fb6f082195aa89a3795e975be94a7415ecb6",
        "0589aa4265415d5264cea7f6d030254d4d4f54d0"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Sep 03 09:56:38 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 03 09:56:38 2019 -0700"
      },
      "message": "Merge \"init: Always reap processes before handling properties\"\nam: 0589aa4265\n\nChange-Id: I825598315caa2a6fe592f293815adf8242f0a644\n"
    },
    {
      "commit": "a9ffef27e137458f8b12b10df2eeca58b99074ed",
      "tree": "af17b584ad702c55a742c9ee21a55e3e55758bbb",
      "parents": [
        "0ac9b9a894d5e7e954489a330fb641d83b5a5f0c",
        "65db930d5ab1bf544bdc60bdac1122b0ce2d9e72"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Sep 03 16:43:49 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 03 16:43:49 2019 +0000"
      },
      "message": "Merge \"libsnapshot: Record COW size(s) in snapshot status file\""
    },
    {
      "commit": "0ac9b9a894d5e7e954489a330fb641d83b5a5f0c",
      "tree": "1670895f68a7a697969842a7ffea3d069c6f0261",
      "parents": [
        "0589aa4265415d5264cea7f6d030254d4d4f54d0",
        "7138232f576a4f8941120239e5912501fb568ec7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 16:41:02 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 03 16:41:02 2019 +0000"
      },
      "message": "Merge \"Add test of undefined return address.\""
    },
    {
      "commit": "0589aa4265415d5264cea7f6d030254d4d4f54d0",
      "tree": "217e35a0367eb776e80af9b7d9ffac286312e544",
      "parents": [
        "0c100685dcbb24790615b228330f1b44642e6bf0",
        "905a5df83d1cdfd133ad53b3b6af999ddb485f94"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Sep 03 16:35:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 03 16:35:27 2019 +0000"
      },
      "message": "Merge \"init: Always reap processes before handling properties\""
    },
    {
      "commit": "c72fd9a9cac7824d87046a6fd25cc281dbe7352e",
      "tree": "da9484e0f7710fe9465cee7d667f00b3bd09fceb",
      "parents": [
        "0c100685dcbb24790615b228330f1b44642e6bf0"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Aug 16 19:08:00 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 02 12:32:42 2019 +0000"
      },
      "message": "Limit the compat symlinks to ART binaries.\n\nFor now, keep symlinks only to the binaries demonstrably in use by apps\n(dex2oat and dalvikvm).\n\nTest: adb shell ls -l /system/bin\nBug: 124106384\nChange-Id: Id662beb4c13785ac9d44bf41f9f33907219b69be\n"
    },
    {
      "commit": "396a4f279eea91fc935823625e61670b81e823e7",
      "tree": "af02a7271bdc054e7107e49d48dd86e65294896e",
      "parents": [
        "0c100685dcbb24790615b228330f1b44642e6bf0"
      ],
      "author": {
        "name": "Alessio Balsini",
        "email": "balsini@google.com",
        "time": "Tue Aug 27 18:03:17 2019 +0100"
      },
      "committer": {
        "name": "Alessio Balsini",
        "email": "balsini@google.com",
        "time": "Mon Sep 02 11:24:33 2019 +0000"
      },
      "message": "CreateSnapshot: reduce zero-filling for CoW images\n\nInstead of zero-filling the whole image, only clean the dm-snapshot\nmetadata header of the CoW file.\n\nZero-filling a large image may take a long time, and this is a safe, but\nnot necessary operation if the operation is intended to prepare an\ninitial CoW file that will be used with a dm-snapshot device.\nAccording to the Linux kernel code, only the first 32 bits of the CoW\nfile is used to detect if the dm-snapshot device under creation will be\nat an initial state or the continuation of a previous dm-snapshot.\nCREATE_IMAGE_RESET_SNAP is a flag that reduces the zeroing of the image\nfile to the first file chunk.\n\nChange-Id: Ibc9fb3b6d19666a92125c988687ff8dacfad47be\nDepends-On: I242e57a9a622fbb738bf82f8a260af1b13810069\nBug: 139378014\nTest: manual, snapshot_test\nSigned-off-by: Alessio Balsini \u003cbalsini@google.com\u003e\n"
    },
    {
      "commit": "9c72fb6f082195aa89a3795e975be94a7415ecb6",
      "tree": "de49df96ef084d765893c9bacf7baccf3cd62dbb",
      "parents": [
        "4c063099a2e63599cda8be71ffbc0db4ac1cbe30",
        "0c100685dcbb24790615b228330f1b44642e6bf0"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 02 03:46:05 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 02 03:46:05 2019 -0700"
      },
      "message": "Merge changes from topic \"art-without-bionic\"\nam: 0c100685dc\n\nChange-Id: I814ac6be70ff8ec197b71d2b68578fba75ac3b4a\n"
    },
    {
      "commit": "4c063099a2e63599cda8be71ffbc0db4ac1cbe30",
      "tree": "a3fd6da71aa7f58d612e34dd66c11e9fbc1f8a29",
      "parents": [
        "bb55e0776f4f25feac065a07e30cc962c33fa433",
        "cacf04351fcb6cbb73740ca078dcf93635a7f098"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 02 03:45:53 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 02 03:45:53 2019 -0700"
      },
      "message": "Update logic for detecting pre-apexd services to check that the ART APEX is mounted.\nam: cacf04351f\n\nChange-Id: Ibe7463cf6445bf3fc37a1ae68cb38d4f1e3f1b60\n"
    },
    {
      "commit": "bb55e0776f4f25feac065a07e30cc962c33fa433",
      "tree": "1a22174cdf37957635cf30eebd9c2ba7ef242492",
      "parents": [
        "7f114540d8897558e233223103cac00d3c0b5103",
        "df96e1f25cad196385dc2ff6bcf1c8ec4619ab7c"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 02 03:45:36 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 02 03:45:36 2019 -0700"
      },
      "message": "Update paths and names for the new ART APEX.\nam: df96e1f25c\n\nChange-Id: I971a44846276c7e8432bf27fa9465c86f33a1cd2\n"
    },
    {
      "commit": "0c100685dcbb24790615b228330f1b44642e6bf0",
      "tree": "838032723680954b58faea7345d9e876043d0f18",
      "parents": [
        "dec467f271124f2e3286a0f5c945c2140881a95c",
        "391332d2766f16226a3dc9dacdbd301deb8cf94e"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 02 10:28:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 02 10:28:30 2019 +0000"
      },
      "message": "Merge changes from topic \"art-without-bionic\"\n\n* changes:\n  Include com.android.runtime in the \"runtime\" linker namespace.\n  Update logic for detecting pre-apexd services to check that the ART APEX is mounted.\n  Update paths and names for the new ART APEX.\n"
    },
    {
      "commit": "7f114540d8897558e233223103cac00d3c0b5103",
      "tree": "055b7aa4fa27d077bf77fbd1f50839a47d528ae7",
      "parents": [
        "b669307517558644770432941181c7830efe7ecb",
        "dec467f271124f2e3286a0f5c945c2140881a95c"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Sat Aug 31 08:07:40 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Aug 31 08:07:40 2019 -0700"
      },
      "message": "Merge \"Fix typo\"\nam: dec467f271\n\nChange-Id: Iccd201c8ae3f4ff9fce50d03035acfd789ea302a\n"
    },
    {
      "commit": "dec467f271124f2e3286a0f5c945c2140881a95c",
      "tree": "30b6889353d1e069dbf518fafa50ecf7c1533d37",
      "parents": [
        "c9cddde0181d2eb2aef775e955bad02333dbf77d",
        "b2c2d6907fba8528a650959a74362bfb6e662c5a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Aug 31 13:39:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 31 13:39:37 2019 +0000"
      },
      "message": "Merge \"Fix typo\""
    },
    {
      "commit": "7138232f576a4f8941120239e5912501fb568ec7",
      "tree": "fb09c5bf499d69d5da4ce12c411b867ab3bd562e",
      "parents": [
        "cc746b51933624ea658a0656a51e0c9bf38b0f11"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 30 14:02:19 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 30 23:29:34 2019 -0700"
      },
      "message": "Add test of undefined return address.\n\nAdd a specific test that __libc_init is the last frame in a stack\nwhen run on device. In addition, it verifies that the return address\nregister is marked as undefined given the unwind.\n\nBug: 140008396\n\nTest: New unit test passes on arm/arm64 (taimen device).\nTest: New unit test passes on x86 (cuttlefish).\nTest: New unit test passes on x86_64 (modified bionic/tests/run-on-host.sh)\nChange-Id: Iefc151a7dbf52ab083c2bb78bad3d38b4e9e1254\n"
    },
    {
      "commit": "b669307517558644770432941181c7830efe7ecb",
      "tree": "c9378619134d63a4f18801fce1aa006fc0282658",
      "parents": [
        "584af3282cc9abf6a1188f236c14086b36e1e83a",
        "c9cddde0181d2eb2aef775e955bad02333dbf77d"
      ],
      "author": {
        "name": "Kevin Han",
        "email": "kevhan@google.com",
        "time": "Fri Aug 30 21:14:43 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 30 21:14:43 2019 -0700"
      },
      "message": "Merge \"Revert \"Reland \"libutils: Introduce StaticString16\"\"\"\"\nam: c9cddde018\n\nChange-Id: Idd00ff6dc4adc775fdaa59e2c3942b15db92ad98\n"
    },
    {
      "commit": "c9cddde0181d2eb2aef775e955bad02333dbf77d",
      "tree": "59fa127f76ea3f705e92611f3ee3bbfc7306293e",
      "parents": [
        "d3fa47bb052b2848b6d468cc0f26072e5bc5aaf0",
        "1270e4fbf17402fb01dbfa7928a654d41d8553ee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Aug 31 04:00:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 31 04:00:15 2019 +0000"
      },
      "message": "Merge \"Revert \"Reland \"libutils: Introduce StaticString16\"\"\"\""
    },
    {
      "commit": "1270e4fbf17402fb01dbfa7928a654d41d8553ee",
      "tree": "59fa127f76ea3f705e92611f3ee3bbfc7306293e",
      "parents": [
        "c55ac92bd6b6f14778758893730415f5328da530"
      ],
      "author": {
        "name": "Kevin Han",
        "email": "kevhan@google.com",
        "time": "Fri Aug 30 23:43:45 2019 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Aug 30 23:50:38 2019 +0000"
      },
      "message": "Revert \"Reland \"libutils: Introduce StaticString16\"\"\"\n\nThis reverts commit c55ac92bd6b6f14778758893730415f5328da530.\n\nReason for revert: Breaks down-stream branches. See b/140315617\n\nChange-Id: I4937fdf4bdcc7a44d5f10700ecf2d5e96aef7d27\nMerged-In: I8da93f2c9b95183e32d4a2ea895f90c449abbe4d\n"
    },
    {
      "commit": "905a5df83d1cdfd133ad53b3b6af999ddb485f94",
      "tree": "58fe73c80a7dce4a9fb7110a1e11f8abfeb22717",
      "parents": [
        "2b73b60c66d7c43515ed3c0db89735b9485f8ce6"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Aug 30 14:12:56 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Aug 30 14:20:05 2019 -0700"
      },
      "message": "init: Always reap processes before handling properties\n\nThere is a race that manifests like this:\n\n1) A service dies (not processed by init yet).\n2) service_manager processes death notification.\n3) service_manager gets checkService and calls init to start service.\n4) init gets the ctl.start / ctl.interface_start for the service\n   but the service already appears started, so it does nothing.\n5) init gets sigchld, but doesn\u0027t do anything else to restart the\n   service\n\nWe can avoid all of this if we already reap pending processes before\nhandling properties in the main loop of init.  Since reaping the\nservices calls waitid(), there\u0027s no race even if the signalfd for\nsigchld hasn\u0027t triggered yet.  It also won\u0027t cost us much efficiency,\nsince it\u0027s only a single system call.\n\nTest: CF boots, init unit tests pass\nChange-Id: Ie24ef406055b283797b41b1821c8ebcccead4db4\n"
    },
    {
      "commit": "584af3282cc9abf6a1188f236c14086b36e1e83a",
      "tree": "56097a6fd3fdd925b2f4f50131dc9f12161bfa90",
      "parents": [
        "5d0acc7516b789cca2b94d73819c2770e3f4474b",
        "d3fa47bb052b2848b6d468cc0f26072e5bc5aaf0"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Fri Aug 30 14:07:14 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 30 14:07:14 2019 -0700"
      },
      "message": "Merge \"Reland \"libutils: Introduce StaticString16\"\"\"\nam: d3fa47bb05\n\nChange-Id: I963f2a59c7a7ad149be54b8bb7322ad1abf3e935\n"
    }
  ],
  "next": "d3fa47bb052b2848b6d468cc0f26072e5bc5aaf0"
}
