)]}'
{
  "log": [
    {
      "commit": "297912b6c9046ac3a00acc2dfd9389c6feb557ad",
      "tree": "94386f5070738c78c84f2ec54f970f8cbd6eea73",
      "parents": [
        "6b98328f14468a56d8534f7fa4a790d575fc5c95"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri May 11 11:29:54 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue May 15 21:43:45 2018 +0000"
      },
      "message": "Remove limitation on read/write size\n\nPreviously ios called through read write\nwere limited to 16kb because read packets\nare very small. However, write packets can\nbe greater than that amount in cases where\na folder contains over 4k items. Thus,\nremove the limitation.\n\nAdd corresponding ReadLarge and WriteLarge\ntests as well.\n\nBug: 79214960\nTest: mtp_ffs_handle_test passes, Mtp works\nwith large folders\n\nChange-Id: I8a980612c3eb941552ff4dd11ac631d1dc5d3347\n"
    },
    {
      "commit": "63dac45aa868b9048c028967e9865c90a9ba544d",
      "tree": "b21d37631cde212935b35cb8109ee333b69d97c6",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Dec 06 15:19:36 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Mar 05 13:44:25 2018 -0800"
      },
      "message": "Remove configure() from Mtp\n\nInstead of configuring the server each\ntime the connection happens, UsbService\nwill now pass in the control fd with the\ndescriptors already written. Also, PTP\nendpoints have been moved to their own\ndirectory at /dev/usb-ffs/ptp rather than\nusing the same ones as mtp.\n\nBug: 72877174\nTest: Verify PTP and MTP config changes work\nChange-Id: I9a0336afd610aa397c9947568c308afb89b27c08\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": "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": "94ef0eaba32244d8732394291873f2abd4c63da3",
      "tree": "89fc952700a3a4211e87e76a22c4fce1b2ff2c56",
      "parents": [
        "b5c1bcb963dc638d4f67b6b016509c174363f48e"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jul 26 11:37:23 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 22 20:45:27 2017 +0000"
      },
      "message": "mtp: Send events async.\n\nAFT will not read the events endpoint at all\ncausing every sendEvent() to block. Since\nevent ordering doesn\u0027t really matter, send\nevents in their own detached thread instead.\n\nBug: 36802721\nTest: Connect AFT, create a folder from device, check not frozen\nChange-Id: I4b8aee93c19fa9c73e6b2f34d9794a491b2433e1\n(cherry picked from commit d80492b819b3934475596ec4afda979bad3bd126)\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": "0475d911fcc1e6e1b4f49626f59a0a07038590fa",
      "tree": "9c4f71008370a17223a80dfd9a0966fcbfdaafaf",
      "parents": [
        "58a220fe06957cf7f0325cc9509947f1602e2986"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Apr 03 11:24:48 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Apr 03 14:22:34 2017 -0700"
      },
      "message": "Add timeout to lock in MtpServer configure\n\nIn situations where MtpServer is in a bad state, this will prevent\nthe configure call from blocking indefinitely, which will prevent\na few visible problems and allow the state to recover on the next\nconfig change.\n\nBug: 34873000\nTest: Connect to AA test sled\nChange-Id: I5daf9cfcec69c967bde6bf3f6fd90e1c434e18bb\n"
    },
    {
      "commit": "b4f54266042f0553b41409a3d1f0542b684c2129",
      "tree": "cf18305909249f4ff86438b8bc3f32791c0fa8ae",
      "parents": [
        "4418030f45cca8cad25051f49b142988fb635037"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 02 18:14:33 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Feb 06 12:01:56 2017 -0800"
      },
      "message": "Retry allocations in case of ENODEV\n\nUnlike the read() and write() calls, the ioctl() call\ndoes not wait for endpoints to be enabled, which is\nproblematic if ioctls() are the first calls on the\nusb connection, since they may be called before the\nendpoints are set up. We\u0027ll have to retry if this\ncauses them to fail.\n\nBug: 34822471\nTest: Change configs to mtp and ptp\nChange-Id: I89610b9614c33f0b22535cc68cd0c9b502cb55c9\n"
    },
    {
      "commit": "cc9d0fdd302cf997607055e0a8b5559509cba766",
      "tree": "9dd0c4129717288a07246f23c6492fcb5a6daad1",
      "parents": [
        "f41c781cf4500cb0a8aae017f0c802c7b6f52f05"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Jan 27 10:29:59 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 02 12:38:00 2017 -0800"
      },
      "message": "Make Mtp FFS allocations per session rather than per file\n\nWorkloads that send a large number of small files could\nrepeatedly allocate and free the buffer, causing fragmentation\nand eventually running out of allocable memory. Instead\nhave the allocation be once per MTP session, and retry\nwith smaller buffers if it fails initially.\n\nBug: 34741015\nBug: 34822471\nTest: Transfer files via MTP\nChange-Id: I775376076d3a0c26765b211100830ea0c08450ef\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"
    }
  ]
}
