)]}'
{
  "log": [
    {
      "commit": "90ca5c0301651101de0e363842e5d08ae65233f7",
      "tree": "fde469f63dc33623feb0e20513c86262a3892000",
      "parents": [
        "d7392faea80acb5d73a027bb384e3222bc2c2e43"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 22 11:37:02 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 31 10:15:24 2014 -0700"
      },
      "message": "ART: Add support for patching and loading OAT files compiled with PIC\n\n* Images (.art) compiled with pic now have a new field added.\n* isDexOptNeeded will now skip patch-ing for apps compiled PIC\n* First-boot patching now only copies boot.art, boot.oat is linked\n\nAs a result, all system preopted dex files (with --compile-pic) no\nlonger take up any space in /data/dalvik-cache/\u003cisa\u003e.\n\n(cherry-picked from AOSP master\n46774767fcf7780d1455e755729198648d08742e)\n\nConflicts (from aosp master):\n\tcompiler/image_test.cc\n\tcompiler/image_writer.cc\n\tcompiler/image_writer.h\n\tcompiler/oat_test.cc\n\tdex2oat/dex2oat.cc\n\toatdump/oatdump.cc\n\truntime/elf_file.cc\n\truntime/elf_file.h\n\truntime/elf_file_impl.h\n\truntime/oat_file.cc\n\truntime/oat_file.h\n\nBug: 18035729\nChange-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62\n"
    },
    {
      "commit": "c54e12a413e16f90526318f1f466a900a717fbb0",
      "tree": "94f28bb25f7fee058cb23fdb3090a5da6d14b285",
      "parents": [
        "5d1c1bbd4c8a1727027d0ae69277af6f6f6badf3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 16:22:41 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 16:22:41 2014 -0700"
      },
      "message": "Change MemMap::maps_ to not be global variable\n\nRuntime.exit() was causing globals to get destructed at the same time\nthat another thread was using it for allocating a new mem map.\n\n(cherry picked from commit 6e88ef6b604a7a945a466784580c42e6554c1289)\n\nBug: 17962201\nChange-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962\n"
    },
    {
      "commit": "33c36d4f22ab6a5e61eb47b654deaf647c34e49c",
      "tree": "773ec616e2b46f15d3eb2100b43032a5d65b3d33",
      "parents": [
        "63bc11efaac0c041e849ab401f9fc368631a00f5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 20:56:04 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 23:30:36 2014 -0700"
      },
      "message": "ART: Only allow the zygote to create the global boot image\n\nDo not allow arbitrary processes, even when root, to write the\nboot image in /data/dalvik-cache.\n\nBug: 17478752, 17510489, 17439961\nChange-Id: Iba2b74be6d0752f4221f4ff5ee295b45a34cb2e1\n"
    },
    {
      "commit": "63bc11efaac0c041e849ab401f9fc368631a00f5",
      "tree": "b342dec2f39a0242a9f4e573eec06c77739a2643",
      "parents": [
        "b87baed15b03e2c853e285253ac92391572502f8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 18 08:56:45 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 18 10:33:39 2014 -0700"
      },
      "message": "DO NOT MERGE. Only have a portable entrypoint in portable builds.\n\nBug: 16214885\n\nChange-Id: Iff7b7415efdbdabd7e6020e221a540f6a774c852\n"
    },
    {
      "commit": "afa6b8e93a0dc0de33c9d404945c7c5621e20b1a",
      "tree": "511265d2ea160561e73fab5690645edb6460811e",
      "parents": [
        "eee3e7025213cf56f894d770d039caba29e20750"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 12 18:38:24 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 12 23:37:11 2014 -0700"
      },
      "message": "ART: Make elf loading not abort\n\nChanges elf_file code to use less CHECKs and instead return error\nvalues (usually nullptr). This avoids aborts.\n\nIn oat_file, when loading an oat file fails, try to unlink at. If\nthis succeeds, on the next run we may compile again.\n\nBug: 17491333\nChange-Id: I50fdd2edacd86f25d4dacf2180ce2a6105eaf4af\n"
    },
    {
      "commit": "aabbb2066a715b3fd8e752291f74c6d77b970450",
      "tree": "d982f56b5395660ec269ee6ce9abcdb587181297",
      "parents": [
        "d6ee5033433619a893a8f20319efcf8c8b1d1016"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 19 17:28:06 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 20 00:18:56 2014 -0700"
      },
      "message": "ART: Relax GetInstructionSetFromString\n\nDo not abort on an unknown instruction set string. Instead return\nkNone and let the caller handle this.\n\nAlso simplify the patchoat tool to use this.\n\nBug: 17136416\nChange-Id: I24131914bcf91c04ae93179bf809a2907f1f2b7a\n"
    },
    {
      "commit": "cf4bf386ef3f527825c70e01130b9276da4f786a",
      "tree": "0f99e56bc53e150e070447410a66e8e5acca4a0a",
      "parents": [
        "9fbe946f49724ff7ae30da5d366a002d1e6addfa"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 24 11:29:14 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 25 09:47:56 2014 -0700"
      },
      "message": "Tweaks to patchoat and other related things.\n\nRemoved some flags from patchoat that were poorly specified and fixed\nsome other issues with the relocation system.\n\nBug: 15358152\n\nChange-Id: Ia6d47b1a008f02373307d833ba45f00ea408d76f\n"
    },
    {
      "commit": "1c83cbc4a817acbd7f9abb5b29a2d418a958e6a1",
      "tree": "aae7ea1d5559718d6e264175aa1cb2ae1fc1e9ed",
      "parents": [
        "7dfc30b591aee167f0a38ab61a90894cc76f2066"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 18:52:29 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 23 10:03:00 2014 -0700"
      },
      "message": "ART: Make run tests out of oat tests\n\nTransforms all former oat tests into run tests.\n\nChange-Id: I190dd39456454c36e5538a2c044d993965a67533\n"
    },
    {
      "commit": "a59dd80f9f48cb750d329d4d4af2d99d72b484d1",
      "tree": "36958b15842205addaf6d2a13e40823eab47c8bc",
      "parents": [
        "84568fdf08f8f476292996ad653b4453d2894d23"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 02 16:28:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 08:24:14 2014 -0700"
      },
      "message": "Runtime can now be set to require relocation\n\nAdd a pair of runtime flags -Xrelocate and -Xnorelocate that can force\nthe runtime to require that all files that are run are relocated, to\nprevent attacks based on the known art base address.\n\nAdd support for running patchoat on oat files compiled without an image.\n\nChange run-test to have new --prebuild and --relocate flags.\n\nBug: 15358152\n\nChange-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "eefbe39799126afdf7d315a79359b9da23d1cef5",
      "tree": "7818d2124be53d5b01c11118ba6fe26f86adc0d5",
      "parents": [
        "c4c601b6dbe5e1a7321d663b36a531a87f21e931"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 08 09:53:18 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 08 10:06:08 2014 -0700"
      },
      "message": "Fix some style nitpicks\n\nChange-Id: Icfdd327f4ddf129f0a8607162c09ba271c1d49d9\n"
    },
    {
      "commit": "53cb16b98acf3cf6f3a1e2204ad4958ecf1b5a3c",
      "tree": "c0129ef3de7148dc6a114449b4f751a560283eb0",
      "parents": [
        "ae2efea4582df773f80be274bdc754f732b07df3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jun 12 11:26:29 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 07 15:19:58 2014 -0700"
      },
      "message": "Add patchoat tool to Art.\n\nAdd a new executable called patchoat to art. This tool takes already\ncompiled images and oat files and changes their base address, acting as\na cheap form of relocation.\n\nAdd a --include-patch-information flag to dex2oat and code to add\nrequired patch information to oat files created with the quick compiler.\n\nBug: 15358152\n\nChange-Id: Ie0c580db45bb14ec180deb84930def6c3628d97d\n"
    }
  ]
}
