)]}'
{
  "log": [
    {
      "commit": "64000788211f4c7e78c80a4a155390d1316e1176",
      "tree": "5cd67cc35f9df8ffcef27438430c6a087adfa69c",
      "parents": [
        "c0502468a29aa2f2b3457e0e08c4a5650a70488d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Apr 24 18:40:17 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Apr 25 17:40:33 2011 -0700"
      },
      "message": "MTP: Implement GetThumb command\n\nThis allows the PC to access thumbnails in JPEG files over MTP/PTP\n\nBug: 3219495\n\nChange-Id: I4964f8b4826dffb7f0f77464ec91bd2e97a2f007\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\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": "aa95240d9096f97aa2e2022fae8764a4386c8951",
      "tree": "ee23a4189c0152e2d5528887d5861566ef5ada6f",
      "parents": [
        "ccb3506ed1845121b94f4e27244e61a46eb19815"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 18 11:06:19 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 18 11:07:11 2011 -0800"
      },
      "message": "MTP: Fix problems with modification dates for folders and non-media files\n\nAlso removed an unnecessary parameter to MtpDatabase.endSendobject()\n\nBUG: 3352142\n\nChange-Id: I6fd812dcba4814956bc8bc1cbd6bd5c868197790\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "fd34626771a63d3a835863e1b4bf71dcb26e28d8",
      "tree": "7b6ae8f839589577830cd73f42449b32ca88a5a7",
      "parents": [
        "e52fda6714a209fa2117d970919324b56573f90f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Dec 08 16:08:01 2010 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Dec 08 16:09:37 2010 -0800"
      },
      "message": "MTP: Improve argument checking in SendObjectInfo\n\nIn particular, make sure the parent is a folder and make sure file\ndoes not already exist.\n\nChange-Id: Ifa870faba3285f03a92025d9e82f93fed78a761c\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "40ce1f262cc4edbc8b7c470830325466263acaec",
      "tree": "2dee6e562eb0cc55a9be497b94e2e0b7be849622",
      "parents": [
        "4070a15be31dd309446cdd400342628a8f0b1328"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Dec 01 18:46:23 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Dec 02 08:16:12 2010 -0500"
      },
      "message": "MTP: Add support for multiple properties in GetObjectPropList command\n\nChange-Id: Ib469a6c8141937aaa3e811345056195117abb4b2\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e1b8cf1cafb75ce1339b67eb1764e224a257c579",
      "tree": "3881a3df3eb3e1d6dd6eb37ae446cb76bf33cf18",
      "parents": [
        "d0e9487cd8b2b4ef63583ebedfdce30b3d098f15"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Nov 16 17:38:43 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Nov 17 16:43:24 2010 -0500"
      },
      "message": "MTP: Fixes to allow file transfers \u003e 4 gigabytes\n\nBUG: 3198248\n\nChange-Id: I6f11c79a19d7bdd63718a7370939124b1262d221\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\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": "6b3a9d15c8a2282c03f1df7d72a55b6800d4ecec",
      "tree": "18b3d54b2cfc9ef13e7c0d0adadb9b9c7e8e56b5",
      "parents": [
        "6865ddb29fc7e7a14104d73c65b71074502bb6c7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 31 16:25:12 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 31 16:25:12 2010 -0400"
      },
      "message": "MTP: Send an Intent after an MTP session that resulted in media database modifications\n\nChange-Id: Ib2796e9155350c67769502935a73cf98d6ae9c08\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8277cec96ffa55082962591bca1c55abbeec8c26",
      "tree": "660b89fc58bc6971d848b80be47fc9fa374d1aec",
      "parents": [
        "17c53d433cd83d6b7d77e80635d6d58e2f6f5b2e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 10 15:20:35 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Aug 25 18:42:22 2010 -0400"
      },
      "message": "MTP: work in progress on expanded property support\n\nGetObjectPropValue and SetObjectPropValue are disabled until I figure out\nwhy Windows doesn\u0027t like what I have done.\n\nChange-Id: I74e945ef3ea031f6d46f4ebaa8df815da0a5c3ed\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "782aef17c9921a3bf401a0432878df5031f2328b",
      "tree": "16990996aabf410d011704657f11bf3ec5cedd54",
      "parents": [
        "d7943b4cd2fa597581d1e29325adccc62dbf2939"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 10 07:37:50 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 10 09:00:30 2010 -0400"
      },
      "message": "MTP: Push queries for supported formats and properties up to Java.\n\nChange-Id: I4f117090340e3916afda3d194521a6092a672ddc\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "438344fba74ddd6b931ac733fa48643f27b63de3",
      "tree": "3dd0ed5763a0c332506d9f6684a2f0eefe38cc08",
      "parents": [
        "fd150a8e03cdd8462eafd68f4a4231aa52f0e5a1"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 03 15:30:09 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 03 15:36:22 2010 -0400"
      },
      "message": "MTP: Add support for syncing MTP playlists\n\nMTP playlists now correspond to playlists in the media provider\n(like those created by the Music app).\n\nChange-Id: I085cb3cff003037ad62f0e297fb0cfd3047cb3a2\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "343af4ef512869695456a91519e73ed3c3d82101",
      "tree": "5545225fc812b6f6ad0aee784238a80f0a80667b",
      "parents": [
        "9c04c4cc038f924d9cb98798e1c07fe6017e85d0"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 02 10:52:20 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 02 10:52:20 2010 -0400"
      },
      "message": "MTP: Implement GetNumObjects\n\nChange-Id: Iccc3a445f9a1eab7bb76eddd567c6a3a8f155b2b\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "9c04c4cc038f924d9cb98798e1c07fe6017e85d0",
      "tree": "9cf6d88d73c6c16ca7712820c5586a77de1c1d17",
      "parents": [
        "99b4de92430fe42f9d1493c8a4c3d27de89d3549"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 02 10:37:41 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Aug 02 10:37:41 2010 -0400"
      },
      "message": "Clean up MtpDatabase API.\n\nReturn MTP response codes instead of booleans for success or failure.\nRemove some unused code.\n\nChange-Id: I82ce80a4d7779233264e3caf139ebd0cece12f5c\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "4714b0766ecf48f09f39b4781a5c4deafc092d49",
      "tree": "c9d8f729e7b71a08b1d55cf1b167e0babe0a2acd",
      "parents": [
        "66e6c1c85c33194b1a6fc5077bd78b53a5fe9d03"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 12 08:49:01 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 12 14:01:22 2010 -0400"
      },
      "message": "Integrate host to device file transfer with the media provider.\n\nMTP file transfers happen in two stages.  The SendObjectInfo command sends\nsome information about the file and reserves an ObjectHandle for the new file.\nThe file transfer is then performed using the SendObject command.\n\nTo support this in the media provider, MtpDatabase.beginSendObject receives\nthe information from SendObjectInfo and creates an row for it in the MTP objects\ntable for the new file.  After the file transfer has completed, then\nMtpDatabase.endSendObject is called.  In endSendObject, we run the media scanner\non the new file, which will add a row to the images, audio, video\nor audio playlist table.\n\nTo avoid the media scanner creating a second row for the file in the MTP objects\ntable, we pass the ObjectHandle created in beginSendObject to the media scanner,\nwhich then passes it to the media provider via the content values when it\nperforms its insert.\n\nChange-Id: I1ebcc63d6bd4404b0d3a93c703a9d3c097381d3a\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "7f53a190463274096155704276f3002c1620a364",
      "tree": "074ae70636a0169c5b07e15d1c8d64b99e564eba",
      "parents": [
        "723a540125f48aaf8a00b0cc5ed98fbbc01e5f14"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 09 10:45:22 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 09 11:07:55 2010 -0400"
      },
      "message": "Remove some scafolding and test code that is no longer worth maintaining.\n\nChange-Id: I9ee62d2463d8df1246a84774e8ac7e674778279a\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "dda7e2b7378755637f188cca7c5ae854427a28f7",
      "tree": "52ccd14a2d8531bc1137d2ef1c8b38dce8622cfb",
      "parents": [
        "6506bd2be256cdebc69324714c5b26c767981046"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jul 03 14:40:05 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 08 16:02:16 2010 -0400"
      },
      "message": "MTP: remove separate audio table from prototype MTP database\n\nChange-Id: I5e4b49b741a0a3c6ddf5afcbb20a0d7c9515c8ce\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0250361b110267a139cc0865ff7d2f13b4d63bdf",
      "tree": "a2a5f01424d963c2b24d2fca8e2c59095ce404f8",
      "parents": [
        "fc20aab463f527ab3b0664986f0381a86b375884"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 02 14:03:31 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 02 14:14:06 2010 -0400"
      },
      "message": "MTP: Make MtpDatabase class abstract so we can have multiple implementations\n\nRename existing test database to MtpSqliteDatabase\nThis is the first step in transitioning to using the media provider database\n\nChange-Id: I5f36c854c6e76a79137c267b000a52ced803776c\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": "7850ef999740f214a1990a9c090d3f3865d435aa",
      "tree": "2320628e762e31b799c21f3a2d8177c271e47656",
      "parents": [
        "3c6d0f4c956494241c0c243b079f42049d832d7d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 14 10:10:36 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 14 10:10:36 2010 -0400"
      },
      "message": "Move MTP code to the android namespace\n\nChange-Id: I5da48038fd5e4cdeefaeba42cdc74eb588b3448d\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"
    }
  ]
}
