)]}'
{
  "log": [
    {
      "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": "854cb1745dd4abd06e6e8e6eef99f44faa54a219",
      "tree": "f73f7217c3556de262f0f7645b2275265320a4fb",
      "parents": [
        "94d15f9c0c7dc8a916ebfcf0f208adcc427df7f6"
      ],
      "author": {
        "name": "caozhiyuan",
        "email": "cao.zhiyuan@zte.com.cn",
        "time": "Wed Apr 26 16:52:30 2017 +0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Apr 27 11:35:32 2017 -0700"
      },
      "message": "mtp: Preserve last modified time of files.\n\nBug: 6325175\nTest: Transfer files\nChange-Id: I54af3205575f2bb83c732bb70907f60e0b785e91\nSigned-off-by: caozhiyuan \u003ccao.zhiyuan@zte.com.cn\u003e\n"
    },
    {
      "commit": "33587d19286015e7cef72273e473e7657e4656d8",
      "tree": "957cebf19d2ba5dcc3729064e3219d7183495379",
      "parents": [
        "6f2e6b252464097cff52f4a8f77cbad1001bfa3a"
      ],
      "author": {
        "name": "Manoj Gupta",
        "email": "manojgupta@google.com",
        "time": "Tue Apr 18 16:41:09 2017 -0700"
      },
      "committer": {
        "name": "Manoj Gupta",
        "email": "manojgupta@google.com",
        "time": "Tue Apr 18 16:41:09 2017 -0700"
      },
      "message": "Fix clang static analyzer warnings.\n\nFix the following warning:\nframeworks/av/media/mtp/MtpServer.cpp:1098:5: warning: Assigned value is\ngarbage or undefined [clang-analyzer-core.uninitialized.Assign]\n\nBUG:None\nTEST:Warnings fixed.\nChange-Id: If4e54ebd9b865e2e6cdc7666da0c9987a918df7c\n"
    },
    {
      "commit": "6dafeccb9c82e2b1328f36fbce1b26e7799b1100",
      "tree": "4d1fb7bf5b1aa258297bcd925e938d4268e96e64",
      "parents": [
        "1df67b1b3a1a06d4a74a091345bd74045fe5bb82"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 23 16:39:30 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Mar 08 00:18:25 2017 +0000"
      },
      "message": "Add support for MTP_RESET_DEVICE operation.\n\nSince we only support one open session, this\ncommand is the same as CLOSE_SESSION.\n\nTest: mtp-reset\nChange-Id: I2e95687a685af239c92473feb7c98419fcd55a1e\n"
    },
    {
      "commit": "8ddc352c3159afeb498b741138115e040d596e1d",
      "tree": "d58cc481c9984967f0d04236fc23e40d70ebfbf3",
      "parents": [
        "c21b625d06c5bee968ec6eb871320a5f0488de39"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Feb 21 15:58:09 2017 -0800"
      },
      "committer": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Feb 21 16:04:54 2017 -0800"
      },
      "message": "fix  warning: struct argument contains uninitialized data\n\nThis fixes the warning warning: Passed-by-value struct argument contains\nuninitialized data (e.g., field: \u0027command\u0027) [clang-analyzer-core.CallAndMessage]\n\nBug: None\nTest: The warning is gone.\nChange-Id: I3e06ff484bdec995c5125433acb5c3f14dc29dd9\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": "792298f63b1433ddd54ef7ab6283a5aeb3386e16",
      "tree": "f6c3e03aff99740c4cef1e63db92b56734978799",
      "parents": [
        "36a75eeb15e58726e8cbbfe9687975740133a11b"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Dec 21 11:20:22 2016 -0800"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Wed Dec 21 14:12:21 2016 -0800"
      },
      "message": "Make users of MtpServer provide DeviceInfo fields\n\nThis is part of weaning apps off accessing system identifiers via\nsystem properties API. Apps should use android.os.Build API instead.\n\nBug: 33700679\nTest: Enable MTP mode then check that mtp-detect output same as before this commit\nChange-Id: Ic21da7b8e976aaa1abc606a3cb4a1f2bd8698408\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"
    },
    {
      "commit": "7ea72dcdeb8efc90701bfcc1f439e591e8938d4c",
      "tree": "c9065f6ad92dc3fb5bdcde1fafcd12221b92ea1f",
      "parents": [
        "7b973eb89ea7088fe82f457cd10013bbe739bba4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 19 14:08:16 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 19 14:08:16 2016 -0700"
      },
      "message": "Don\u0027t process objects with empty name\n\nas this will result in a bad database entry.\n\nBug: 31526567\nChange-Id: I2e2a88ca98b189300fa2885b082746252f920bb4\n"
    },
    {
      "commit": "b3be006498f28f2630264135e88d266b540bcec3",
      "tree": "cf0e73cf3765cf3df953d22eae325747c412d7d3",
      "parents": [
        "78229d88678932244f7cbb6e52ad43c0d986a780"
      ],
      "author": {
        "name": "Daichi Hirono",
        "email": "hirono@google.com",
        "time": "Thu Feb 25 12:42:58 2016 +0900"
      },
      "committer": {
        "name": "Daichi Hirono",
        "email": "hirono@google.com",
        "time": "Fri Feb 26 12:56:57 2016 +0900"
      },
      "message": "Fix compiler warning in media/mtp.\n\nBUG\u003d27152673\n\nChange-Id: I0a5a7f2005bd76acf4d09353305b66af3fd29e4b\n"
    },
    {
      "commit": "07a9e548af0ed26d7354f3defaa8f18b2c5125f1",
      "tree": "bac808f24cd14d4bc55c885132a2966c487e6ac9",
      "parents": [
        "4889c07b795dac023a90df36f1cc7cffce8dbe0d"
      ],
      "author": {
        "name": "tao.pei",
        "email": "tao.pei@ck-telecom.com",
        "time": "Fri Jul 17 17:18:41 2015 +0800"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jul 21 10:51:48 2015 +0100"
      },
      "message": "Use errno correctly.\n\nAfter a failed write() or ioctl(), errno wasn\u0027t being checked until\nafter some other function calls that could also modify errno, thus\nchecking the wrong errno. Make sure to check it prior to doing anything\nelse that can modify it.\n\n[Preconditions]\n1.PC connects with phone(mtp).\n\n[Procedures]\n1.Copy a file from PC to phone.\n2.Cancel the copying.\n3.Recopy the file.\n\nChange-Id: Id772fca7ccb96d3f43bd4beb210bedd8d3ac17fa\n"
    },
    {
      "commit": "ea9f215a13f1a5e6455be91624a81a024641a26d",
      "tree": "d1d36a017f301f3f902da3ad9e5513178ed46281",
      "parents": [
        "c0c2366c180e06f03cbd1c1a4020bdc26f1002f7"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 23 10:55:25 2015 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 23 11:43:43 2015 -0800"
      },
      "message": "Fix MTP delete\n\nBug: 18836972\nChange-Id: Ia1caa9bfb0f2084af774745b5c01b260ab1f1b20\n"
    },
    {
      "commit": "e48cf5b8f823c30af93577c1e380d752ac69b871",
      "tree": "e4c28928702a1b75d4a67958bdccdca0d7e73c61",
      "parents": [
        "145cf5d885c238b690ab8240137934327b85c427"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Dec 17 12:22:36 2014 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Dec 17 12:22:36 2014 -0800"
      },
      "message": "Fix bounds checking for GetPartialObject command\n\nGetPartialObject has only 3 arguments, whereas the 64 bit version takes 4.\n\nBug: 18786282\nChange-Id: I4376962769ed0eae2f4991c2569244db22509204\n"
    },
    {
      "commit": "ab063847e6e893740749029a04cce1f6b7345ed5",
      "tree": "8b840e9152cfa638aa354a0379962a89914e0006",
      "parents": [
        "745602d87607521f4fe84c4f3a6388fbdb6a867c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Nov 12 14:20:06 2014 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Nov 12 16:08:37 2014 -0800"
      },
      "message": "MTP: add strict bounds checking for all incoming packets\n\nPreviously we did not sanity check incoming MTP packets,\nwhich could result in crashes due to reading off the edge of a packet.\nNow all MTP packet getter functions return a boolean result\n(true for OK, false for reading off the edge of the packet)\nand we now return errors for malformed packets.\n\nBug: 18113092\nChange-Id: Ic7623ee96f00652bdfb4f66acb16a93db5a1c105\n"
    },
    {
      "commit": "d239cb6e6898bdf2300e9038111727a9056c58ee",
      "tree": "fded306f76cc93e76d8354dab66cf55828b5ff0c",
      "parents": [
        "1ee7a03fafe9b1983465979729a630e5be3be4e1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jun 18 16:32:27 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jun 25 10:15:22 2014 -0700"
      },
      "message": "mtp: 64-bit compile warnings\n\nChange-Id: I9ebc270c990d2f83311cec8fef8f1d2842ebf291\n"
    },
    {
      "commit": "dcd89ecad321e2e052322fe2b1907d50d762b311",
      "tree": "942b233daab8844b0354f9e770257ea4e4f09f6c",
      "parents": [
        "c27f5259cf2c45ea6f0a021fc17578f32f6c2f7d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jun 24 10:49:08 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jun 24 11:11:29 2014 -0700"
      },
      "message": "Improve MTP error checking\n\nChange-Id: I1ab02ca0e99a1c284411fb368a773fb481d72ab2\n"
    },
    {
      "commit": "1b24cf32e02a1372e57b3a2a432bc0adfe496e6d",
      "tree": "220f4583ae1081df62fa5c861eed3e9e90a24515",
      "parents": [
        "4845b69f70ff457be8d8908f6eb61e2af67e00d3",
        "e80631aa1992ca50af679cd6a018c0ffda7f9b17"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 23:37:19 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 15 23:37:19 2014 +0000"
      },
      "message": "am e80631aa: am 839d11d1: Merge changes I0a744dc7,Id993a70d\n\n* commit \u0027e80631aa1992ca50af679cd6a018c0ffda7f9b17\u0027:\n  media: use size_t for integer iterator to Vector::size()\n  media: 64 bit compile issues\n"
    },
    {
      "commit": "3ab368e0810d894dcbc0971350c095049478a055",
      "tree": "a50053c391da8c02797158395f2ecfec83218855",
      "parents": [
        "db43b34c3428e480f8c4c66e7e88f4001f37f91e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 14:55:53 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 14:57:31 2014 -0700"
      },
      "message": "media: use size_t for integer iterator to Vector::size()\n\nChange-Id: I0a744dc7815a86a993df9b0623440be620ec8903\n"
    },
    {
      "commit": "db43b34c3428e480f8c4c66e7e88f4001f37f91e",
      "tree": "be194bf06c84b61f277a1c29c7499aa7862494a4",
      "parents": [
        "1df2557ac95a6d8a087fb15f6f842dc049f2759b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 04 14:47:28 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 13:18:22 2014 -0700"
      },
      "message": "media: 64 bit compile issues\n\n- change internal sized types to use stdint.h\n- printf \u0026 scanf formats\n- size_t or unsigned int for iterators\n\nChange-Id: Id993a70d8bf54c667c5d652b34179a2c727ed446\n"
    },
    {
      "commit": "0fa848d780cf990a2860637f40432d28594c85a3",
      "tree": "f2a205d5d14cffd5b164fb8cedc65d6dad59a915",
      "parents": [
        "3a06522fd0e74934acb4bacaf1e90209bc7e9aa8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Mar 07 13:29:59 2014 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Mar 11 15:06:39 2014 -0700"
      },
      "message": "MTP: Add support for device property changed events\n\nAlso fixed bug in MtpProperty::write() for device properties\n\nBug: 7342482\nChange-Id: If0099095d101409d131564e55b1939895c69c202\n"
    },
    {
      "commit": "cba6b7dbe6e6d89c00021a0954d8bf60eacefdfa",
      "tree": "579a9b99765f8852599cfb23a5cbba4a77002431",
      "parents": [
        "d49e54289654ab7d7bda03f019ca4421fe303b05"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:51:35 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:54:40 2013 -0700"
      },
      "message": "MTP: Implement date created field in GetObjectInfo\n\nBug: 8293874\nChange-Id: I6b74fe73362bd4fac34ca8a54e127ae91f82aef9\n"
    },
    {
      "commit": "ec24fa46443634cd29627182c5812ccf43682692",
      "tree": "8cfb16d4a29ce8dd8a97f8a07aadb5c074365be6",
      "parents": [
        "f92300875743fca7e264c731a4e2fe9860cd1b10"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:51:35 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:54:40 2013 -0700"
      },
      "message": "MTP: Implement date created field in GetObjectInfo\n\nBug: 8293874\nChange-Id: I6b74fe73362bd4fac34ca8a54e127ae91f82aef9\n"
    },
    {
      "commit": "38fb629c46efb74517332696d5d117f4466fa3f0",
      "tree": "27a6883c8003ea76befc4b57c6986f145f983f96",
      "parents": [
        "1cca13c79ff7e3f36a2fc6e564b60f5e57d00919"
      ],
      "author": {
        "name": "Mike Lockwoood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 08 13:25:01 2013 -0800"
      },
      "committer": {
        "name": "Mike Lockwoood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 08 13:25:01 2013 -0800"
      },
      "message": "MTP: Write initial data to correct file offset in SendPartialObject\n\nChange-Id: I84288aeda3e65e6e6487f11d32a72910cd16cff2\n"
    },
    {
      "commit": "0a694951c00f2135c8968fd2205f71899997a8ad",
      "tree": "dfad37d49a5599e9e740a9563bb6310f2874e78e",
      "parents": [
        "92b2bbbb79eb89fe4262c354e8d183c2ba325111"
      ],
      "author": {
        "name": "Mike Lockwoood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 08 13:25:01 2013 -0800"
      },
      "committer": {
        "name": "Mike Lockwoood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 08 13:25:01 2013 -0800"
      },
      "message": "MTP: Write initial data to correct file offset in SendPartialObject\n\nChange-Id: I84288aeda3e65e6e6487f11d32a72910cd16cff2\n"
    },
    {
      "commit": "af8e8aa1ada2948972555592570ec9ad90cbf372",
      "tree": "c573478e9f30dfe62dab9674fa4c04170f4b9626",
      "parents": [
        "0dc6d5ef45c0721c76f0e55354ff80371d795e5d"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 26 13:32:23 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 26 13:53:00 2012 -0700"
      },
      "message": "Add mode when open(O_CREAT) is used.\n\nWhen creating a new file using open(..., O_CREAT), it is an error\nto fail to specify a creation mode. If a mode is not specified, a\nrandom stack provided value is used as the \"mode\".\n\nThis will become a compile error in a future Android change.\n\nChange-Id: I36a3d67d294a915c1f79632a1b0ba45edd1214b1\n"
    },
    {
      "commit": "29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47",
      "tree": "3bdafe4b02fe36f6ee29c3170f0b0d2799bebf86",
      "parents": [
        "d709ca9c6a0fa1c8f40cbe624a119398643c5087"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "b8a805261bf0282e992d3608035e47d05a898710",
      "tree": "7a43908b8e936ac1f30eef0542b40d667c47aa23",
      "parents": [
        "94023fa6744e24f26f0aba1699ec278649bd66df"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 03 22:38:27 2012 +0000"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298\n"
    },
    {
      "commit": "a9a46c1f53129be8fe1f3f0a6ea868d7b4c8f8f7",
      "tree": "27c6aed77ee974054e91426386a8daa23ca4bab6",
      "parents": [
        "44c190826d72589f5c9e13d69e32673bd8bd7c64"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Dec 01 16:58:41 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Dec 02 11:08:39 2011 -0500"
      },
      "message": "MTP: Add support for restricting PTP to only certain subdirectories of the storage\n\nBug: 5527220\n\nChange-Id: If68e7481617ecb62abd24e2d89e6b7dfdf95ba2b\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "3856b090cd04ba5dd4a59a12430ed724d5995909",
      "tree": "a24e4c98fa6049fd8085826be838000f9a67e39b",
      "parents": [
        "1d2acaffde56ad79e6e96f228d7857863462397c"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 26 09:57:54 2011 +0100"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/143865\n\nBug: 5449033\nChange-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a\n"
    },
    {
      "commit": "0cc79c66329b9ffa7d7bdfafa5d245a11fd3660d",
      "tree": "4a958a8de02017bb7a7e8d057bab0101a77837c5",
      "parents": [
        "bbdb412041a1e593c95c29c84d5ddbb8906787e4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Oct 13 11:38:20 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Oct 13 11:38:20 2011 -0400"
      },
      "message": "MtpServer: Pass 0xFFFFFFFF for file size when receiving files \u003e\u003d 4GB in size\n\nBug: 5432487\n\nChange-Id: Ie86e72d9d85476941eab6a9d271948b8fdde6926\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "ef441d965504dbf31c5db690e5b34fcdcecd92ff",
      "tree": "4c4bd3804dffe1e472c94e1d2d42a3ece615cde6",
      "parents": [
        "e0b5bb23f0a26d248275d203885b820659da7320"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 14 21:00:02 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Jul 17 15:53:53 2011 -0400"
      },
      "message": "MTP: Use a single packet for the data phase\n\ninstead of sending 12 byte header in a separate packet.\nPTP on the Mac is much happier with this approach.\n\nChange-Id: I7d1ca498f6346afd88876d24332187b466fc469c\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "dec7388c3edf09eaaccaaf57f6301e716319a34d",
      "tree": "d4fb2635f12fdd13e2feba28f1c5b15fa9e39fc3",
      "parents": [
        "8deb152167af1dbf39d532737f105368ee8973f5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 11 15:04:38 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 13 09:44:42 2011 -0400"
      },
      "message": "MTP: Clean up MtpServer initialization and threading:\n\nMove thread from native to Java code\nRemove the stop() method (the thread will exit on its own)\n\nChange-Id: Ib897c3630162f82669a4ee8c187e8172da50b29d\n"
    },
    {
      "commit": "9b88b72ee2c3fd01fb46e77b7e6d80f3bd52e958",
      "tree": "f14b7d39ef4012695277173c2c1fb35837af5ea8",
      "parents": [
        "bca946c7a54343f1517347bc74d3fff4e6303d3b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 11 09:18:03 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 11 13:40:02 2011 -0400"
      },
      "message": "MTP: Return error if user tries to copy a file \u003e\u003d 4GB to a FAT32 file system\n\nBug: 4561836\n\nChange-Id: I2bffb93b032038f6c220c24c752ccd7ca66c23a0\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3d1d7767afc7c488197ec40a22739159c5110721",
      "tree": "f890c639ba31cbd98b05e69e504df1d4f8b924e6",
      "parents": [
        "c0fc64242a504a6c72670b0db2d648d2a3e208d2"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 21 08:27:06 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 21 08:27:06 2011 -0400"
      },
      "message": "MTP: Add support for PTP variant of GetDeviceInfo result.\n\nChange-Id: I09f86fda768b7697665e401adb9516588859bf59\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "dc3185e3e27b05e18c4ac34432a25a0c279ff351",
      "tree": "341902c6357c301f74c5b30f50ad6db8af01f299",
      "parents": [
        "daeba2d6b9df5252afacec835a23340e5d9910ec"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jun 17 13:44:24 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jun 17 19:49:05 2011 -0400"
      },
      "message": "MTP: Fix some problems with GetObjectHandles and GetNumObjects commands\n\nThese calls did not correctly handle some variants of the arguments,\nwhich showed up when running in PTP mode.\n\nChange-Id: Iedbaefebfa39111c8bcaee7c6cc3820a65d6c98f\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "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": "c3f16e5620c090aeb75c0836572a8b913a4ef864",
      "tree": "a888617667df3f7deb35d7123f8963ef23e9ed96",
      "parents": [
        "c5182e31b23dc381d21ef43b7f7d682ffc54bd79"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Apr 25 12:56:21 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Apr 25 13:36:11 2011 -0700"
      },
      "message": "MTP: Fix file descriptor leak in file editing extensions\n\nChange-Id: I6d0de5efe705d8060bbfd526c6880dc995a3aa30\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": "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": "8d08c5aeee05425357b6603a22fa73fd6e095a47",
      "tree": "e3f9b8aef2c2f1b1564d177b1b828edcf15e691b",
      "parents": [
        "1331f07d4400a25b9c8d2d4a1a913150ae05c5f7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jan 31 16:44:44 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jan 31 17:11:24 2011 -0500"
      },
      "message": "MTP: Use ro.product.manufacturer system property value for MTP manufacturer name\n\nPreviously it was hard coded to \"Google, Inc.\"\n\nBUG: 3405965\n\nChange-Id: I5f962d474814c22e990c39b501c0f01da9e8dc6d\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "59d6ae5e339547fea8a350c1d855b52d5ac4f62c",
      "tree": "7fe582634b7de85fc686be802f7dfe39be1a6d32",
      "parents": [
        "b408222bd9479c291874b607acae1425d6154fe7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jan 21 21:00:54 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jan 21 21:00:54 2011 -0800"
      },
      "message": "Remove MTP related log spam\n\nChange-Id: I9de1792cbeec07fa5ab42ff9a10813f0c3d30fc1\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": "feafefb1ed8d86100161f521fc7a44b819bd9529",
      "tree": "446c650807f50449522c7c615f95b9b265ba6d07",
      "parents": [
        "985f838934510983d8a887461e98dca60a6e858f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Dec 13 21:50:09 2010 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Dec 13 21:50:09 2010 -0800"
      },
      "message": "MTP: check for replacing existing files via the database instead of the file system\n\nChange-Id: I283dab48f24d2836e48fab8e49764a9cdf13de55\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "20c3be0e0394e1340c036685eb1edb8f6ef5a2ac",
      "tree": "8f3ae6045924fe4692042cb0cd61feb195a8ddb3",
      "parents": [
        "8d45a37ff076814db39471f15d309567605b3416"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Dec 12 12:17:43 2010 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Dec 12 12:17:43 2010 -0800"
      },
      "message": "MTP: Add support for reserve storage setting to avoid low storage situations.\n\nSet resource config_mtpReserveSpaceMegabytes to number of megabytes to reserve.\nIf MTP has dedicated storage this value should be zero, but if MTP is\nsharing storage with the rest of the system, set this to a positive value\nto ensure that MTP activity does not result in the storage being\ntoo close to full.\n\nBUG: 3250924\n\nChange-Id: I881c87240da268bad1ea1b99ad03673ab85ffdbf\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": "2e09e289b7e136481e9215bb61ed47cee5d9919b",
      "tree": "d0b7c4c456984d0fd2bf1be2d1427e314db0135f",
      "parents": [
        "ddc4497c17b23d4a9828f977d5ac11ee36059da9"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Dec 07 10:51:20 2010 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Dec 07 10:51:20 2010 -0800"
      },
      "message": "MTP: Use correct return type for getSupportedObjectProperties\n\nChange-Id: I6d5bd63fecaa3384dfa1b97dbc0d89ea5668981f\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": "f05ff073495b0bb3e49859aee5b54d3e25088985",
      "tree": "97e888378fd74effefc3eb005d16cdd876f28cb3",
      "parents": [
        "d81ce3cf2e6479915658a0829eced062e3655320"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Nov 23 18:45:25 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Nov 23 18:45:25 2010 -0500"
      },
      "message": "MTP: Fix typo in MtpServer::doGetObjectPropList\n\nChange-Id: Ia5fec45a238c49a6797a4ac55457ddb5d6521408\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d81ce3cf2e6479915658a0829eced062e3655320",
      "tree": "f174670a23626ba7643eb561566a1490fb1ffaa3",
      "parents": [
        "b892d0e5556ed6ded3e0548f75ab16fc2e3d92c3"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Nov 23 09:08:01 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Nov 23 18:45:01 2010 -0500"
      },
      "message": "MTP: Implement GetPartialObject command\n\nAllows host to read partial contents of files on the device\n\nChange-Id: I74927f7394224d674e1d150a4b72a51d9358459b\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": "f5b2ff2a636d1a98e959553376ebffa3a2749843",
      "tree": "d913db83f6dd591d370dbfb53bfa7ded6b08135a",
      "parents": [
        "ba529e486dde15fe75ea1b48570f9d60a4cf3c48"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Nov 17 15:42:09 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Nov 17 15:42:09 2010 -0500"
      },
      "message": "MTP: Set correct format for abstract audio playlists\n\nFixes a bad interaction with the media scanner that could result in\nplaylists getting duplicated or deleted after rebooting.\n\nBUG: 3175649\n\nChange-Id: I970234e86b24ac17d069aca085683d988abc7881\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": "7ce05cf6009a2fbbceb3d2c0ff639473d0b7d6a9",
      "tree": "c812a6b5ed5daf0a9e4f87f70b7fd0c99ee960e2",
      "parents": [
        "5f0cb5c62553125715dbbb171f0b81e4b7c6d6ac"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Nov 11 11:22:32 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Nov 11 11:22:32 2010 -0500"
      },
      "message": "MTP: Add missing call to closedir() in recursive delete code\n\nBUG: 3185660\n\nChange-Id: I3744d2cb193829d20a689af2aea50e8516779631\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "23d2071ab44d7b5e3b16e8a81e11884faf01092f",
      "tree": "a726f3622522b474b0567d956007cc4d93f756d2",
      "parents": [
        "250e051e564e3b6f5a88314379d5e145a2b5615f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 11 17:31:44 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Oct 11 17:33:52 2010 -0400"
      },
      "message": "MTP: Include size of 12 byte header in packet size for GetObject data packet\n\nFixes file transfer from device to host with libmtp.\n\nChange-Id: Ifb304c1f106e94b2710ee5c11816b83cf5f25478\nSigned-off-by: Mike Lockwood \u003clockwood@google.com\u003e\n"
    },
    {
      "commit": "677f5700c5ea35256079ef14e06b7382e438d860",
      "tree": "3f86cebc7e8d2fada56ae41ba0ec3d62ebe1d378",
      "parents": [
        "a881b44cc7e18bdfa03251bc65b7d0903a1b1efc"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 23 23:04:28 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 23 23:04:28 2010 -0400"
      },
      "message": "MTP: Reenable GetObjectPropValue and SetObjectPropValue\n\nWindows no longer chokes now that we implement the minimum set of properties\n\nBUG: 2869730\n\nChange-Id: Ie8bd9107610b9b38f060ad8a2f05334a3b4aff9b\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a881b44cc7e18bdfa03251bc65b7d0903a1b1efc",
      "tree": "0b29a2c318c64602219cfbe38f50a768796d1434",
      "parents": [
        "4620df7b92a85074a2fcdca3fc6f3a3d432bffb8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 23 22:32:05 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 23 22:32:05 2010 -0400"
      },
      "message": "MTP: Minor debug output cleanup\n\nChange-Id: I1065179aa64f43c7d8067ccda249319a016840ab\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d32114950770a6e9361e0869a41e5a03a7acab42",
      "tree": "dd51c95ed04cc9eb701e5ad8db5b954004f65bd6",
      "parents": [
        "c59ad085c9737e8d56328732be6864de302acae9"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Sep 13 17:15:58 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 14 10:37:27 2010 -0400"
      },
      "message": "MTP: Delete all files and subdirectories when deleting directories.\n\nChildren are now recursively deleted from the database and filesystem.\n\nChange-Id: Ifd9b48cbc34b84b8f5073f2493dfe9735fae5492\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e3e76c456baee122de6715ae280130abaddc906c",
      "tree": "b3ba77dcd8e8f71e8607471e73e3ea560426be55",
      "parents": [
        "6faf0cd82346b23075d1f8b9f70f7af43f2c5f04"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 02 14:57:30 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Sep 02 14:59:26 2010 -0400"
      },
      "message": "MTP: Implement support for getting/setting device properties\n\nAdded support for the \"device friendly name\" and \"synchonization partner\"\nproperties, which are required by Microsoft.\n\nChange-Id: Ic0443333d75f7d98a2d902a790b9d505a56d4eef\nSigned-off-by: Mike Lockwood \u003clockwood@android.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": "bf9b2052d207f8f2a23470f1c4dfe464f430f387",
      "tree": "7167f058c3140eb72d9fc79103d9001aefa813ea",
      "parents": [
        "782aef17c9921a3bf401a0432878df5031f2328b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 10 15:11:32 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Aug 10 15:11:32 2010 -0400"
      },
      "message": "MTP: Fix wrong delete operator from previous change.\n\nChange-Id: I64e8fdc610495f21060727b6bed42d1584833405\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": "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": "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": "73ecd23cc2ebadb8e1fae1cc21ac559524c6b2bb",
      "tree": "9b12b725e9c27a9fb079d5f91dbe930563934b68",
      "parents": [
        "f913c25c713cbe0fe16dd1cc17bdfaba6b77070f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 19 14:29:58 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 19 14:29:58 2010 -0400"
      },
      "message": "MTP: Only send events to host if we have an open session.\n\nChange-Id: I7b2d0c88c2d2ae0490247703d0fb1b862154db92\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8065e2056073808716db32136d7acfd50eeab924",
      "tree": "8ff0338506f04ca87014f1960f45945841f3ce5f",
      "parents": [
        "c0b9c87b2581af430e143822918935d15ac69911"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 15 13:36:52 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 15 13:37:43 2010 -0400"
      },
      "message": "Remove our copy of the f_mtp.h kernel header, now that it is in bionic.\n\nChange-Id: I2b5e72bf25b3525ace4b919c6e8b6bd6750f6dfa\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "873871f3e75831bcda6c3f75bb4d53355ca5c53a",
      "tree": "e7fcffe64b2104cba18df6f35cf736cee63eb2d3",
      "parents": [
        "4714b0766ecf48f09f39b4781a5c4deafc092d49"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jul 12 18:54:16 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jul 13 20:04:22 2010 -0400"
      },
      "message": "MTP: Add support for sending events to the host when objects are added and removed\n\nChange-Id: Ia1d5232b919c644c670ff9ca651eca92b3f9ad42\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": "1865a5ddcfe7b0e8dc211419aea1094b1491a5fd",
      "tree": "7d5cf198bb5802a4e6faf0f58bccf1ddecd62ce7",
      "parents": [
        "dda7e2b7378755637f188cca7c5ae854427a28f7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jul 03 00:44:05 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 08 16:21:09 2010 -0400"
      },
      "message": "MTP: Use media provider database to implement MTP device support.\n\nUses a new \"MTP objects\" table in the media provider to support basic\nenumeration of the external storage file system.\nSupport for accessing audio, video and image metadata in the existing\nmedia provider tables will be added in a later commit.\n\nThe C++ MtpDatabase class is now abstract, to support a proxy subclass that\ncalls through JNI to the Java MtpDatabase class in the media provider.\n\nChange-Id: I90f0db5f3acc5d35ae78c27a8507edff16d14305\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": "8e2a280ab7f98bf00ff2651f1f93c8f8bd46c08d",
      "tree": "d8135f979208f4b6611273fbba70624c0ea40557",
      "parents": [
        "0250361b110267a139cc0865ff7d2f13b4d63bdf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 02 15:15:07 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jul 02 15:19:32 2010 -0400"
      },
      "message": "MTP: Fix ownership and file permissions for transferred files and folders\n\nAll new files and folders are created with group sdcard_rw\nPermissions for new files are 0664 and directories 0775\n\nChange-Id: I6d508231150f687e2e529112fd47f10e30fa594f\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": "21ef7d0e70c5ad599bc2602cb484f8cd647055ca",
      "tree": "3e7af9cd07506b7bf52e2d3ad1ed9ada9f6b0dd6",
      "parents": [
        "05a53a389852a9e52b816c087465f4e0c5009613"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 30 17:00:35 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 30 17:02:07 2010 -0400"
      },
      "message": "MTP: Implement GetObjectPropDesc\n\nChange-Id: I283651257254fc9cd9d93eab4605c5e33d3db93e\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b14e588bec4d5e39e61b020b5b575f2ce555d316",
      "tree": "f4d08eaa3bd5832b3bfebbdb9d19c8fcde45b54e",
      "parents": [
        "703f87c890591e3a20ba0da237233c36a7c47bc7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 29 18:11:52 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 30 13:59:32 2010 -0400"
      },
      "message": "MTP: replace printfs with logcat\n\nChange-Id: I2c30921098e2dc049dc5fc1e0a548ead33c363e0\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c6588763ddc20541688e426a24b1b070527c051f",
      "tree": "1dd6384635a2b54dd4796952cf7e728fa570fd30",
      "parents": [
        "78c1e5ecb7a1c6474485c94276fb6c2bffebd2dc"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 22 15:03:53 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 22 16:38:01 2010 -0400"
      },
      "message": "MTP: Use a fd instead of a file path in file transfer ioctls.\n\nThis restricts the driver to the client\u0027s permissions when copying files\nto avoid potential security problems.\n\nChange-Id: I9b3151168d334fe4374875804d4ba82bef44db3b\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c42aa12f73edf79bc9cb0dbf6b74a7f1af11c683",
      "tree": "9b26a91ad6f84656e9faf42206c312ed8e32f843",
      "parents": [
        "a177ae14b8cd9c1172cd166094cbffb2485325c2"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 14 17:58:08 2010 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 14 17:59:46 2010 -0700"
      },
      "message": "MTP device: Read manufacturer name and serial number from system properties.\n\nChange-Id: I8d1ad79f38aaaa50fa8899e6b614096af95fdf39\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "916076c6d84dac9b104fbdf94af5dcd7bce669fd",
      "tree": "186be596fb3d913040464aa5398edbdc46e2b820",
      "parents": [
        "5ed68d29a140e14c8d46980fa844548eb33b1e87"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jun 04 09:49:21 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jun 04 09:49:21 2010 -0400"
      },
      "message": "MTP: Add support for host cancellation of file transfers.\n\nChange-Id: I72df423f8017286e41adae525e6fbcb6b8440687\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\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": "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"
    }
  ]
}
