)]}'
{
  "log": [
    {
      "commit": "ddb76c4644756b31be948d70aaa8ee541dd94999",
      "tree": "782d260d2da982941148be7c1a0a0780749cdfdc",
      "parents": [
        "8028a951c3aa74990907efb9376d1093d84084af"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 24 12:56:06 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Dec 08 11:21:30 2010 -0800"
      },
      "message": "Change assets to use 64-bit API\n\nThe asset system and supporting libraries were using off_t instead of\noff64_t to access files larger than 2GB (32-bit signed). This change\nreplaces all off_t with off64_t and lseek64.\n\nThere is a new utils/Compat.h added for Mac OS compatibility.\n\nAlso fixed some size-related compiler warnings.\n\nBug: 3205336\nChange-Id: I9097b3cb7a602e811fe52f245939d8975da55e9e\n"
    },
    {
      "commit": "0b224238781fdd6d11f76a30376bc1556e1d217a",
      "tree": "f5cb7107a1028d8902fe163ab706b8de02f570fa",
      "parents": [
        "703aae06c0925b19657877bb1872bb2f28874969"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 21 15:18:28 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 21 15:25:12 2010 -0700"
      },
      "message": "Initialized check in ZipFileRO::findEntryByName\n\nIf a ZipFileRO object is uninitialized, the hash table will not have\nbeen initialized. This condition wasn\u0027t checked in findEntryByName.\n\nBug: 3121109\nChange-Id: Ib696e0e7e0cb4dd0fb2e456d6a847e5e8f4fe14e\n"
    },
    {
      "commit": "5c4d4da4b74aff0a47a1da566ed30594e07661b3",
      "tree": "9066c3bc2bfe21d71bd791435c379ab093fbd2ba",
      "parents": [
        "3bb1044243ad38da35ccddc3e0d6d92d64fefe3e"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "raphael@google.com",
        "time": "Wed Oct 13 19:13:48 2010 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Wed Oct 13 21:55:15 2010 -0700"
      },
      "message": "MinGW/Cygwin requires open() in O_BINARY mode.\n\nAlsso printf %zd is not supported on MinGW/Cygwin.\n\nChange-Id: I03811dabb46e2b05dd1d8abcc0ff97b125c77d54\n"
    },
    {
      "commit": "259ec46e8e80a9f1d0b5c7a3865a498110a7f11b",
      "tree": "c2987b5a006425d41438227011f5b9b5a6febb15",
      "parents": [
        "106950f20bd352ed72ddf4490b2e19d305e36a74"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 04 14:20:14 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 04 15:17:19 2010 -0700"
      },
      "message": "Use pread() in ZipFileRO for Linux\n\nAssetManager instances are created by zygote and passed to all its\nchildren so that they don\u0027t have to individually open\nframeworks-res.apk. This creates a problem for determining the current\nfile offset when using lseek() on those files, because you can\u0027t\nguarantee the cross-process locking of a mutex. Luckily, Linux\nimplements pread() to get around this suckiness.\n\nThe problem is that only Linux implements this, so we have to keep the\nold locking for use on host builds with aapt and friends. aapt doesn\u0027t\nhave this same problem of sharing file descriptors across forked\nprocesses, so we can keep the local AutoMutex to protect accesses of\nthose files.\n\nChange-Id: Ibe9f11499a53fe345f50fbaea438815ec0fd363e\n"
    },
    {
      "commit": "6cb241f9024c6923715cf4e9eeaf803a7d258750",
      "tree": "455507c53e8e0d20dee11d1888cebd67ff947523",
      "parents": [
        "306137d97f40a4f807c54a75210343c9262360d1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 18:28:28 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 01 18:30:59 2010 -0700"
      },
      "message": "ZipFileRO: moar logging and wrap close\n\nThere is apparently still a race upon reading the entry Local File\nHeader that can\u0027t be tracked down, so move the LFH check inside the\nmutex-protected block so we can call lseek again to see where we are\nwhen we log an error.\n\nAlso, close() can fail so use TEMP_FAILURE_RETRY on it so we don\u0027t\nunwittingly leak file descriptors when Mean Mr. EINTR comes a-knocking.\n\nChange-Id: I753abad0bd882fe28f7281c406fa76f64393ef4c\n"
    },
    {
      "commit": "ba606d46f446003f068f27388707923e57e6bf26",
      "tree": "595ef1adfc96a68bbaaee2d9f73063c422f72392",
      "parents": [
        "6458fa0fce4bce7f3f9cccbacf9116f6f08abdf1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 24 09:11:28 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 24 09:11:28 2010 -0700"
      },
      "message": "Revert \"Revert \"Free created FileMap when uncompressing files\"\"\n\nThis revert reverts commit a19ef306bd0a257c67b50f5e0e669e9fe52b0889.\n"
    },
    {
      "commit": "6458fa0fce4bce7f3f9cccbacf9116f6f08abdf1",
      "tree": "e0ffbaae8f45022b61189e96f99faffc36cca3b4",
      "parents": [
        "7f459df9f94bc52e53d42894dea4702394fbad5c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 24 07:57:37 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 24 08:05:51 2010 -0700"
      },
      "message": "Add locking around ZIP seeking\n\nSince we switched to seeking to the LFH to verify its existence instead\nof a huge mmap of the file, we have to guarantee that another seek\ndoesn\u0027t happen before we finish our read on the LFH.\n\nChange-Id: If8135d9cb6f2f5cc4db734eafa4f6b5f6269c62a\n"
    },
    {
      "commit": "a19ef306bd0a257c67b50f5e0e669e9fe52b0889",
      "tree": "b8019dfbf7003ecb1e03fc9894a8f6e0fd140351",
      "parents": [
        "883bbb72284736b5601f9e96d1116969c51b75de"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 07 19:30:22 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 07 19:30:22 2010 -0700"
      },
      "message": "Revert \"Free created FileMap when uncompressing files\"\n\nThis reverts commit 52b8235238fb4d8cf141020cc1ae33880929dc3f.\n\nmunmap() on a region that overlaps something else (e.g, the ZIP Central\nDirectory in this case) unmaps those other regions as well making the\nZipFileRO class unhappy. Revert this for now until we can have FileMap\ndeal with this craziness.\n"
    },
    {
      "commit": "6329fdbded79bc659fedcd6b7051de8840a5de64",
      "tree": "2e91336275212b84f321ffd9148a711b7d47c911",
      "parents": [
        "1b400c7763e63505bafd496953764c3e97c2be5b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 27 12:47:32 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 27 12:47:34 2010 -0700"
      },
      "message": "Add debugging to ZipFileRO\n\nSome assets are failing to read from ZIP files. This adds a bit more\ndebugging to figure out what\u0027s going on.\n\nChange-Id: Id90e10546c54c85069a34478fbc28bc2523bda5d\n"
    },
    {
      "commit": "52b8235238fb4d8cf141020cc1ae33880929dc3f",
      "tree": "e388b060cd0cca28ebfe3697b6acf7cf4c5e0406",
      "parents": [
        "54d41379357d1d800d0a7bd7c5dc56111710482a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 19 18:39:58 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 19 18:39:58 2010 -0700"
      },
      "message": "Free created FileMap when uncompressing files\n\nChange-Id: Ice22c4ecb7c129b74bf60cd66ae79e110b017a4a\n"
    },
    {
      "commit": "2d817f75969cf3942ae3bcb9d194b9c095288dc7",
      "tree": "4e575bd35a1ba634708e84341d9a8b19b7f84c17",
      "parents": [
        "7d146197873e9bd5c1618a4ae10bcd13c821e1ce"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 04 16:30:40 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 04 16:53:56 2010 -0700"
      },
      "message": "Free scanBuf in ZipFileRO\n\nIn the success case, the 65kB scanBuf was not freed!\n\nAlso, get rid of annoying complaints about ssize_t from printf in error\ncases.\n\nChange-Id: If154ac19bf47637f898b4ec8c8e27c9a073a7b81\n"
    },
    {
      "commit": "68246dcec17c245a434dad70b778960dc5c84af1",
      "tree": "00aaacdfd3147c87c0d0d4761817a797e7af346a",
      "parents": [
        "dc3e26071399789c5966b9cd67180437f44eb9dd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Apr 22 18:28:29 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed May 12 05:07:48 2010 -0700"
      },
      "message": "ZipUtilsRO rewrite based on Dalvik Zip rewrite\n\nChange the way zip archives are handled.  This is necessary to deal with\nvery large (~1GB) APK files, for which our current approach of mapping\nthe entire file falls over.\n\nWe now do the classic scavenger hunt for the End Of Central Directory\nmagic on a buffer of data read from the file, instead of a memory-mapped\nsection.  We use what we find to create a map that covers the Central\nDirectory only.\n\nIf the caller is interested in unpacking the file contents, we have to\ndo an additional file read to discover the size of the Local File Header\nsection so we can skip past it.\n\nThis is based on Change I745fb15abb in the dalvik tree. Both\nimplementations share a common ancestry, but the cost of unifying them\noutweighs the benefits of wrapping C calls.\n\nChange-Id: Iddacb50fe913917c2845708a530872d65fdbe620\n"
    },
    {
      "commit": "8ae2335a3c93d0c00e998fdec18f64dfe43b94cb",
      "tree": "e4233d7c7c87d76cab05ebe98a6330f9b4731155",
      "parents": [
        "85dfec8c35d4e3216591bd2e534bbebd6338b969"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 13:53:57 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 13:53:57 2009 -0700"
      },
      "message": "rename a few files to camel-case, add copyright notices\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
