)]}'
{
  "log": [
    {
      "commit": "87ecf3ae39362f1ca3f9432034b7c04e088d92d7",
      "tree": "76fab23b1f3ac93b81260eb0870c2f5828078041",
      "parents": [
        "1e216bc835a9e8d0336272ecdb5a398718a8f1db",
        "729f6f601822ae012e8cbbe813c3aa97060b1a8a"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 24 01:30:47 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 01:30:47 2017 +0000"
      },
      "message": "Merge \"Move mtp descriptors into separate source, add tests\"\nam: 729f6f6018\n\nChange-Id: I61ee4b4da3bc4b971f5786fb84794b94fae5421d\n"
    },
    {
      "commit": "69b74506f9d658fd9ed18676eb75b86fdb7d7d73",
      "tree": "0d33726bbdb700379bd4016e4b0579b0447af820",
      "parents": [
        "5617fb288bc3f8335273f526a5ca7c18d67076cf"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 02 16:26:37 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 23 15:21:11 2017 -0700"
      },
      "message": "Move mtp descriptors into separate source, add tests\n\nFunctionfs descriptors are moved into MtpDescriptors.cpp.\nAdded assertions and tests to ensure that descriptors aren\u0027t\nunintentionally changed, and bug numbers in comments for\nfuture context.\n\nTest: updated MtpFfsHandle_test passes\nBug: 67367056\nChange-Id: I90eb5e48a687f366b8919621718e976e83b5b064\n"
    },
    {
      "commit": "68ce743ef9ad6b1f37bfdf55eb67d836696bd422",
      "tree": "0d9a5921801fcc73535dfbf0f6409d87b5059262",
      "parents": [
        "64dd76afd8027ec7edcf9bb7a40afd024cfc10f6",
        "82651d413eb66978f2020058235811c0f5bb2094"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 29 03:38:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 29 03:38:18 2017 +0000"
      },
      "message": "Merge \"Switch MtpFfsHandle to aio, add control functions.\"\nam: 82651d413e\n\nChange-Id: I622346740d9310c9c9569ed5feb463f51cab6b5e\n"
    },
    {
      "commit": "df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2",
      "tree": "15e227b89c1c6a9877b7e37269cdb63b1ffaac90",
      "parents": [
        "0fdeb09e898c39d9e353311577b72f1a53bc11f3"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed May 03 17:17:49 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 22 20:47:04 2017 +0000"
      },
      "message": "Switch MtpFfsHandle to aio, add control functions.\n\nMtpFfsHandle now uses kaio to handle usb data.\nThis achieves better performance without using\nthe endpoint alloc ioctl.\n\nThis also allows ep0 events to be handled without\nrace conditions. Events will also include control\nrequests, which will allow both host and device\ninitiated cancellation.\n\nBug: 37916658\nBug: 36802721\nTest: Transfer various size files, run MtpFfsHandleTest\nTest: Cancel transfer on Windows\nTest: Allow device to cancel transfer on Windows\nChange-Id: Ib3ce996f00782ce7f68f29b2510dbc17f09fdf14\n"
    },
    {
      "commit": "c9589bb0c2f6197c98edd2a47fcd4e8e85cc397b",
      "tree": "995380adda5da11b26257a5f10163e6ad6d9a765",
      "parents": [
        "07def20c4082b831ce5678959ef6a034674b808d",
        "aef8eb866df8b6b681422801fb2b44ba29953370"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue May 16 01:48:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 16 01:48:18 2017 +0000"
      },
      "message": "Merge \"Fix file transfer corner cases.\" into oc-dev am: 922669e81c\nam: aef8eb866d\n\nChange-Id: I5a838ba9fdbc481674eb4c6638d1221a7027f205\n"
    },
    {
      "commit": "aef8eb866df8b6b681422801fb2b44ba29953370",
      "tree": "c54293216cbbea020dc8f4132276727a47c6a8dc",
      "parents": [
        "86a0b96ddca0a657eeb1ba95ded957ba79c07c23",
        "922669e81c23ea3a400879dd7cb5f222b5e48e67"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue May 16 00:19:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 16 00:19:58 2017 +0000"
      },
      "message": "Merge \"Fix file transfer corner cases.\" into oc-dev\nam: 922669e81c\n\nChange-Id: Idf99f296e03b2e35b6140d5650147a7dcb3cbc8f\n"
    },
    {
      "commit": "5410756e75fb7567540f13d3813f42f4ac3838a0",
      "tree": "9c43426b3e7ec072dff9a54b795757566f389673",
      "parents": [
        "77994d70fe8d4805126361bbd0afbcac1cd1d2f0"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 15 11:54:19 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 15 13:21:46 2017 -0700"
      },
      "message": "Fix file transfer corner cases.\n\nFix zero packet read/write in corner cases\nwith initial read/writes. This affects transfers\nof 16372 bytes to the device and transfers of\n1012 bytes (or packet size - 12) from the device.\n\nTest: Transfer various length files\nBug: 37175601\nChange-Id: Ic1281e8757d1a33d78c66d2c57319b5ee38d6a46\n"
    },
    {
      "commit": "e997c143b86082d1426f8d3d755b7aeaaa7c3dc3",
      "tree": "05d208c9f1cccadbba54491eee4da0de5bc33787",
      "parents": [
        "a33999bab96f0ee1f44816cb3b5c1312bc2a4f91"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri May 05 09:51:37 2017 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri May 05 09:51:37 2017 -0700"
      },
      "message": "Convert libmtp to soong.\n\nBug: 37512442\nTest: native test\nChange-Id: Idf0e96a206faadc5a3179f0df564ab1d4daacda2\n"
    },
    {
      "commit": "777449ca7d0a4c8ca97da6097198e868a93b50cc",
      "tree": "6f3d5da570234851c040671ef873ba3c7a8fa564",
      "parents": [
        "3243d43c0596c18845781607bae6ef8995ea624d"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Wed May 03 14:58:13 2017 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu May 04 08:31:09 2017 -0700"
      },
      "message": "Convert libmtp to soong.\n\nBug: 37512442\nTest: native test\nChange-Id: Idf0e96a206faadc5a3179f0df564ab1d4daacda2\n"
    },
    {
      "commit": "53f2ecaa60aea710d803ee94bbf398c50892c1a1",
      "tree": "ea8db11ae098b0e876414f01bddc41a7af3e9402",
      "parents": [
        "5f8beee0ea76ffe5cc40a517e8db43dbd64fbeff"
      ],
      "author": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Tue Mar 28 16:13:37 2017 -0700"
      },
      "committer": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Tue Mar 28 16:13:37 2017 -0700"
      },
      "message": "Add test config to mtp_ffs_handle_test\n\nDesign doc:\nGeneralized Suites \u0026 the Unification of APCT \u0026 CTS Workflows Design/Roadmap\nhttps://docs.google.com/document/d/1eabK3srlBLouMiBMrNP3xJPiRRdcoCquNxC8gBWPvx8/edit#heading\u003dh.78vup5eivwzo\n\nDetails about test configs changes are tracked in doc\nhttps://docs.google.com/document/d/1EWUjJ7fjy8ge_Nk0YQbFdRp8DSHo3z6GU0R8jLgrAcw/edit#\n\nBug: 35882476\nTest: local test\nChange-Id: I740caff88234fb986ca03553ab28c519cfe6aa18\n"
    },
    {
      "commit": "8542feecf7842746d3a5e3cb113ac7269f7a296f",
      "tree": "d71eee5e0cb7c04baf10321dbde941e12d2afcf4",
      "parents": [
        "9064b2d12a572cb53469883a595eed6360b49cd8"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Feb 06 15:12:17 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 09 11:02:06 2017 -0800"
      },
      "message": "Update MtpFfsHandle tests, add new tests for small and partial files\n\nTest: Build and run 32 and 64 bit tests\nBug: 34822471\nChange-Id: I812e4f27464e385c219c42bf7a76fa702f295f41\n"
    },
    {
      "commit": "487be61fb0a38873aec1d12da92437fba5e728f2",
      "tree": "29bfa5273c091b25b31ac5353580f67229a8b07c",
      "parents": [
        "b985e3c6bab78c60ef53164f157dd5bccf3045f9"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 24 12:10:41 2016 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Dec 12 14:36:06 2016 -0800"
      },
      "message": "Refactored Mtp driver interface into multiple classes.\n\nAdded new interface for FunctionFS. This allows most of\nthe driver code to exist in userspace. The driver will\nautomatically use FunctionFS if it is enabled for that\ndevice, otherwise it will default to the kernel driver.\n\nThe intention is to eventually deprecate the kernel driver.\n\nBug: 30976142\nChange-Id: I36b8d16ca254fddd995b3ea1bd3d37b0ff4a28f7\nTest: New automated tests for MtpFfsHandle, AsyncIO.\nManual testing on each device.\n"
    }
  ]
}
