)]}'
{
  "log": [
    {
      "commit": "d3eac266b02399a8a822517e844c05585879221a",
      "tree": "9d6cefd142dd515c9e3ad946f6549f9727822c8e",
      "parents": [
        "1cb5ab2dc14fb35359525479a7c7356d84904ce1"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Sep 08 22:47:47 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Sat Sep 09 06:18:48 2017 +0000"
      },
      "message": "Convert host tools to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: m libinstrumentation interrupter accessorychat accessorytest bit obbtool pbkdf2gen libsplit-select_tests split-select protoc-gen-javastream validatekeymaps libaapt_tests aapt\nTest: mmma frameworks/base\nTest: out/host/linux-x86/nativetest64/libaapt_tests/libaapt_tests\nTest: out/host/linux-x86/nativetest64/libsplit-select_tests/libsplit-select_tests\nChange-Id: I93cf24d4b232353a52d53be8ed85781b8f4a3877\n"
    },
    {
      "commit": "9d2b22d2e6d86b636238f74ff4b1b75cb3b88b81",
      "tree": "1caf1dba930a9502876d51b698954858d3659746",
      "parents": [
        "52bc790f616f3f1578f31e7161eb93f670213bdb"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Mon May 08 14:09:03 2017 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Mon May 08 15:12:00 2017 -0700"
      },
      "message": "Switch from libcrypto_static to libcrypto target\n\nlibcrypto target offers the same static library as libcrypto_static.\nThus, there\u0027s no need to use libcrypto_static.\n\nTest: make pbkdf2gen\n      Run pbkdf2gen with and without a password and confirm it works\nBug: 26160319\n\nChange-Id: I89a60b7521e6c3df91421d0edf64a71b8b2c20e0\n"
    },
    {
      "commit": "22335a9730d80c7282f2a10d617136702850c56f",
      "tree": "be187df10b3e4afc4254c6b471b69f972b51f294",
      "parents": [
        "96778220979cc0029d6f8bba98ca87b5dadeda12",
        "6c1af7ea497b1a2f04bdf45a19d2147f5b9665b9"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 24 22:13:26 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 24 22:13:26 2015 +0000"
      },
      "message": "am 6c1af7ea: am 8652bce1: am c71f2648: Merge \"frameworks/base: switch to using NativeConstants.\"\n\n* commit \u00276c1af7ea497b1a2f04bdf45a19d2147f5b9665b9\u0027:\n  frameworks/base: switch to using NativeConstants.\n"
    },
    {
      "commit": "6bf52c4271bd0483174fe3755caedb778693791e",
      "tree": "75d70d58aa834eab3351cacc178ffa306684d8d3",
      "parents": [
        "0e29681f98dad8df9f772d86a848190138245f3d"
      ],
      "author": {
        "name": "Adam Langley",
        "email": "agl@google.com",
        "time": "Fri Apr 24 09:59:35 2015 -0700"
      },
      "committer": {
        "name": "Adam Langley",
        "email": "agl@google.com",
        "time": "Fri Apr 24 10:00:45 2015 -0700"
      },
      "message": "frameworks/base: switch to using NativeConstants.\n\nNativeCrypto is a conscrypt class that contained several OpenSSL\nconstants. NativeConstants is the new class that contains the same\nthing, but the latter is automatically generated and thus won\u0027t drift\nfrom the C headers.\n\nBug: 20521989\n\nChange-Id: I45c7b9a6844a06e3ffd09be692ebf733e1ebbbcc\n"
    },
    {
      "commit": "ad0d879e52907f3d38c89e89e518dec2cb9033f9",
      "tree": "c3f92d139eae0c0a2c07bb519f2aafc112040232",
      "parents": [
        "7127d264d1489c5fae528ef1ca8d3b21d0eba519",
        "c2d51280395749328b0bb7a283cbc6037606822e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 23 11:05:28 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 23 11:05:28 2015 +0000"
      },
      "message": "Merge \"Remove superfluous OpenSSL include paths.\" automerge: fe24754 automerge: d555cd5\nautomerge: c2d5128\n\n* commit \u0027c2d51280395749328b0bb7a283cbc6037606822e\u0027:\n  Remove superfluous OpenSSL include paths.\n"
    },
    {
      "commit": "0e7829e4289aff3601945be0637ba7c8ca100508",
      "tree": "73fcddf58879b07392835b5ab8ba0fbe8cdc810c",
      "parents": [
        "231df77eff4e31fead0dfadee6ea6ead980b24ea"
      ],
      "author": {
        "name": "Adam Langley",
        "email": "agl@google.com",
        "time": "Thu Jan 22 17:15:13 2015 -0800"
      },
      "committer": {
        "name": "Adam Langley",
        "email": "agl@google.com",
        "time": "Thu Jan 22 17:15:13 2015 -0800"
      },
      "message": "Remove superfluous OpenSSL include paths.\n\nThe libcrypto and libssl modules (and their respective static and host\nversions) use LOCAL_EXPORT_C_INCLUDE_DIRS thus just including the module\nis sufficient.\n\nChange-Id: I467f1b1d038b5136fa22b1230da134c394eac54e\n"
    },
    {
      "commit": "fac7ade02efc74dda0992ccf32cc24ceaa4a5806",
      "tree": "df3d276e0ba502187b10d4bb3ed0265d8085ba43",
      "parents": [
        "2c8a41fba52440909335ad41dcab4a6e7fbc67e1",
        "d2febbbd4ac09c3aa0d36e16e44e4a24a731057c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 17 23:52:36 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Aug 17 23:52:36 2014 +0000"
      },
      "message": "am f71a2835: Merge \"PackageInfo is a class, not a struct\" into lmp-dev-plus-aosp\n\n* commit \u0027f71a28354cf3339a744b4abb9571fe98f7bad4ee\u0027:\n  PackageInfo is a class, not a struct\n"
    },
    {
      "commit": "4eedc1018f46bf2ce1d8780a1fd6415700c4ee1d",
      "tree": "6d9653aca47fe4f3076045ce19e6f20a1d08b97a",
      "parents": [
        "cd3a2e578ded178c0f2a772fb31a980448430227"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 17 16:02:33 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 17 16:02:33 2014 -0700"
      },
      "message": "PackageInfo is a class, not a struct\n\nChange-Id: Ibb30e3a13fc086adec8077c8fb8fb17ef54c36b5\n"
    },
    {
      "commit": "eb8ac25fe5cbaf33f71532c2920a1faaca8e130f",
      "tree": "e509fe0f92a71930809dcb4e9f6a49cdeb8a96e4",
      "parents": [
        "cf49a24e2f73e0104c0a9b6d67178ed5ba8d8b87"
      ],
      "author": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Tue Aug 05 14:34:48 2014 -0700"
      },
      "committer": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Tue Aug 05 21:38:03 2014 +0000"
      },
      "message": "DO NOT MERGE: Revert \"Update makefile for clang host build.\"\n\nThis CL is somehow merged to lmp-dev and breaking Mac builds.\n\nThis reverts commit 132ed0f2b45acf982bbd06616f14164b612661d1.\n\nChange-Id: I5a3472c0e2924db5c605340d7abdd407b956dcc2\n"
    },
    {
      "commit": "132ed0f2b45acf982bbd06616f14164b612661d1",
      "tree": "d62be47b629602188d16ccde5569c4580989d63d",
      "parents": [
        "2e7b2521f1758bf16935a9a879c595cc44eab37f"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Jul 17 16:37:42 2014 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Jul 17 16:37:42 2014 -0700"
      },
      "message": "Update makefile for clang host build.\n\nbug 16172793\n\nChange-Id: If7484c5dbcccce7d925bec97bff0a3e4c30e9434\n"
    },
    {
      "commit": "60e510af804b5b583d835a0f1f1e676d08b812bc",
      "tree": "22566e0f8a45715ce2726a4affebbdb9e1cd04b9",
      "parents": [
        "1f5762e646bed2290934280464832782766ee68e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 07 19:52:05 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 07 19:52:05 2013 -0700"
      },
      "message": "desperate attempt to fix linux build.\n\nworking on the assumption that the ordering in\nLOCAL_STATIC_LIBRARIES matters.\n\nChange-Id: Ibf5b706652049b195bd66c84c9a5fa1122454ca6\n"
    },
    {
      "commit": "d685894212e6dbeac1fda4996903c1da115d49a6",
      "tree": "c52d05c78811e79a869afbcdbe55a906e38f2fa1",
      "parents": [
        "9fa49cc3308f6af593d780581121afc3c1d7e046"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: I746aa8258866508c3a725d0773faf4518096548f\n"
    },
    {
      "commit": "83c64e6b624a876436d2ef5d2f173b10407e27b4",
      "tree": "c4effc3260ab399e8fdae23baf06b076cd87a604",
      "parents": [
        "94d0024557f415b8463f085c9784a3e1d02b58c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 16:58:20 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 22:38:43 2012 -0800"
      },
      "message": "frameworks/base refactoring\n\ncreate the new libandroidfw from parts of libui and libutils\n\nChange-Id: I1584995616fff5d527a2aba63921b682a6194d58\n"
    },
    {
      "commit": "b13b9bdad2baf6ad1ec2e56b6b7598fa20f55fc4",
      "tree": "2b90dc39a35d8081ea47b038893624b69a01202d",
      "parents": [
        "6db0608dff408130b35e6f21abe746a635648b18"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 18:27:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 19:01:26 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nstep 2: move libutils headers to their new home: androidfw\n\nChange-Id: I14624ba23db92a81f2cb929f104386e1fab293ef\n"
    },
    {
      "commit": "64ef6b47e020da5370af8897638a0a778fa52b74",
      "tree": "740353ef25502e55bae3bca6aaa81733f2fb3df9",
      "parents": [
        "63aa6622d0eb6592a582ac28078404bfc411bcef"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Oct 19 22:35:56 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Oct 20 16:21:25 2011 -0700"
      },
      "message": "add -ldl to host executables\n\nThis fixes the build on Linux when RefBase is compiled with reference tracking\nenabled.\n\nChange-Id: I3e931e0b463ce836f6fdb30c37068d77144631a3\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "a1b592e60dee58aaaf66ce430f3dbe36cf0448bb",
      "tree": "b34fee41e098d981ebff23052a0999b510a256c7",
      "parents": [
        "d4e03f37423bee383d17f7292753a5f67e497a28"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Oct 14 16:13:31 2010 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Oct 14 16:13:31 2010 -0700"
      },
      "message": "Link against the static libcrypto in external/openssl.\n\nChange-Id: Iad41ec975f9b9a4aec0b8470678320f5abe03e1f\n"
    },
    {
      "commit": "a09f1ebeb5fcdb1763b68a077f918bae87a0095d",
      "tree": "b243e46a81df7ad2e1b05d393998841d29ad6ea3",
      "parents": [
        "bd57eeafe034cf850225db403700b5dc5db5ebcc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 14 10:25:25 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 14 10:43:15 2010 -0700"
      },
      "message": "Do not build pbkdf2gen on non-Linux hosts\n\nChange-Id: I9f575a2ca7d45102a4f67424ea5866cf750adb13\n"
    },
    {
      "commit": "3b1abba6bbc895d63da3e82e9b158c01bd12eddd",
      "tree": "1296e8c25a2927c94783eda83100c061fc9fe379",
      "parents": [
        "dfc07279fc6205c38f5f39cb5ba4f0aef6b593a4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 15:00:07 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 13 18:25:33 2010 -0700"
      },
      "message": "OBB: use PBKDF2 for key generation.\n\nSwitch to using PBKDF2 for the key generation for OBBs. Any previously\ngenerated OBBs will stop being read correctly. A small pbkdf2gen program\nis available to allow generation of appropriate keys with the salts.\n\nBug: 3059950\nChange-Id: If4305c989fd692fd1150eb270dbf751e09c37295\n"
    },
    {
      "commit": "12ffd9bf4c2cc9075ea7602b4932f823ba940f80",
      "tree": "5799aa5df8bde6b1f641d704b8909d0549fd1784",
      "parents": [
        "2942391801b79816c5eb77d7ac94c4a65f26af48"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 12:56:59 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 14:02:47 2010 -0700"
      },
      "message": "Add \"none\" for vold and deprecate mkobb -c\n\nIf vold isn\u0027t told \"none\" for the key, it will try to mount it as an\nencrypted container.\n\nAlso remove the -c option from mkobb since it can be triggered by\nincluding a key as well.\n\nChange-Id: I40a8ff3f778bfda682312630e6687ecc14b51844\n"
    },
    {
      "commit": "735de3b38abbd6564082a819377673ee593744a6",
      "tree": "ec309587616c5abbc49df83d7d21b6a3b3e9dfbd",
      "parents": [
        "27358a69b33eaa268ee75ef778ec824c8085adcc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 14:11:39 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 17:25:05 2010 -0700"
      },
      "message": "Hash keys with MD5; track IBinders not IInterface\n\nUsing a plaintext password doesn\u0027t work unless it\u0027s a certain length, so\njust hash the plaintext password with MD5 to make it the right length\nfor the twofish encryption.\n\nTracking the IInterface doesn\u0027t make much sense since it\u0027s different\neach time, so track the IBinder instead. That way we can unlinkToDeath\nthe binder when the last thing it\u0027s holding onto goes away.\n\nChange-Id: Id828d25b4d74f27e9d8b4bfb3909c964469cc473\n"
    },
    {
      "commit": "30c1102fecda5e9ef071c58c0e54b721961ae4e3",
      "tree": "d7b24893fb749d99db005a7cc10ae424c3e9de12",
      "parents": [
        "181e5ea8087360742b3ed0a7f2e6f8f8baa0a760"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 21 10:13:19 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 21 10:13:19 2010 -0700"
      },
      "message": "Add image creator helper script for OBBs\n\nChange-Id: Id3f2b158077e8d104582e0ac720c2428c3ba4d97\n"
    },
    {
      "commit": "02ca31fbae9f35dd30f79de6927fae11b549391a",
      "tree": "dc037f02f42db20ba1f086e707fd53a71ea4c4c5",
      "parents": [
        "baf3869b88ab4e31f792dbe08f61725bc3619ea8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 12 07:36:02 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 18 09:34:58 2010 -0700"
      },
      "message": "Add OBB flags to support overlays\n\n* Add flags field in OBB footer to support overlays.\n\n* Remove unused \u0027crypto\u0027 and \u0027filesystem\u0027 fields in obbtool (could\n  later be supported in the \"flags\" field of the OBB footer).\n\n* Add notes to document OBB classes before shipping.\n\nChange-Id: I386b43c32c5edef55210acb5d3322639c08010ba\n"
    },
    {
      "commit": "6e7ac5f0bceddf51947fbf3b376e278df0735603",
      "tree": "36772b5b1e134baddbc24b73bb59ee701c3acc58",
      "parents": [
        "a02b8b05dd1e8b8cf169e1f89542ef835b11fc13"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 19 10:31:34 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 11 11:24:41 2010 -0700"
      },
      "message": "Initial tool for OBB manipulation\n\nAdd \"obbtool\" host command for adding, removing, and querying Opaque\nBinary Blob (OBB) information from a file.\n\nChange-Id: Id2ac41e687ad2a500c362616d6738a8ae7e8f5c3\n"
    }
  ]
}
