)]}'
{
  "log": [
    {
      "commit": "286839e40d302563befa0f43b071d8a19d744004",
      "tree": "b4bd68341b6f844af11c582ed1be4cd7d0d28d5d",
      "parents": [
        "dfabcb1ca015fe76f395e19997048bf8eca6eafb"
      ],
      "author": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Tue Feb 14 17:52:23 2017 -0800"
      },
      "committer": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Tue Feb 14 18:33:42 2017 -0800"
      },
      "message": "Add functionality to overwrite the /etc/preloaded-classes file.\n\n* Requires root, disable-verity, reboot, root before use.\n\nTest: manual through UI and sequencing\nChange-Id: I68965334776e130b8220a5814b2525109cf96800\n"
    },
    {
      "commit": "2b62809c70555b76726bee812b5b962addb31606",
      "tree": "cafde2e17fb8fc3c56bebda21d7ae07261bc5b3b",
      "parents": [
        "0b4df21aacf5ae24ae75ca547f5d35d139baf53e"
      ],
      "author": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Fri Dec 16 12:42:01 2016 -0800"
      },
      "committer": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Fri Dec 16 16:24:29 2016 -0800"
      },
      "message": "Clean up local hprofs\n\n* After use\n* Upon failure\n\nTest: manual tool use\nChange-Id: I2669e190c3792522c121158ea2aec84fe577c9e3\n"
    },
    {
      "commit": "d19ea14f30869c6d7116f19ce405ec13eaa2f635",
      "tree": "6bab4d0823adfed5094bcaaa31d1af9c70a0ad5a",
      "parents": [
        "faf3aa697fc569180cc029c09affe08ade9c5e82"
      ],
      "author": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Wed Dec 07 11:49:34 2016 -0800"
      },
      "committer": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Fri Dec 09 16:16:54 2016 -0800"
      },
      "message": "Copy preload2.jar to build artifacts\n\nTest: local build\nBug: 33492076\nChange-Id: I76de648cd1947e49278a678a4c6f1dce8092bbd4\n"
    },
    {
      "commit": "c37b0a40e77c0f3e2487b630d72a9a9cad694c12",
      "tree": "4019f00b3826aed6d4895744d7ad0a68dafd9df2",
      "parents": [
        "437474990d53ea96f038205c1dc49ae3a8cc9fc1"
      ],
      "author": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Mon Nov 28 18:08:00 2016 -0800"
      },
      "committer": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Wed Nov 30 11:26:33 2016 -0800"
      },
      "message": "Add command line action sequencing.\n\nSupported actions:\n* .. scan \u003cprocess\u003e ..\n* .. scan-all ..\n* .. import \u003cinfile\u003e ..\n* .. export \u003cinfile\u003e ..\n* .. comp \u003cthresh\u003e \u003coutfile\u003e ..\nTest: manual\nBug: 31961946\n\nChange-Id: I08753f31294ac5f30f6bcddeabef12d138e7e8e6\n"
    },
    {
      "commit": "437474990d53ea96f038205c1dc49ae3a8cc9fc1",
      "tree": "871be853c154ed08b366531057bd5933e57a32c7",
      "parents": [
        "6063357ae69f29c415591b173cf411f241f129c6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 15:07:39 2016 -0800"
      },
      "committer": {
        "name": "Michael Rosenfeld",
        "email": "mrosenfeld@google.com",
        "time": "Tue Nov 29 15:22:02 2016 -0800"
      },
      "message": "Preload2: Add sequence UI\n\nAdd a fake UI that can run a sequence of actions (and replies).\n\nBug: 31961946\nTest: manual\nChange-Id: Iee0fac5ddf75a97eff7b401c9c932634489349de\n"
    },
    {
      "commit": "7dda7e1e81a638a63d1266f4cabb912a4a2cc1ec",
      "tree": "97a766446e89ccdc87bb8ab8061ed369f64718ee",
      "parents": [
        "9309f1cbf308281be87b80cfbee7b61ba3725e78",
        "21cf84f8b3561d61e39d77cc00c520951f1ddd0f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Nov 29 10:12:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 10:12:52 2016 +0000"
      },
      "message": "Merge \"Use junit-host instead of junit\""
    },
    {
      "commit": "3bf65c916ce65c06b0920ec4b8f68d3ef6c5e721",
      "tree": "c338cc3e99b383e1271e9609ccc6684bb294eb64",
      "parents": [
        "1c809a3d3240978ab393b48ec5501090ec5a0e57"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 15:06:35 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 15:06:35 2016 -0800"
      },
      "message": "Preload2: Add isSingleThreaded\n\nExpose whether a UI is single-threaded to avoid spawning threads\nin actions.\n\nBug: 31961946\nTest: manual\nChange-Id: I37c8daa6a00784e833bad53b8e83ab4417955df7\n"
    },
    {
      "commit": "1c809a3d3240978ab393b48ec5501090ec5a0e57",
      "tree": "b13e751a2cf77d3c95a7a86c00efaa1538617d4e",
      "parents": [
        "5cb8998363a16e667faee4eaa7e5040bce7e702b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 15:04:25 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 15:04:25 2016 -0800"
      },
      "message": "Preload2: Fix action inheritance\n\nUse AbstractThreadedAction as a base.\n\nBug: 31961946\nTest: manual\nChange-Id: I5a05b65d753be775c8b8382bb1a81e869c388f8d\n"
    },
    {
      "commit": "5cb8998363a16e667faee4eaa7e5040bce7e702b",
      "tree": "ea629bbb341dbfcefa2ba92e6445b54969957eb6",
      "parents": [
        "d7e597a2e7843b7269d4972abae820424c9d460e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 13:15:10 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 13:15:10 2016 -0800"
      },
      "message": "Preload2: Abstract out UI\n\nCreate IUI interface and move UI to SwingUI.\n\nBug: 31961946\nTest: manual\nChange-Id: If56347fdde8b441c0c01337a3f5eac002ea5b4f3\n"
    },
    {
      "commit": "21cf84f8b3561d61e39d77cc00c520951f1ddd0f",
      "tree": "707c83c6695acf708cccb7ecc2f4d1a55cf9cfcf",
      "parents": [
        "d7e597a2e7843b7269d4972abae820424c9d460e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Nov 28 16:44:44 2016 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Nov 28 16:44:44 2016 +0000"
      },
      "message": "Use junit-host instead of junit\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: I5d3efbfbe3245a631113674bff1b0aabdc9fe8be\n"
    },
    {
      "commit": "da69216ac681189c6b92f5252df442958ee9d927",
      "tree": "e94072ae6931885b50231b084007584ba8ee019e",
      "parents": [
        "584b5cee49f1da297c7e2a4a5568110fa4ad4e3e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 14 19:08:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 14 19:08:22 2016 -0800"
      },
      "message": "Preload2: Fix dependencies\n\nAlso depend on and package tools-common.\n\nTest: m\nTest: preload-tool\nChange-Id: I19a8844f87417f2292e50ffaaebb5fa24a2eca24\n"
    },
    {
      "commit": "98ff0b72f0ac630be2b7fd8ab77f5ee50a1ce26f",
      "tree": "3730b312d23319d81a2c1d1f81b6277e67d2edd6",
      "parents": [
        "f3edaf6a4397859d3558a2df07e4bd5011ebddd3"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 23 00:42:44 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Mar 23 13:42:52 2016 -0700"
      },
      "message": "Remove custom copy rules, stop using ACP\n\nReplace some custom rules with BUILD_PREBUILT.\n\nMove tools from ALL_PREBUILTS to BUILD_PREBUILT. All of them are already\nin PRODUCT_PACKAGES in build/target/product/base.mk.\n\nRemove uses of ACP and replace with core build system macros or \u0027cp\u0027\n\nChange-Id: I529e7c6c50fc64ad36b75bb47142f6bde909d141\n"
    },
    {
      "commit": "f2a9933fa7082daf97d8290c0f9d001ba63b62aa",
      "tree": "f630ae78bac7eb0ce9f0e572e37c45321b326936",
      "parents": [
        "b97cfe8076c903ab32f4e4cf1c2646817cbd5dc5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 19 09:24:43 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 19 09:24:43 2016 -0800"
      },
      "message": "Preload2: Fix object to sync on\n\nWhen moving to sync on the right objects, these waits() have been\nforgotten.\n\nChange-Id: I61b0d3c5cc41b7f46fbdd3099ec44221e653001a\n"
    },
    {
      "commit": "554d7ee0f5d177b6c0bce805f5a5917b6b211978",
      "tree": "079ed524d19d81bb2634157cc0d02ecba60a852d",
      "parents": [
        "60d142c54b16be08d8352c7fd1510538014839f7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 15 08:57:12 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 08 09:25:15 2016 -0800"
      },
      "message": "Frameworks/base: New preload tool\n\nAdd a new preload tool based on hprof dumps. This means that only\na userdebug build (to adjust the pre-existing preloaded-classes\nfile) is required now, not a recompiled runtime.\n\nChange-Id: Ib0c00de3b248e49fa8271cbace67c5d4a50170a1\n"
    }
  ]
}
