)]}'
{
  "log": [
    {
      "commit": "8ec71590ccfa122a4e9908cf3ebe6bd33482d0dd",
      "tree": "7a681c8d980935800b76f4bb2983272fd57d018b",
      "parents": [
        "c7f474434f3d50fea49dade42ded59fa87dee62d",
        "347894fe7518f9400f7542e1204d5d9bb8292c11"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 29 03:48:14 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 29 03:48:14 2017 +0000"
      },
      "message": "Merge \"Switch MtpFfsHandle to aio, add control functions.\" am: 82651d413e am: 68ce743ef9\nam: 347894fe75\n\nChange-Id: I8b9700a6eafe3f959cf00c48aa12f6ea11bd5fe7\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": "e67106418d7025ba28b90d8d32ceb2674ad043f1",
      "tree": "4d6ee7d347843b6c55b21c536b0941f784b2d0bc",
      "parents": [
        "2c8c51d4aeffc4d561a67b06d20fff67d9a5a5aa"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 14 19:33:15 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 14 19:34:11 2017 -0700"
      },
      "message": "heif: add new format type\n\nbug: 64077740\nChange-Id: I3329b911fde9fecd1c0f91a931d7883685e74c13\n"
    },
    {
      "commit": "fd86bc29d0bd59620e3c115e3b7426a163016a89",
      "tree": "a21628c32862cd1050fc69e9e3162d3791f8196f",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "Jaesung Chung",
        "email": "jaesung@google.com",
        "time": "Wed Dec 23 16:16:43 2015 +0100"
      },
      "committer": {
        "name": "Jaesung Chung",
        "email": "jaesung@google.com",
        "time": "Tue Jan 12 15:48:09 2016 +0900"
      },
      "message": "Add DNG format in MTP\n\nBug: 25871812\nChange-Id: I141d97cb8866edcaa7cab7fe04721e4386832d2b\n"
    },
    {
      "commit": "4fd9a8b9865addfedbcd84d5c9efea0f647086a0",
      "tree": "fcab096d691d3463873eba0c7c7a561416cee36b",
      "parents": [
        "6d5a0de5177bccc17d0eb1b69a8ed88d620884a5"
      ],
      "author": {
        "name": "Daichi Hirono",
        "email": "hirono@google.com",
        "time": "Thu Aug 20 15:13:40 2015 +0900"
      },
      "committer": {
        "name": "Daichi Hirono",
        "email": "hirono@google.com",
        "time": "Mon Aug 24 17:53:28 2015 +0900"
      },
      "message": "Use common implementation for getObject and importFile.\n\nPreviously the two functions have separate but similar implementation. ag/750097\nfixed a bug in importFile, but we have a same bug in getObject. Instead fixing\nthe bug separately, the CL adds a common function that can be used from both\ngetObject and importFile.\n\nBUG\u003d23264575\n\nChange-Id: I0bdc876ee9b11301ba4c445cc16556e9c951a8b4\n"
    },
    {
      "commit": "7d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0",
      "tree": "ca352d0fe548618385cef862a764ad33c4d0c1db",
      "parents": [
        "88a90ab588f11d1ffaf08e178232359c6d8d03eb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Apr 21 17:05:55 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 22 07:11:20 2011 -0700"
      },
      "message": "MTP: Add extended operations to support in-place editing of files\n\nMTP does not support partial writes of files (the entire file must be transferred at once).\nThis makes it impossible to implement a FUSE file system for MTP\nwith acceptable performance.\nTo fix this problem, this change adds extended MTP operations to allow\npartial writes to files:\n\nSendPartialObject - allows writing a subset of a file, or appending to the end of a file\n\nTruncateObject - allows changing the size of a file\n\nBeginEditObject - must be called before using SendPartialObject and TruncateObject\n\nEndEditObject - commits changes to a file after it has been edited with SendPartialObject or TruncateObject\n\nWe also add GetPartialObject64, which is the same as GetPartialObject\nbut has a 64 bit offset rather than 32.\n\nChange-Id: I4b110748b97ae05cdc8aab02ecdbbbeb263f7840\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "30adaaf9d6fd944c8f6a2c7a06774b019878c368",
      "tree": "45569049e40a03e0e725f472bcec6170d106ecb2",
      "parents": [
        "7fb4b427d5fca79c09d69b212ddca41539c215a2"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:21:27 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 15:19:16 2011 -0400"
      },
      "message": "MTP and media provider support for multiple storage devices:\n\n- MTP support for multiple storage units\n\n- Add storage_id column to media database for MTP storage ID\n\n- Add framework resource for defining mount points and user visible descriptions\nfor multiple volumes\n\n- Clean up locking in MtpServer JNI code\n\nChange-Id: Iffb66ed156ef5bc80b14228af78fbacee7734360\n"
    },
    {
      "commit": "a849440ca96e93f700d62c6e41d48905b4d405b6",
      "tree": "4df33307f6d972f4465c542390dd7ef3606eea58",
      "parents": [
        "39a5f1bbf88c124dc24b34d718a2d95f577b5bf1"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Feb 18 09:07:14 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Feb 22 13:57:23 2011 -0800"
      },
      "message": "MTP: Add support for dynamically adding and removing storage units\n\nBUG: 3402847\n\nChange-Id: I7da266061d949abcb6bb11c6faaa47b5e4a2a977\n"
    },
    {
      "commit": "b6da06e9dfb916da4b88e09e8a83e22ddae445b5",
      "tree": "304c854e47b34e5a22fa885627b4d3597a9d7550",
      "parents": [
        "2d71233de5450f1b128c8149fdbdf39b937f3cb8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Oct 14 18:03:25 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Nov 15 11:46:51 2010 -0500"
      },
      "message": "MTP: Partial implementation of the GetObjectPropList command\n\nIn this initial implementation we only support fetching one property at a time.\nSupport depth \u003d 0 (single object) or depth \u003d 1 (all objects in a directory)\nReimplemented GetObjectPropValue on top of GetObjectPropList, since the former\nis a special case of the latter.\n\nChange-Id: Ia76ee61741d6ee3902b5c5d9fc094cf86dfaf650\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "f83caa2ef9574652b5f43c637a7899a3cbf95aa1",
      "tree": "d246bfb1941015949caed5b397f8ae56eb31f193",
      "parents": [
        "1c9aed474a170c5177cafeb27bd658ccf7cda7fd"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 09 14:17:52 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 09 14:17:52 2010 -0400"
      },
      "message": "MTP: Fix some typos\n\nChange-Id: Ib31708c3a925e3c0ab8eea6922ab09e02b740936\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6a2736ba7bc19947a6c0bff4dca50595baa78b37",
      "tree": "335b7e5a3d0f30133e8b9bfe206bd6be8fb6abd0",
      "parents": [
        "3c982296642ebc76095aa5843419c00e1835c883"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jun 08 08:38:17 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jun 08 08:38:34 2010 -0700"
      },
      "message": "Include stdlib to fix sim build\n\nChange-Id: I7732461a9351f53f9ddadcfb26485f2e553e056b\n"
    },
    {
      "commit": "e13401bf532c7e4bf9ab82c7e9b13642838a927d",
      "tree": "ae254c1d646e17e42119e2052463dff46e4e0d14",
      "parents": [
        "335dd2be955607f2632eabc25045857f2cc8b674"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 19 15:12:14 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 19 15:16:38 2010 -0400"
      },
      "message": "PTP host: Implement getObjectHandles and getObjectInfo commands\n\nChange-Id: I3ff6e52237f400b4e50c534a1f964c80789bfe98\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "335dd2be955607f2632eabc25045857f2cc8b674",
      "tree": "59ad1930089fecf0bd70a8a9dc03db151b5d0028",
      "parents": [
        "fceef46513db3507b413f604cea89e3c7f352663"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "mike@spruce.(none)",
        "time": "Wed May 19 10:33:39 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 19 12:38:03 2010 -0400"
      },
      "message": "More work on PTP host support.\n\nChange-Id: Ifbd5bd5efa3cdb750ae1a2aae38181457554d34d\nSigned-off-by: Mike Lockwood \u003cmike@spruce.(none)\u003e\n"
    },
    {
      "commit": "fceef46513db3507b413f604cea89e3c7f352663",
      "tree": "3155d044d58c5af47cd59663ae7dbc242e5d3102",
      "parents": [
        "15727818edf0c9bd88303656ccb43fccd2515007"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 14 15:35:17 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 18 16:12:38 2010 -0400"
      },
      "message": "MTP: More prototyping work:\n\nNew media scanner test program\nMedia scanner now cleans up after files that no longer exist\nSeparate database table for audio files\nExtract metadata from audio files with libstagefright\n\nChange-Id: I2bd0fe877836c741658e72fcfeb89c11be0d9b41\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "16864bae0f51c32c456da2c43adf7a057c0c4882",
      "tree": "87eb11d62168084c9e63cdd2bf5fd5d35a573df7",
      "parents": [
        "328523627293790cbf485fa6095b38a5fdb2118e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 11 17:16:59 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 13 15:36:47 2010 -0400"
      },
      "message": "Checkpoint work on MTP and PTP investigation.\n\nThis change includes work in progress on a C++ library for both host and device\nMTP and PTP support.\nCurrently the makefile builds two test programs:\n\nmtptest - a command line test program that implements a small subset of device side MTP.\nRequires a kernel driver that has not been checked in yet.\n\nptptest - a host tool to test USB host support for detecting and communicating with\ndigital cameras over PTP.  Runs on Linux host.\n\nLater this will be reformulated as a native library that will be used in the media process.\n\nChange-Id: I81aab279975b600b59d99013ab97f9adf0b58da7\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    }
  ]
}
