)]}'
{
  "log": [
    {
      "commit": "ca5cc4e8136f71a448f41f68ea78be19735624d4",
      "tree": "b1d970ba90565be41b73c6d9bb51b382e081ca4b",
      "parents": [
        "1b96fe4a784c96cdeac6e704f196f1dcb48b3e9e"
      ],
      "author": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Thu Jul 18 12:47:56 2019 -0700"
      },
      "committer": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Thu Jul 18 12:47:56 2019 -0700"
      },
      "message": "MTP: free leaked DIR after copyRecursive\n\nTest: mmm -j\nTest: atest mtp_ffs_handle_test\nChange-Id: I572c8c0e982e89ed6f21f181e503b11e5439be59\n"
    },
    {
      "commit": "dc148de23ea1437f0e9f9794c8977ad6cf70f361",
      "tree": "88fe154c746933e85ba24f1d3babd9851a3a3e28",
      "parents": [
        "bf2e1e8debbe1e91549b2defe2345d1a1876a8df"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 14 12:07:16 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 14 19:28:20 2018 +0000"
      },
      "message": "Call access(2) on all files/dirs modified by Mtp\n\nExternal sdcards are accessed through /mnt/media_rw,\nso access() each touched file for sdcardfs to update\nits metadata. This is done for all created/deleted/renamed\nfolders and files.\n\nBug: 77849654\nTest: use mtp with emulated sdcard\nChange-Id: Ic8cef9dc90e9cbc9783ff45a87c481833f910665\n"
    },
    {
      "commit": "e5aa05d12a48f7c5766a80d5bd2dc8cd068c1bcd",
      "tree": "7dd4c8dfd8429a55c5aa56bc8d55a3e7139bacee",
      "parents": [
        "e5b50aeedba87b11b278105cc42343691a5b9e2f"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Oct 13 12:14:42 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Dec 15 00:08:44 2017 +0000"
      },
      "message": "MtpServer changes for MtpStorageManager\n\nMoveObject and DeleteObject require\nbegin() and end() methods in order to\nmaintain database consistency. delete() now\nhas to return errors.\n\nAllow sendObject after sendObjectInfo since\nthe spec allows this.\n\nTest: See tests for main MtpStorageManager change\nBug: 63143623\nChange-Id: Ied105e884cafd36e861521dcc59740e23b330f5f\n"
    },
    {
      "commit": "e242f12c0f33518e0760fabfdad8cb93a1c8a2fb",
      "tree": "c12c22ff3550202df1af4a0816f6ee3c489f3938",
      "parents": [
        "49d0502f1a227a510df65ec74f14eef91185dc6a"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 16 14:54:08 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Oct 19 17:55:26 2017 +0000"
      },
      "message": "Account for folders in copy and move.\n\nCopy and move will use mkdir() if target\nis a folder, and copyFile() if target is a file.\n\nMove will recursively copy contents if moving\nbetween different storages. Move will also\nchange the storageId.\n\nBug: 67028892\nTest: Copy and move folders on win 10\nChange-Id: If114ef74b9d8668cf66d45953d9ea8b17bc11ae8\n"
    },
    {
      "commit": "708b3e0b72189d2d2e932459bd0391f98c9ff9a2",
      "tree": "fc7856849cca6731143755c464df310e817d78f7",
      "parents": [
        "0d51135defebfe9bf0d790216ee4668c96041224"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Sep 26 17:53:39 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 02 11:56:25 2017 -0700"
      },
      "message": "Add implementations for move and copy operations.\n\nPreviously, we didn\u0027t have these implemented so the\nhost OS would emulate them by pulling the object\nand pushing it to a new location. This can result\nin data being lost and it is slow.\n\nWith the operations implemented, moving objects\non the same storage is instantaneous since the data\ndoesn\u0027t need to move. Moving objects between storages\nand copying objects are both much faster since no\ndata has to be moved through USB.\n\nBug: 66679910\nTest: Move and copy objects, verify they are correct\nChange-Id: I38c69eee41d883af46fa2f1b9e091193b2847e8c\n"
    },
    {
      "commit": "d4b473884617987e02155cd1aae9e573e2f79a58",
      "tree": "c084454a0dc822b7ac2d4146da03671183815442",
      "parents": [
        "4472c761cce96465df078f7f8ab9e25b8e6c3a60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 05 17:05:47 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 06 08:49:26 2016 -0800"
      },
      "message": "Clean up time zone handling in MtpUtils::parseDateTime.\n\nThe intent here is supposed to be to use local time (which mktime(3) does)\nunless the string ends \u0027Z\u0027 in which case we\u0027re supposed to use UTC. The UTC\nequivalent of mktime(3) is timegm(3).\n\nThis code has come to my attention in two ways. Externally it was pointed\nout that the localtime_r(3) was accessing uninitialized memory leading to\nunpredicatable results. Internally, this is the only caller of the\nnon-standard mktime_tz --- ironically using it in a way that -- apart from\nthe flakiness caused by the uninitialized variable -- would make it behave\nlike the standard mktime(3).\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d185159\nBug: http://b/15765976\nChange-Id: I5f015727c4c08a139ef478fafba5811a9758d5df\n"
    },
    {
      "commit": "37b216c75ca5e38f1a56a86a95b04ff6b4e71ae7",
      "tree": "9fe38c8ba296b41db0ad080608f60bde289cb740",
      "parents": [
        "81e50d0c782cc18eab4ef40ecd6c7f36df50fea5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 24 15:42:39 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 24 15:51:46 2014 -0700"
      },
      "message": "Remove last user of \u003ccutils/tztime.h\u003e.\n\nBug: 15765976\n\n(cherry picked from commit 56687f7cbf0a3d7909830fc1390a98c713a05e6f)\n\nChange-Id: Iacb225584c3acdbb512f46b638a215b75b32cdcb\n"
    },
    {
      "commit": "ea1db0a716cc937af5371153b959610baa2c6d52",
      "tree": "62bfc5c4b552e73d794cff0b8b27dd8274b46a77",
      "parents": [
        "2494373e91399a97ad405f4e42dff6543cc296c7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jan 26 14:41:45 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jan 26 15:11:48 2011 -0800"
      },
      "message": "MTP: Fix month off by one error in date parsing and formatting code\n\nBUG: 3379100\n\nChange-Id: Ib386f0def9d611529ce0528b8159cef48df9cd85\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": "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": "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"
    }
  ]
}
