)]}'
{
  "log": [
    {
      "commit": "bfc9e71e0d851204d9f0f380b7f2def51875b657",
      "tree": "bbf5e93eba810ecde5f2c0cdd2303de3baf03549",
      "parents": [
        "f60d30b6829b84223c680b7b6f9669975c708a27",
        "98fc198f1fe4236f8b9fd159636c4386ead0dc35"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Oct 18 06:24:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 18 06:24:45 2017 +0000"
      },
      "message": "Merge \"Use soong_ui directly, instead of make\" am: e994b4b584 am: 0531e5c647\nam: 98fc198f1f\n\nChange-Id: Id17adee4b02cc499261f88c3faed15d889f5b6c3\n"
    },
    {
      "commit": "a40118d7b6f70f44eaf4a47a32808088fd039f71",
      "tree": "7d72e2f4756a4182d4bf68643ced4800e3bcaeea",
      "parents": [
        "154535317eaa84a50d70cb3af8697ab4e2c89a25"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 17 17:46:41 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Oct 17 17:53:36 2017 -0700"
      },
      "message": "Use soong_ui directly, instead of make\n\nThis will use ckati instead of make for dumping variables, for\nconsistent makefile parsing. It may also sandbox executions, etc.\n\nAlso skip the legacy make wrapper to build, and use soong_ui instead.\nThe command line arguments are equivalent, but -j is no longer\nnecessary, we\u0027ll default to a sane value.\n\nTest: bit -b framework\nChange-Id: Idc2c9d1abe84b6b783b8702925de5493d47a4509\n"
    },
    {
      "commit": "decc397b267ca0769a2232ebaee6580bb082e0d1",
      "tree": "4c53ec713713792d1f276cb0a04498ba44abbf9d",
      "parents": [
        "4f4d64659abc0db7c3f9dc5a9ae3f14e61c6776b",
        "9f004b17523494a0b123a0034742c47ff2880428"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 16 19:50:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 16 19:50:38 2017 +0000"
      },
      "message": "Merge \"Use -Werror in frameworks/base\" am: 16fbd3a1d8 am: 0bfb717a37\nam: 9f004b1752\n\nChange-Id: I6517ee1689b0247caf830a6c3528bfa9bcf91f75\n"
    },
    {
      "commit": "c7edf078f92c7ce083f8c243a79f8aecdfff4ac1",
      "tree": "d7816094d61913df8ee8c17e60763ccd050c4631",
      "parents": [
        "26817938f6966928488e92de73359c3887006642"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 03 09:57:55 2017 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Oct 13 16:25:16 2017 -0700"
      },
      "message": "Use -Werror in frameworks/base\n\n* Fix unused variable and return value warnings.\n\nBug: 66996870\nTest: build with WITH_TIDY\u003d1\nChange-Id: I890e65a20848d00559ba5a4f9691be1347b456af\n"
    },
    {
      "commit": "6fb2c9718cde124f10edfbf45893b5a0cd537e11",
      "tree": "474928936daf5857d1cc341861b1577c107a28ba",
      "parents": [
        "f6764fb7f7a26e202b1ebb861e095979b0f9560a"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Wed Aug 02 14:40:12 2017 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Wed Aug 02 14:49:30 2017 -0700"
      },
      "message": "Bit: Don\u0027t ignore errors and crashes\n\nBit used to only see success results and failures (\u003d\u003d assertion failures?),\nand didn\u0027t see \"errors\" (other exceptions) and test process crashes.\n\nFixed it.\n\nNow it also returns an error status code if there was a test failure.\n\nBug 64292779\nTest: manual\n\nChange-Id: Iaba93910d32abfc615ae595746a0e9be1108583a\n"
    },
    {
      "commit": "41d8ef907af21f0001c458fb235d40a77e357e0b",
      "tree": "5664b381b49ab4de031438910f403484f8ae0fe4",
      "parents": [
        "b10b75a1cf6a5f8582c7778e873c5157ea5d1c53",
        "164e7967b1f47586338805e2ebfdee02a5de85db"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 07 23:28:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 07 23:28:10 2017 +0000"
      },
      "message": "Merge \"Bit: support running all tests in a java package.\""
    },
    {
      "commit": "164e7967b1f47586338805e2ebfdee02a5de85db",
      "tree": "afb8764ccc9de450be7b195c29e3423eb24910d4",
      "parents": [
        "bfce224cd95a7019c86cf9fb1241a0c2ebf7ec42"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Jul 06 16:20:11 2017 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Jul 06 16:21:26 2017 -0700"
      },
      "message": "Bit: support running all tests in a java package.\n\nIf a target name ends with a period, treat it as a package name\nand run with \"-e package\" instead of \"-e class\".\n\nTest: bit CtsProviderTestCases:android.provider.cts.contacts.\n\nChange-Id: I3a9a0cbef76f57c46c41bf168b7e94eebecaf671\n"
    },
    {
      "commit": "5f9dc424b35e4d3b03c5e7f261f421825410ea15",
      "tree": "73568debc4699e2b78ea973e582727703aac8949",
      "parents": [
        "4f5adb9801e08f34731cfe22be3c197a5dd09ba4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jul 06 12:13:42 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jul 06 12:15:21 2017 -0600"
      },
      "message": "Have bit grant permissions to installed APKs.\n\nOtherwise unit tests fail spectacularly when they don\u0027t get the\nruntime permissions that they expect.\n\nBug: 63391323\nTest: bit FrameworksServicesTests:com.android.server.NetworkPolicyManagerServiceTest\nChange-Id: I5307e0456865387ac14178268f543e2007b97096\n"
    },
    {
      "commit": "2cfa849e9289474d82773335e6f54d751103a53a",
      "tree": "54176bafb8f9eaf36a2a76c7287d0746656d10fe",
      "parents": [
        "68a9dd8c88869fa47aa7d3c2e9ecce5077452f57"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Dec 06 16:08:39 2016 -0800"
      },
      "committer": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Dec 13 23:22:57 2016 +0000"
      },
      "message": "fix  warning: Potential leak of memory pointed to by \u0027target\u0027\n\nBug: None\nTest: The warning is gone.\nChange-Id: I013fad1d53b37ae3d89846c70f0b10a67a9d04bb\n"
    },
    {
      "commit": "6592c3cc8f37aae2058021b7971c33b94fc7ce5d",
      "tree": "8effe0397dbcacfebf3e59bf3406077e771221ae",
      "parents": [
        "43518242a35abef019057081d827ae3a1330ae2f"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sat Nov 12 16:34:25 2016 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Nov 29 17:36:36 2016 -0800"
      },
      "message": "Add an option to bit to not restart.\n\nTest: build \u0026 restart\nChange-Id: Ia925053f04046d7fb91a47cfd5fd17a5d4fecf10\n"
    },
    {
      "commit": "8a5bb6370cd01990d2bb9f74dc4c777d68e95adc",
      "tree": "888948f4c1e77df9d17d4cdfb9fc7b5b86b23dfa",
      "parents": [
        "909bbd31177ebc131f91453a9aa206baec4afb9a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 21 14:31:42 2016 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 21 14:32:01 2016 -0700"
      },
      "message": "Fix mac build of bit\n\nTest: make bit\nChange-Id: I8005e77babfbe2d48806f9315800e699d1917bb4\n"
    },
    {
      "commit": "0578cbc6c527bc09a38a0fcd8b9642c25c8ea023",
      "tree": "fc29b7b8f9b92269bd25e5b17046685d3a3b008c",
      "parents": [
        "f0c719821dfdd32e37c4de6b4d640cefcda7b32a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Oct 19 17:03:06 2016 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Oct 20 18:20:40 2016 -0700"
      },
      "message": "Add a new build, install, test development (bit) tool\n\nThis is a cleaned up version of a utility that I\u0027ve had sitting around\nfor a while.\n\nThe bit tool can run an android platform build, then sync or install\nthe outputs of that, and then run instrumentation tests.  It\u0027s better\nthan what we usually do:\n\n  make \u0026\u0026 adb shell stop \u0026\u0026 adb sync system \u0026\u0026 adb shell start\n\nHere\u0027s the help text:\n\nusage: bit OPTIONS PATTERN\n\n  Build, sync and test android code.\n\n  The -b -i and -t options allow you to specify which phases\n  you want to run. If none of those options are given, then\n  all phases are run. If any of these options are provided\n  then only the listed phases are run.\n\n  OPTIONS\n  -b     Run a build\n  -i     Install the targets\n  -t     Run the tests\n\n  PATTERN\n  One or more targets to build, install and test. The target\n  names are the names that appear in the LOCAL_MODULE or\n  LOCAL_PACKAGE_NAME variables in Android.mk or Android.bp files.\n\n  Building and installing\n  -----------------------\n  The modules specified will be built and then installed. If the\n  files are on the system partition, they will be synced and the\n  attached device rebooted. If they are APKs that aren\u0027t on the\n  system partition they are installed with adb install.\n\n  For example:\n    bit framework\n      Builds framework.jar, syncs the system partition and reboots.\n\n    bit SystemUI\n      Builds SystemUI.apk, syncs the system partition and reboots.\n\n    bit CtsProtoTestCases\n      Builds this CTS apk, adb installs it, but does not run any\n      tests.\n\n  Running Unit Tests\n  ------------------\n  To run a unit test, list the test class names and optionally the\n  test method after the module.\n\n  For example:\n    bit CtsProtoTestCases:*\n      Builds this CTS apk, adb installs it, and runs all the tests\n      contained in that apk.\n\n    bit framework CtsProtoTestCases:*\n      Builds the framework and the apk, syncs and reboots, then\n      adb installs CtsProtoTestCases.apk, and runs all tests\n      contained in that apk.\n\n    bit CtsProtoTestCases:.ProtoOutputStreamBoolTest\n    bit CtsProtoTestCases:android.util.proto.cts.ProtoOutputStreamBoolTest\n      Builds and installs CtsProtoTestCases.apk, and runs all the\n      tests in the ProtoOutputStreamBoolTest class.\n\n    bit CtsProtoTestCases:.ProtoOutputStreamBoolTest\\#testWrite\n      Builds and installs CtsProtoTestCases.apk, and runs the testWrite\n      test method on that class.\n\n    bit CtsProtoTestCases:.ProtoOutputStreamBoolTest\\#testWrite,.ProtoOutputStreamBoolTest\\#testRepeated\n      Builds and installs CtsProtoTestCases.apk, and runs the testWrite\n      and testRepeated test methods on that class.\n\n  Launching an Activity\n  ---------------------\n  To launch an activity, specify the activity class name after\n  the module name.\n\n  For example:\n    bit StatusBarTest:NotificationBuilderTest\n    bit StatusBarTest:.NotificationBuilderTest\n    bit StatusBarTest:com.android.statusbartest.NotificationBuilderTest\n      Builds and installs StatusBarTest.apk, launches the\n      com.android.statusbartest/.NotificationBuilderTest activity.\n\nChange-Id: I9cff7a23852fa1a67369e7807f7ae9f6e45d6131\nTest: none\n"
    }
  ]
}
