)]}'
{
  "log": [
    {
      "commit": "42eea270a0a2bc54f454312817c41ac357e3a884",
      "tree": "36a4b3f3f658c40be17f3ce7c4bc3b6836bc817a",
      "parents": [
        "8d47bc97e642cd0d0caf31d09efe05d8dc233f27"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 15 17:01:39 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 16 14:11:30 2015 -0800"
      },
      "message": "Process base APK\n\nThe base APK may have resources with configurations that compete\nagainst some splits. The base APK must be involved in the selection\nof splits.\n\nBug:18982001\nChange-Id: Ieb29b5a36cf2c68e7831484d98a9fd275acd97e8\n"
    },
    {
      "commit": "43a4a8c777fbb8f71540ac7fbe82674489ef557b",
      "tree": "ab4f4b3a27124b244aa8b3cbb013c674da07731d",
      "parents": [
        "a2fa3d219bc148c196b0eb3cf7b3b1bd453e830b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jan 08 18:42:33 2015 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jan 14 16:36:30 2015 -0800"
      },
      "message": "Fix redundant file backups\n\nWe\u0027d observed a bug in which an unchanged file was nevertheless\nbeing redundantly transmitted for backup on every backup pass.\nThe underlying issue turns out to have been the FileBackupHelper\nbase implementation\u0027s logic for diffing the prior-state file\nset against the current state, in the case when there had been\ndeletions of prior files.  In addition, there was also a\nparallel bug in which file checksums were not calculated\nproperly in some cases, leading to at least one additional\nredundant backup of the file in question.\n\nBug 18694053\n\nChange-Id: Ie0dec06486b5fef4624561737019569c85d6b2a0\n"
    },
    {
      "commit": "5dce5e67dbdcd14882edf3f64fba671c77577ee4",
      "tree": "685d15b6cbb42c2d3bd50825f0b4198c3bd1ee7d",
      "parents": [
        "4df65bf1eb454814954421403da9f8b5fcb82180"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 10 10:47:53 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 10 10:51:48 2014 -0800"
      },
      "message": "Fix issue where non-resource attributes would cause obtainStyleAttributes to fail\n\nA sentinal value of 0x00000000 was used to mark the first time an AttributeFinder\nwas used. If the resource ID of an attribute was also 0x00000000 (which occurs with\nnon-resource attributes, like \u0027style\u0027), then it would be mistaken as the sentinel\nstart value.\n\nBug:18421787\nChange-Id: I4be353e0f8c940cb6f262d155129f048dcc444ae\n"
    },
    {
      "commit": "9b624c186cb6059dfb3ec24bfb6386a0fc17b88c",
      "tree": "e57516e076eddb75d4c657704522f43067153c2a",
      "parents": [
        "92ad4dd017a13364b4001bdb04911202932f81c2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 19 17:49:26 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 03 15:59:20 2014 -0800"
      },
      "message": "AAPT: Move private attrs to new type for framework\n\nPrivate attributes are typically placed after public\nattributes in the resource table. Each time a new version\nof the Android framework is released, new public attributes\ntake the place of the private attributes, and the private\nattributes are shifted after the new public ones.\n\nThis means that any apps built against the newer SDK\nmay inadvertently be using private attributes on older\ndevices.\n\nThis change moves all private attributes to a completely\ndifferent type ID, so there will never be collisions across\nversions.\n\nThese private attributes are automatically moved to a synthesized\ntype only for the system resources.\n\nBug:18263655\n\nChange-Id: I7a850512953fadcc9f3524d509cea30249782db8\n"
    },
    {
      "commit": "cd6f00c3a05717862a88b7409d11176ae53fd9a9",
      "tree": "0c5eee8aacc85e7722dcde4efee625da3782a58a",
      "parents": [
        "cd75f59f8cdeda95a50155ad0c9f4abd559037ec",
        "a7d1d73a477fe512d9ea69ee2883084630ec24c4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 17 19:39:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 17 19:39:17 2014 +0000"
      },
      "message": "Merge \"Implement back-tracking when searching for attributes in XML or resource bag\" into lmp-mr1-dev"
    },
    {
      "commit": "a7d1d73a477fe512d9ea69ee2883084630ec24c4",
      "tree": "bbc94feb57cfcead2f9d44d8a4192085ee4d7d6a",
      "parents": [
        "efd8a85d30c35ca4a274835f10e371289bb9bc5e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 01 18:24:54 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 04 16:34:34 2014 -0800"
      },
      "message": "Implement back-tracking when searching for attributes in XML or resource bag\n\nShared libraries have their package ID assigned at run-time, so some\nof the guarantees we used to have about sort order of attributes in\nbags or XML elements no longer hold.\n\nThis CL adds back-tracking and can jump to the nearest attribute with the\nsame package ID and continue searching.\n\nThis means that attributes with the same package ID must be sorted by increasing\nresource ID, as was the case before.\n\nAttributes with the same package ID must be grouped together, but the groups can\nbe in any order. Ex: 0x02010001, 0x02010002, 0x01010000, 0x01010010, 0x7f010032\n\nBug:17666947\nChange-Id: I9c198bbb6ca788849aac85b6323606ea5d9550d6\n"
    },
    {
      "commit": "de7de47fef1dcaa26d553665d89e4d3792325c3f",
      "tree": "0d9551d2f037b841f325bbbd3ba27a309e9441b3",
      "parents": [
        "f7ffcaa7a478eaafc121e84b14dcaf2503dd5457"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 12:03:08 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 15:55:44 2014 -0800"
      },
      "message": "Add error checking to aapt for split generation\n\nChange-Id: Ica627db6a671f6a6c35f98bfd9c03598ffe103ce\n"
    },
    {
      "commit": "668f0a356cba44c22d8ca0c9f4711613885d46a9",
      "tree": "2a761d729c706abe8c4fca98e89d818e961a5168",
      "parents": [
        "3c7efdc00506e6561ca08933f0b2acf5e3f16b02",
        "4bf58108d442b37ab4adf5ce3a4ecd63472ce254"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 23:38:42 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 03 23:38:43 2014 +0000"
      },
      "message": "Merge \"Fix issues that will be present in C++11\" into lmp-mr1-dev"
    },
    {
      "commit": "4bf58108d442b37ab4adf5ce3a4ecd63472ce254",
      "tree": "2b6359ad85861bf339e6a45813c599ab683fc7c3",
      "parents": [
        "e8d9810cdef5b3e288f54f42adc3205532343406"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 11:21:19 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 11:49:47 2014 -0800"
      },
      "message": "Fix issues that will be present in C++11\n\n- char16_t is a distinct type, so stay consistent\n  with it throughout the code base.\n- char16_t is defined as minimum size of 16 bits.\n  Since we mmap and cast data structures onto raw memory,\n  we need a precise definition (uint16_t), so we cast between\n  that (and static_assert that they are the same size).\n\nChange-Id: I869c32637543bbcfb39d2643e7d9df10d33acd3c\n"
    },
    {
      "commit": "f2969405020a72e282c348a6ea201d56e9f8d4ba",
      "tree": "e128dfe858f314d151ad3462e77f18d4aa973f66",
      "parents": [
        "720a5c51beb5beab442832ea8d169aa5b4edb43f"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 29 17:09:36 2014 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 29 17:09:36 2014 -0700"
      },
      "message": "Distinguish unspecified and explicit null values in resources\n\nBUG: 17919345\nChange-Id: Ic4f04f7dd0f986f58a749b5950d80c1cfdb074ea\n"
    },
    {
      "commit": "f001e37b316a0d5b9c9eda08bbe53ea4b06562a3",
      "tree": "085f4aeed2b7271b3d573b143ad5e4be6657585e",
      "parents": [
        "272b0a1d6acdb7c4d244a498f3769e20c35f43d1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Oct 20 16:15:33 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 24 18:39:56 2014 +0000"
      },
      "message": "libandroidfw: Do not build device library when building SDK\n\nBuilding the windows SDK causes a build failure if the device\nlibandroidfw target is not omitted.\n\nChange-Id: I587b166342d0d047820911d279f192d2b39b6263\n"
    },
    {
      "commit": "60293197379e522c870c4a28462804207bab505d",
      "tree": "0b736bb0002e0d43109652d603ca0506524a064f",
      "parents": [
        "74af6700196ed55a0aa39c7777293e735e7b4d73"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 21 18:36:42 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 23 16:01:58 2014 -0700"
      },
      "message": "Added some more Split density tests\n\nChange-Id: I3b83515f1240e713bbcff5385cf054bba693f297\n"
    },
    {
      "commit": "e60a87f5529b2867ba3f4e60b39d7b47b67f8ca3",
      "tree": "551bd0808ffd3dd737a2349d0e3801f9acc66612",
      "parents": [
        "49c5ddd67793735a2d6fc036614cdfab944d56f6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 09 11:08:04 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 09 11:26:19 2014 -0700"
      },
      "message": "Search all packages for a given type string when looking up resources by name\n\nPreviously we would stop at the first match when looking for a type string,\nbut we should search all packages in case a feature Split added a type\nwith the same name.\n\nBug:17924027\n\nChange-Id: I6bc7ef073324db99448538cd8bdf566658f066ff\n"
    },
    {
      "commit": "908c748096d855d47da2f5e20fd4d9d31d1e603c",
      "tree": "8031415a8deef274fa5bc89ba5c9744d6378889b",
      "parents": [
        "5069dd69898bd0d9c69ba2bbd37239ec8d1c9dc6"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Oct 01 18:11:18 2014 +0000"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Oct 01 18:11:18 2014 +0000"
      },
      "message": "Revert \"Fix issue with using locally defined attrs in a shared lib\"\n\nThis reverts commit 5069dd69898bd0d9c69ba2bbd37239ec8d1c9dc6.\n\nThe reverted commit caused issues loading resources supplied by static libraries.\n\nBug 17748356\n\nChange-Id: I860a4f31451ee7c03c02974826472a67226b029f\n"
    },
    {
      "commit": "5069dd69898bd0d9c69ba2bbd37239ec8d1c9dc6",
      "tree": "f0ddd3b922e53ed84c14558c6345724a588656ba",
      "parents": [
        "75c33d9d04d8c0a9884a70077681261b57c7833c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Sep 30 16:06:58 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Sep 30 16:18:09 2014 -0700"
      },
      "message": "Fix issue with using locally defined attrs in a shared lib\n\nThe attribute name resource IDs were never fixed up with\nthe runtime package ID so we weren\u0027t finding attributes\nwhenever the runtime package ID was different than the build\ntime one, which happened to be when a shared lib referenced itself\n(0x00 vs 0x02).\n\nBug:17666947\nChange-Id: Icf3e874bcea0e27eebe42d60fbed626a34bf9266\n"
    },
    {
      "commit": "82a2dd8efe48d3a4e04655f01329da857ace4b7d",
      "tree": "9c5ec064aeba43cf4b27fd4bb36e31f0bf425f35",
      "parents": [
        "49c0e7375b237bc6eff8746ae91466ea6a660233"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Sep 17 18:34:15 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Sep 18 14:05:24 2014 -0700"
      },
      "message": "Fix backwards compat problem with AAPT public attrs\n\nAAPT has traditionally assigned resource IDs to public attributes,\nand then followed those public definitions with private attributes.\n\n--- PUBLIC ---\n| 0x01010234 | attr/color\n| 0x01010235 | attr/background\n\n--- PRIVATE ---\n| 0x01010236 | attr/secret\n| 0x01010237 | attr/shhh\n\nEach release, when attributes are added, they take the place of the private\nattributes and the private attributes are shifted down again.\n\n--- PUBLIC ---\n| 0x01010234 | attr/color\n| 0x01010235 | attr/background\n| 0x01010236 | attr/shinyNewAttr\n| 0x01010237 | attr/highlyValuedFeature\n\n--- PRIVATE ---\n| 0x01010238 | attr/secret\n| 0x01010239 | attr/shhh\n\nPlatform code may look for private attributes set in a theme. If an app\ncompiled against a newer version of the platform uses a new public\nattribute that happens to have the same ID as the private attribute\nthe older platform is expecting, then the behavior is undefined.\n\nWe get around this by detecting any newly defined attributes (in L),\ncopy the resource into a -v21 qualified resource, and delete the\nattribute from the original resource. This ensures that older platforms\ndon\u0027t see the new attribute, but when running on L+ platforms, the\nattribute will be respected.\n\nWe still need to address this problem in the platform moving forward,\nas this will only help us in the transition from pre L to L.\n\nBug:17520380\nChange-Id: Ia2a985798b50006c21c7c3431d30d9598f27cd91\n"
    },
    {
      "commit": "9d9cc6233c7035c32d3b8622aa5dc7d413193dc7",
      "tree": "4cd16aa103935fadde447a88f2245159be3e8881",
      "parents": [
        "0ae64a84af9304bb493bc9bf0e0f32cac564ec48"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 29 14:10:04 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 29 14:34:54 2014 -0700"
      },
      "message": "Add test to ensure themes get copied from separate resource tables\n\nChange-Id: I94e9966cf1e9d0e7e6c7daa0606a87bb0f67705e\n"
    },
    {
      "commit": "d79e33379d56e20b7dd67baa992409b72a335ded",
      "tree": "94ad4f94d041493db6e92768299bd1ece0972dc0",
      "parents": [
        "5283faba4a75a4d1fd9990637d22768e423895e3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 29 12:29:31 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 29 12:29:31 2014 -0700"
      },
      "message": "Clean up test allocations so real memory leaks are more visible\n\nChange-Id: Ic405f08c8d8e3e7fc4e4a991671e980752c19899\n"
    },
    {
      "commit": "a9aa9f045836ca03b378653728476f9a298f5260",
      "tree": "6a4fc4b0214ff261100811026fdacdc7e8b545a9",
      "parents": [
        "97bf45464c056abecfef50a7cc52617344b22de1",
        "7f668d03ceec1ce1732f51cfe9828e6376bbecbc"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 29 05:27:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 29 05:27:49 2014 +0000"
      },
      "message": "Merge \"Fix memory leak in ResTable\" into lmp-dev"
    },
    {
      "commit": "7f668d03ceec1ce1732f51cfe9828e6376bbecbc",
      "tree": "fc6c026c372a9d8b7e32dcf81e1bf36a2d5aa3b2",
      "parents": [
        "01abcaa295fc4eec7442a575d160b0ce2c250127"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 28 18:32:32 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 28 18:32:32 2014 -0700"
      },
      "message": "Fix memory leak in ResTable\n\nWe were basically never cleaning any of the\ncached bags... oops :S\n\nBug:16683269\nChange-Id: Ic0a44218f660e16fbaac8df1d61ce6f1fdb0018b\n"
    },
    {
      "commit": "ad2d07d2d98a46babb2a9472413fe9ce5080ca76",
      "tree": "40be93c366de29a74421b20cf8ae10c34ac34dfd",
      "parents": [
        "032402cff1fe5dc3a6b2adae3d4c13fb771cd91f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 27 16:21:08 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 27 18:28:49 2014 -0700"
      },
      "message": "Stamp platform version code into app Apks\n\nThe versionCode of theframework resources that an app is built against\ngets stamped inside an app\u0027s AndroidManifest.xml in the \u003cmanifest\u003e\ntag as \"platformBuildVersionCode\" and \"platformBuildVersionName\"\nattributes.\n\nBug:17207635\nChange-Id: Id573c3dffcbca38eec9c0eb3e89f4a547e3361d3\n"
    },
    {
      "commit": "31245b4f06003f1c8cd44c31b387c96ab4e282f9",
      "tree": "ec59d73e6b6e563876ed8c4e5de331b4df17549e",
      "parents": [
        "5b8e5a7d4c930b42e1a3c2b3e67144b89d37efa2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 22 19:10:56 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 25 17:47:30 2014 -0700"
      },
      "message": "Introduce anydpi density resource qualifier\n\nThis is meant to be used with scaleable vector\ndrawables, and are chosen as the best match unless\nthere is a configuration that matches the density\nrequested exactly.\n\nBug:17007265\nChange-Id: Ic3288d0236fe0bff20bb1599aba2582c25b0db32\n"
    },
    {
      "commit": "6022debdbcc4498736580640c6287b57872617a2",
      "tree": "17fa702311166e6f78ad07af3e767ca672817135",
      "parents": [
        "e02f340d9a0c4f841376c3db8ec93f65e7e58417"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 20 14:59:19 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 20 17:55:33 2014 -0700"
      },
      "message": "AAPT: Fix regression generating dynamic ref table for shared libraries\n\nAAPT stopped generating dynamic reference tables for shared libraries.\n\nChange-Id: Ib0025811bdca1a4756eb21080dd6b6bb3fc1ca3d\n"
    },
    {
      "commit": "2cb761e3ddb9d68ab430013e9cd15ecaab9fbc62",
      "tree": "2bd700b1bc3ae8d3855103c1a82c229d5d79e131",
      "parents": [
        "4482e4bb8d1f5fe586b641bc3d6298dc7b8fee80"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 13:59:02 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 14:01:43 2014 -0700"
      },
      "message": "Fix assumption about DynamicRefTable in aapt\n\nPackages without any resources should not expect to have\na DynamicRefTable.\n\nBug:16895517\nBug:17056720\nChange-Id: Id006f6bdbf08f30505f6ba5982bc9d1b09db0f0a\n"
    },
    {
      "commit": "89147ed84b140d83e144ad9eaa568cc9c6fb514c",
      "tree": "176f1f15bcd79de7ebe99a7d8684e8bd104ba6ce",
      "parents": [
        "261e240c05a32aec20022ae3f527dafea5f3f0d8",
        "18560886cbb7825c1bb034c96e5d0cd4dbdbb8ee"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 17:19:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 15 04:37:53 2014 +0000"
      },
      "message": "Merge \"Revert \"Fix aapt dump for APKs with no resources\"\" into lmp-dev"
    },
    {
      "commit": "18560886cbb7825c1bb034c96e5d0cd4dbdbb8ee",
      "tree": "a286eed127d66b4d09a4a2cb6caf8656bf83a2ff",
      "parents": [
        "e23a91e2bdab06e3c0c64201e88e50ab76c6b74b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 17:18:21 2014 +0000"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 17:18:21 2014 +0000"
      },
      "message": "Revert \"Fix aapt dump for APKs with no resources\"\n\nThis reverts commit 0e475302cd196f45a01a525c49089018b238d4ba.\n\nI\u0027ll re-upload this CL with the correct fix in LoadedApk.\n\nChange-Id: I17c6381f8e5907dab9f996f89c5d435b9c08a13a\n"
    },
    {
      "commit": "4b2d0f20db2e0f9395a0c12ed5d4b6020eb272cb",
      "tree": "c3f363ba74a9f6ce48ca3318b8672dea2a43ff0d",
      "parents": [
        "82d6d337b389ef088879a5e527d44c75c41c5b44"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 14 17:58:37 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 06:39:01 2014 +0000"
      },
      "message": "Fix crash in ResStringPool\n\nWhen a String isn\u0027t found in the StringPool,\nwe should not try to construct a String8 object\nfrom the NULL string.\n\nBug:15163956\nChange-Id: I51e701918b10a72c18a860b8a36dce2afd9c0b82\n"
    },
    {
      "commit": "e23a91e2bdab06e3c0c64201e88e50ab76c6b74b",
      "tree": "aba593b1c33e6f76fc7efca40e50a976dbff4480",
      "parents": [
        "0204938659d93347081caec107661ea3734f1a65"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 14 13:53:34 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 14 21:20:41 2014 +0000"
      },
      "message": "Fix aapt dump for APKs with no resources\n\nAll APKs are expected to have at least one resource table (even if\nit is empty). We were missing the creation of an empty DynamicRefTable.\n\nBug:16895517\nChange-Id: I6a6e887f91b3b4bbcc52b3fd2741ef3d05fab1fd\n"
    },
    {
      "commit": "d7df9d7b38064b81e1b035893001499e79fc3cc0",
      "tree": "72ff9f9e57ab56729a9d76bc208eeb6fba616c49",
      "parents": [
        "ea39c1be300dd1ebfec4a90052f4b44847a278f9",
        "e23a91e2bdab06e3c0c64201e88e50ab76c6b74b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 01:15:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 14 16:46:52 2014 +0000"
      },
      "message": "Merge \"Fix aapt dump for APKs with no resources\" into lmp-dev"
    },
    {
      "commit": "8d5667d2a283bc9e35cfe8a7e77c9143c8957004",
      "tree": "543816072cca333b4515c741a693e01b07f576ec",
      "parents": [
        "4473ec5a5b39248377ce1596cdae83715b513413"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 13 21:02:57 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 14 21:35:37 2014 +0000"
      },
      "message": "Print xxxhdpi from ResTable_config::toString\n\nChange-Id: I2e1a07649cb498c12023b198d8e50534f9d91840\n"
    },
    {
      "commit": "ccf25c7bf69eb8c04246e3f79da31b52c2922a80",
      "tree": "c0b7f90e9ad86e32c3fac4d289a49eaf69db99eb",
      "parents": [
        "1584609f422c338ade65b8b4078b434ba3a81253"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 08 15:32:40 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 11 09:16:01 2014 -0700"
      },
      "message": "Fix shared library bug in bag attributes\n\nA ResTable_map entry has a name attribute, which\ncould be a dynamic reference if it comes from\na shared library. It was not being patched with\nthe correct package id.\n\nBug:16795890\nChange-Id: Ia8df6a943269b2fefb2132c3ed74eb1997d7701b\n"
    },
    {
      "commit": "833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1",
      "tree": "a57e8389088178108de1424faf41ea3bb87c934a",
      "parents": [
        "5c09e8ad5ee8e67976066366527ee58792551953"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 18 15:06:01 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 04 18:48:14 2014 -0700"
      },
      "message": "AAPT support for feature splits\n\nThis change allows the developer to add a base package for\nwhich to build a feature split. The generated resource types\nwill begin after the base APK\u0027s defined types so as not\nto collide or override resources.\n\nMultiple features can be generated by first choosing an\narbitrary order for the features. Then for each feature,\nthe base APK and any preceding features are specified\nwith the --feature-of flags.\n\nSo with a base APK \u0027A\u0027 and features, \u0027B\u0027, and \u0027C\u0027,\n\u0027B\u0027 would be built with\n\naapt package [...] --feature-of A [...]\n\nand \u0027C\u0027 would be built with\n\naapt package [...] --feature-of A --feature-of B [...]\n\nChange-Id: I1be66e3f8df9a737b21c71f8a93685376c7e6780\n"
    },
    {
      "commit": "f28d505dc5f72d82cd791a5b9c7be3775eab75e5",
      "tree": "f49a0df6b4763d401be0a80a749dc1cc069109e7",
      "parents": [
        "f4bf67012b2109ead9a4cb9c4407563fc3671255"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jul 25 15:25:04 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jul 29 17:42:34 2014 +0000"
      },
      "message": "Ensure the ResTable data is at least the size of a ResTable_header\n\nChange-Id: Ib8d5574bd6a125797a582837987332e66721e84d"
    },
    {
      "commit": "7df3625d5bb28d11cce9ac23429f5e3c6ebac030",
      "tree": "432f9013a91bede42c82486575b37507cd66718d",
      "parents": [
        "999d394adee533c55fce38bd632ffd4f1af91362"
      ],
      "author": {
        "name": "Martin Kosiba",
        "email": "mkosiba@google.com",
        "time": "Thu Jan 16 16:25:56 2014 +0000"
      },
      "committer": {
        "name": "Marcin Kosiba",
        "email": "mkosiba@google.com",
        "time": "Thu Jul 17 18:10:02 2014 +0100"
      },
      "message": "Allow for appending of resources to an AssetManager.\n\nBUG: 11505352\nChange-Id: Ifa290580a6dc63c2f471d0bbf5f066db14aed4d7\n"
    },
    {
      "commit": "e8e968a7c6f08c8db0603143d775863301cb03d6",
      "tree": "327b9396437fd9658f872e6810f0e3f5ffe96706",
      "parents": [
        "b58d385e17f3b71705f23fe77aa8c12147ec9ea5",
        "583a845c6eb6308d7ada72cb0e91444efc91cc54"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 10 00:42:48 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 10 00:42:48 2014 +0000"
      },
      "message": "am 583a845c: am 3964ea46: am d74f99d3: Merge \"Switch frameworks/base/libs/androidfw to the new icu.\"\n\n* commit \u0027583a845c6eb6308d7ada72cb0e91444efc91cc54\u0027:\n  Switch frameworks/base/libs/androidfw to the new icu.\n"
    },
    {
      "commit": "583a845c6eb6308d7ada72cb0e91444efc91cc54",
      "tree": "2bc9e7b79191bf1305bfe77cb68f7df506f04079",
      "parents": [
        "f6be5a7ac8c3891d79dd836ac5cfdc0588859494",
        "3964ea46750cd5715f29ad4d9cada4a35208ad7a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 10 00:16:43 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 10 00:16:43 2014 +0000"
      },
      "message": "am 3964ea46: am d74f99d3: Merge \"Switch frameworks/base/libs/androidfw to the new icu.\"\n\n* commit \u00273964ea46750cd5715f29ad4d9cada4a35208ad7a\u0027:\n  Switch frameworks/base/libs/androidfw to the new icu.\n"
    },
    {
      "commit": "6a4deeda70698d7574d20a97c746ed2ba52f5b8d",
      "tree": "8a5a645cd3c681fa27835f14a712bac998840867",
      "parents": [
        "92b1896dfd42079c264e68f819273ba71f177fea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 16:58:28 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 16:58:28 2014 -0700"
      },
      "message": "Switch frameworks/base/libs/androidfw to the new icu.\n\nChange-Id: Id82830750dd7e83bbc66811a1133b403cc697c97\n"
    },
    {
      "commit": "10eb3b0665dd7c636af5f0d657512c1a2e309e0c",
      "tree": "d4897b9b5b32cda400ca5d0ea29c140b337f8f88",
      "parents": [
        "048d1076aeb96adea969ad95996d3df931557241",
        "e0849423214007d4377638fb42db15276e3ca575"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jul 07 10:11:23 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 07 10:11:23 2014 +0000"
      },
      "message": "am e0849423: am 501bb0a5: Merge \"Fix issue when converting fil-\u003etl.\"\n\n* commit \u0027e0849423214007d4377638fb42db15276e3ca575\u0027:\n  Fix issue when converting fil-\u003etl.\n"
    },
    {
      "commit": "fec5106c8ea5791614385c17bd1bf0ecff9afe9a",
      "tree": "0363b6f432a15d0f00450c1fff36a5c2bdaa50f4",
      "parents": [
        "358a3f716850e96716b766c63d50d3425a4c9ed7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Jul 05 15:33:28 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jul 07 09:51:01 2014 +0100"
      },
      "message": "Fix issue when converting fil-\u003etl.\n\nWe should call ResourceTable::getLocales directly,\nand not AssetManager::getLocales. The latter will convert\n\"tl\" to \"fil\" so we\u0027ll end up thinking we have resources\nfor \"fil\" when we don\u0027t really have any.\n\nbug: 15873165\n\nChange-Id: I9753e4608aaecede328a40ee1f3ee6b016d0dedc\n"
    },
    {
      "commit": "23902f5f4d0d6665d6837d3d085d3c11b5aa1ec0",
      "tree": "c3b8ee550ca4d07abdc2588c4675612177d79cde",
      "parents": [
        "e8e61e09353e2a1deb5b6d9f545ba6dfa20e9f64",
        "10eb3b0665dd7c636af5f0d657512c1a2e309e0c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jul 07 10:26:42 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 07 10:26:42 2014 +0000"
      },
      "message": "am 10eb3b06: am e0849423: am 501bb0a5: Merge \"Fix issue when converting fil-\u003etl.\"\n\n* commit \u002710eb3b0665dd7c636af5f0d657512c1a2e309e0c\u0027:\n  Fix issue when converting fil-\u003etl.\n"
    },
    {
      "commit": "a00144ca898ec23c02d3cc4be0ce1bdfee53faf3",
      "tree": "3bf63c7526eb13b93d51fbf251206f401d087a35",
      "parents": [
        "6df71c76e05c6ca95c09940558911b9899ecccf9",
        "a8dbd7b433c2fff81881b5750529689d16f7f06b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jul 02 15:41:13 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jul 02 15:41:21 2014 -0700"
      },
      "message": "resolved conflicts for merge of a8dbd7b4 to master\n\nChange-Id: I90f42546c6d0a8f21af3041e59baf6a226247b1c\n"
    },
    {
      "commit": "a8dbd7b433c2fff81881b5750529689d16f7f06b",
      "tree": "d1e6ecb920be189ecb19ad3b38f10228b4f2a840",
      "parents": [
        "4161316f256c9cc047405a902bcfc17b3738b659",
        "39e4f590787246ce35b995c0c0ce37b676a05e0c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jul 02 10:09:45 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 02 10:09:45 2014 +0000"
      },
      "message": "am 39e4f590: am f56399f6: Merge \"Fall back to \"tl\" if \"fil\" is absent.\"\n\n* commit \u002739e4f590787246ce35b995c0c0ce37b676a05e0c\u0027:\n  Fall back to \"tl\" if \"fil\" is absent.\n"
    },
    {
      "commit": "e4345dbd2a892f38e62269d94e5ee7002d121bed",
      "tree": "02bbd706da907540982427ac29dd0cbd44589782",
      "parents": [
        "104da1e495cbed81e7ebe66b80344bf916b02391"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Jun 26 16:01:28 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jul 02 10:53:43 2014 +0100"
      },
      "message": "Fall back to \"tl\" if \"fil\" is absent.\n\nFor JB-MR1, there was a hack that used \"tl\" where\nwe really meant \"fil\" because ICU didn\u0027t have localizations\nfor \"fil\". This has now been fixed, and we now support 3 letter\nlanguage codes for AAPT so we can use \"fil\" where required.\n\nFor the benefit of apps that need to target older platforms,\nwe fall back to \"tl\" if the app has assets for \"tl\" and the\nresource locale is \"fil\".\n\nSee bugs 7291355, 7207176 and 8049507 for more context.\n\nChange-Id: I1ac8502525f99b40f9091d5efd2df33518d47a41\n"
    },
    {
      "commit": "8c1c0a6881b1507f9ae25d753b64de185a7615b2",
      "tree": "e7aad5d9e07b6e64dfc4a8481b075afc576bcda5",
      "parents": [
        "9baaf2ce843ec84424e10aa10cb7e367951b9306",
        "7f319c47c8f5e947638eb1e5e73789ff83123bba"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jul 01 10:23:44 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 01 10:23:44 2014 +0000"
      },
      "message": "am 7f319c47: am 1dc550fa: Merge \"Fix packing of values at offset 16.\"\n\n* commit \u00277f319c47c8f5e947638eb1e5e73789ff83123bba\u0027:\n  Fix packing of values at offset 16.\n"
    },
    {
      "commit": "b2975916224caecfc2fbb84e71ebd625ce6eeb1c",
      "tree": "f60365e0cd6f2b4f2b508d2b3ed11099338827d8",
      "parents": [
        "7165bd6d7496159b426f072bdf13adfffc917a24"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jun 30 15:59:39 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jun 30 16:20:27 2014 +0100"
      },
      "message": "Fix packing of values at offset 16.\n\nOur bitmask for setting the highest bit to 0 for\n0b11100000 (0xef) instead of 0b01111111 (0x7f) so\nwe would end up setting bit 5 of each offset to\nzero. Fix this and expand test coverage by adding\na fake language (tgp) that has this bit set in both\nits bytes.\n\nThis issue was discovered while adding CTS tests for\n\"tgl\".\n\nChange-Id: Ibb6de03000951c907c252049771039ab7466187a\n"
    },
    {
      "commit": "c7400b0ce66e916cf8be239c26cd5acbd15ef745",
      "tree": "b585283edc9daa4921bb737d3251c976a3fde58f",
      "parents": [
        "374041a63dffb49dae89ab9959c96b50f4db98e9",
        "8c1c0a6881b1507f9ae25d753b64de185a7615b2"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jul 01 10:43:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 01 10:43:41 2014 +0000"
      },
      "message": "am 8c1c0a68: am 7f319c47: am 1dc550fa: Merge \"Fix packing of values at offset 16.\"\n\n* commit \u00278c1c0a6881b1507f9ae25d753b64de185a7615b2\u0027:\n  Fix packing of values at offset 16.\n"
    },
    {
      "commit": "70bf06986a90c21137fc4836aa0e56d68a2ab588",
      "tree": "b8d6571df7835d92bde738bf44e0ce136ad25bd0",
      "parents": [
        "ed8b77e668dbc8aa4a8c2a108dce98f2900cc5b3",
        "b20b0629c2ea6a8e1f7bebd0791dd21e545a4605"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 24 14:26:45 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 24 14:26:45 2014 +0000"
      },
      "message": "am b20b0629: am 71dfc7e9: Merge \"Memory leak in parsePackage\"\n\n* commit \u0027b20b0629c2ea6a8e1f7bebd0791dd21e545a4605\u0027:\n  Memory leak in parsePackage\n"
    },
    {
      "commit": "71dfc7e9accc1ca3cda52bdf475b03fa2a334e78",
      "tree": "4364fd85bd976ee1456792b346069c1a0b889e27",
      "parents": [
        "2a0f9e6a523abc28bdbc249010f5ddd184a27730",
        "5f7ce10c937abf7da6d547ae91bda495dfbc414d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 24 14:16:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 24 06:22:45 2014 +0000"
      },
      "message": "Merge \"Memory leak in parsePackage\""
    },
    {
      "commit": "5f7ce10c937abf7da6d547ae91bda495dfbc414d",
      "tree": "5b3435aca8d2ec60519464a3a99b71dc5d969249",
      "parents": [
        "1a3908e95926acd8add3858be571fe23fa9d047a"
      ],
      "author": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Wed Jun 18 13:34:01 2014 +0200"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Mon Jun 23 14:03:46 2014 +0200"
      },
      "message": "Memory leak in parsePackage\n\nThe method parsePackage failes to delete some resources\nin case of failures.\n\nAdded delete of \"package\" in the cases that was previously\nmissed.\n\nChange-Id: I183e9ec5864c5ed18bb48410ab41317cb3d96bda\n"
    },
    {
      "commit": "fb600d60c06192f1a5b1c09bc86f92a80894a6c1",
      "tree": "17f3eab052206843bfed3a62342b40c0fcd5e1b3",
      "parents": [
        "b9db146d0da2d10c0f2ade631d01d11a9fb9882d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 18 12:56:28 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 18 13:00:28 2014 -0700"
      },
      "message": "Fix build break in log statement\n\nFor logging purposes, a uint32_t was being converted into\na void pointer, which on certain systems would be a conversion\nto a different size.\n\nChange-Id: I90af69ab975d84c9c8cbb1cce94ff4e9cc6edcf2\n"
    },
    {
      "commit": "f90f2f8dc36e7243b85e0b6a7fd5a590893c827e",
      "tree": "b2fb1fc49961c7c5f5c1712872ce2ffcfe550a89",
      "parents": [
        "c802c8cda234129c1ce3c7a939bd68a1d5813ce6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 06 14:27:00 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 18 19:20:08 2014 +0000"
      },
      "message": "Support multiple resource tables with same package\n\nIn order to support APK split features, the resource\ntable needs to support loading multiple resource\ntables with the same package but potentially new set\nof type IDs.\n\nThis adds some complexity as the type ID space changes\nfrom dense and ordered to potentially sparse.\n\nA ByteBucketArray is used to store the type IDs in\na memory efficient way that allows for fast retrieval.\n\nIn addition, the IDMAP format has changed. We no longer\nneed random access to the type data, since we store the\ntypes differently. However, random access to entries of\na given type is still required.\n\nChange-Id: If6f5be680b405b368941d9c1f2b5d2ddca964160\n"
    },
    {
      "commit": "f5cb96cfbbd2a7148b4b337097c94bea3f52d5f3",
      "tree": "e6cda57429240deef098fc7084b2079ea7b3a638",
      "parents": [
        "aa3ebacd4f7cd7ecf02291114c109a4cd3d1d27a",
        "51736de19a4c225a54cda73754d0f57aa68def4f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 17 19:13:58 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 17 19:13:58 2014 +0000"
      },
      "message": "am 51736de1: am 4c488cca: Merge \"[Asset Manager] Fix memory leakage bug\"\n\n* commit \u002751736de19a4c225a54cda73754d0f57aa68def4f\u0027:\n  [Asset Manager] Fix memory leakage bug\n"
    },
    {
      "commit": "7efc0eb163e8d07963c354805b6f36010aa74106",
      "tree": "6076b9b78446b52bb0bfb970d90363af14f89bd8",
      "parents": [
        "40ff293a1a1ef00d0cb751d395fd86a4d8d0aec3",
        "f5cb96cfbbd2a7148b4b337097c94bea3f52d5f3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 17 19:21:56 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 17 19:21:56 2014 +0000"
      },
      "message": "am f5cb96cf: am 51736de1: am 4c488cca: Merge \"[Asset Manager] Fix memory leakage bug\"\n\n* commit \u0027f5cb96cfbbd2a7148b4b337097c94bea3f52d5f3\u0027:\n  [Asset Manager] Fix memory leakage bug\n"
    },
    {
      "commit": "7c57d2337150ab52c148d30d9126f3b99ca951b4",
      "tree": "bde900b8b4b57e83b615a12732af5b29dfffc943",
      "parents": [
        "748f4b8d42541955850e76972b1ab3d9c98e226d"
      ],
      "author": {
        "name": "sean_lu",
        "email": "sean_lu@htc.com",
        "time": "Mon Jun 16 15:11:29 2014 +0800"
      },
      "committer": {
        "name": "sean_lu",
        "email": "sean_lu@htc.com",
        "time": "Mon Jun 16 15:11:29 2014 +0800"
      },
      "message": "[Asset Manager] Fix memory leakage bug\n\nSymptom: memory leakage\nRoot Cause: new SortedVector but not free it in native cpp\nSolution: free the SortedVector\nProject: AOSP\nNote:\n\nChange-Id: Iab5a7f2e8d8509631301e7231427927d4797c856\n"
    },
    {
      "commit": "961dda77965203da05df2c865d42a1968d622343",
      "tree": "d9af6e17835017f28f2e51ac4ec130717bc8d679",
      "parents": [
        "6123315ad41b268bb2de52b2008885bf00408b5e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jun 09 17:10:29 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jun 09 17:10:29 2014 -0700"
      },
      "message": "Creating an empty package should be succesfull\n\nBug: 15473436\nChange-Id: I788deb21a1298281c508429bab635aa713803984\n"
    },
    {
      "commit": "7322ea7b73000ef50be18d72750624bb1832dec4",
      "tree": "eea527f69d30b56f3cdac404b8e4a2a68b7a655f",
      "parents": [
        "da86f784b686ba00d9f797b8ee565629669080b9"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 14 11:43:26 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 14 11:46:19 2014 -0700"
      },
      "message": "Fix potential crash in libandroidfw\n\nA malformed APK may cause a crash if it\nencodes its chunk size as a signed number\n(MSB set to 1).\n\nBug:14898892\nChange-Id: I342853c2b0859e5be15d712d451323afc367d329\n"
    },
    {
      "commit": "fab50875b98e8274ac8ee44b38ba42521bbbf1f9",
      "tree": "984277e1fadd3d5156bb6b05b21a1c23252b3a1b",
      "parents": [
        "57df4fd69e96c901ac0a027aa913f3f9086fbbf6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 16 14:40:42 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sun May 11 18:30:12 2014 -0700"
      },
      "message": "Add support for building split APKs\n\nBuild multiple APKs, each containing a disjoint subset\nof configurations. These can then be loaded into the device\nAssetManager and should operate as if they were never split.\n\nUse the idea of building multiple sets of files, where each\nset represents an APK. An ApkBuilder can place files\nin a set based on its configuration, but you can actually\nadd directly to a set, in the case of the resources.arsc and\ngenerated AndroidManifest.xml for splits.\n\nChange-Id: Ic65d3f0ac1bbd290185695b9971d425c85ab1de3\n"
    },
    {
      "commit": "0a0454fdcc7aeac6e57f9466da8f39bcf5f3f6ec",
      "tree": "ee5502e236507ebf43a8b365bcf10466b49be61b",
      "parents": [
        "dd79334f7ecb39135058c2049cd933b4b930a3d1",
        "642421aa7f284817cc1a972a7f9c7a64696a0116"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 19:34:11 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 04 19:34:11 2014 +0000"
      },
      "message": "am 642421aa: am 5c31e487: Merge \"Introduce new UI_MODE_TYPE_WATCH and qualifier.\" into klp-modular-dev\n\n* commit \u0027642421aa7f284817cc1a972a7f9c7a64696a0116\u0027:\n  Introduce new UI_MODE_TYPE_WATCH and qualifier.\n"
    },
    {
      "commit": "642421aa7f284817cc1a972a7f9c7a64696a0116",
      "tree": "e51a5b2c212bd95c4a052fcbd6b0bb0f0fce4976",
      "parents": [
        "8f81d29558bb0c97187d5ae3a7ee696ec13b264a",
        "5c31e487c4577e1c47ee7c949325d6a13f0d462e"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 19:28:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 04 19:28:09 2014 +0000"
      },
      "message": "am 5c31e487: Merge \"Introduce new UI_MODE_TYPE_WATCH and qualifier.\" into klp-modular-dev\n\n* commit \u00275c31e487c4577e1c47ee7c949325d6a13f0d462e\u0027:\n  Introduce new UI_MODE_TYPE_WATCH and qualifier.\n"
    },
    {
      "commit": "6c191299a73388cd593809c0b66bafbd08fd2982",
      "tree": "86466cc5d46bb13d87ae71c906349957edd3a7fb",
      "parents": [
        "8db6d9af58b9b81dbd764acd3f6a379afb539bf6"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Apr 03 16:37:27 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 15:21:53 2014 -0400"
      },
      "message": "Introduce new UI_MODE_TYPE_WATCH and qualifier.\n\nDefault ui mode to watch if we have FEATURE_WATCH.\n\nBug:13395758\nChange-Id: Ie5ff95de60e69e91ad3612c7d2f1fca7f49061bd\n"
    },
    {
      "commit": "ecd072161ec57ba8dfb26659511c0f6605601560",
      "tree": "5ed526d3b7f3a1c6532c90fca9bb57c8364e589a",
      "parents": [
        "afd8b17fa1fc15d06dc4ade7fc365e0a157c9b53",
        "22d074643ed0d010ebfdb0fca685d65eb2632e58"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 14:22:47 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 14:22:47 2014 +0000"
      },
      "message": "resolved conflicts for merge of 22d07464 to master\n\nChange-Id: Ic037261eedd6e224938c960d2b4597590c81ed9d\n"
    },
    {
      "commit": "f5df700e6ce056ebfa322314d970e52d6facc35a",
      "tree": "5a3e1f8dc1089601389509f54d2eef98ec2528a8",
      "parents": [
        "57f2764bf104b0fe7b5cd67ad5b2cae9bc8352ed"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Tue Mar 25 20:51:35 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:30:42 2014 +0000"
      },
      "message": "AArch64: Make frameworks/base code more portable\n\nChanges in this patch include\n\n[x] Use %zu for size_t, %zd for ssize_t\n\n[x] Some minor changes have been done to conform with\n    standard JNI practice (e.g. use of jint instead of int\n    in JNI function prototypes)\n\nChange-Id: Id1aaa7894a7d0b85ac7ecd7b2bfd8cc40374261f\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n"
    },
    {
      "commit": "de898ff42912bd7ca1bfb099cd439562496765a4",
      "tree": "849b591a99a7e6a8fd790aedca3afff6f6b6eade",
      "parents": [
        "05f79758cd2688f89444a38baba326a0a1c1a438"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 29 18:20:45 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 25 12:09:56 2014 -0700"
      },
      "message": "Shared library resource support\n\nShared libraries can now export resources for applications\nto use.\n\nExporting resources works the same way the framework exports\nresources, by defining the public symbols in res/values/public.xml.\n\nBuilding a shared library requires aapt to be invoked with the\n--shared-lib option. Shared libraries will be assigned a package\nID of 0x00 at build-time. At runtime, all loaded shared libraries\nwill be assigned a new package ID.\n\nCurrently, shared libraries should not import other shared libraries,\nas those dependencies will not be loaded at runtime.\n\nAt runtime, reflection is used to update the package ID of resource\nsymbols in the shared library\u0027s R class file. The package name of\nthe R class file is assumed to be the same as the shared library\u0027s\npackage name declared in its manifest. This will be customizable in\na future commit.\n\nSee /tests/SharedLibrary/ for examples of a shared library and its\nclient.\n\nBug:12724178\nChange-Id: I60c0cb8ab87849f8f8a1a13431562fe8603020a7\n"
    },
    {
      "commit": "7e9e30599439a15c9a08206c10ef8b9d164e695b",
      "tree": "89b5317c419da1d2c072202ff27af1381e77fbcc",
      "parents": [
        "9eed0c624e468fc8f50fb4fc9c0940fb6d727e37",
        "9ca25502c05854288733ee5142e8bf6594821f83"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 19:58:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 19:58:00 2014 +0000"
      },
      "message": "am 9ca25502: am 48250e14: am 9a09a523: am 0b472ae1: Merge \"androidfw: resolve 64-bit build issues\"\n\n* commit \u00279ca25502c05854288733ee5142e8bf6594821f83\u0027:\n  androidfw: resolve 64-bit build issues\n"
    },
    {
      "commit": "00adb8685ee996f9d2650d617c8c0e98f13ef406",
      "tree": "b3bd40533e240cd3258de89c9541037c16f9fadd",
      "parents": [
        "7cb1dfe690b2d700ce212712287dfd59c2c8e43f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 11:00:06 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 11:11:14 2014 -0700"
      },
      "message": "androidfw: resolve 64-bit build issues\n\n- uid_t/gid_t cast to unsigned long\n- unused argument warnings\n- tab and space requirements\n\nChange-Id: Ib446d8165b9082be02edb55e6b71fd1a03ea3431\n"
    },
    {
      "commit": "b5c4e7fd3866bbe30d7ea4d7bc463da5a70970e2",
      "tree": "1348a14b7c5edf6d71960411b9c05defbac1f57b",
      "parents": [
        "df897d08cebb013795ae679eef842a38b5153252",
        "92860a74c6e57fb66b28afe95c13e7c0f97f831e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 10 10:57:05 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 10 10:57:05 2014 +0000"
      },
      "message": "resolved conflicts for merge of 92860a74 to master\n\nChange-Id: I3036ef9f1251c756092dc5ee2c4fed8146855e1e\n"
    },
    {
      "commit": "6381dd4ff212a95be30d2b445d40ff419ab076b4",
      "tree": "ea96f7e229cafae41f7be46a3cf0345edd2dc869",
      "parents": [
        "3fc3b9fd1bf71351bf1ff2d49d6e10b6acabf068"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 03 17:12:03 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 10 10:00:02 2014 +0000"
      },
      "message": "LP64: Make 9 patches architecture agnostic.\n\nThe Res_png_9patch struct had several pointer members\nwhose size differed between 32 and 64 bit platforms.\n\nThese members have been replaced by uint32_t offsets\nto serialized data. The serialized form for 9patches\nplaces a Res_png_9patch object at the beginning of\nserialized data, followed by int32_t arrays of xDivs,\nyDivs and colors.\n\nNote that these offsets are not strictly required,\nsince they can be computed from the values of numXDivs,\nnumYDivs \u0026 numColors, however they are called in tight\nloops so having them computed once is a beneficial.\n\nThis change also removed the unused patch_equals function\nfrom aapt\u0027s Image.cpp.\n\nChange-Id: I3b9ac8ae5c05510d41377cae4dff1c69b40c2531\n"
    },
    {
      "commit": "e0d10cd92369d56e593e8592084024d1cd1655db",
      "tree": "88715c25831a7c609c197bb4b30dd1eeea7f70fd",
      "parents": [
        "11e4317555fdabeecf28fe8a70bfecb216224ad1",
        "d8ccf8b789461e1706d10df44d109849fa974fc5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 28 13:53:15 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 28 13:53:15 2014 +0000"
      },
      "message": "am d8ccf8b7: am be094d89: am 8fb22ae7: am eee2c72f: Merge \"Various format string fixes for 64bit\"\n\n* commit \u0027d8ccf8b789461e1706d10df44d109849fa974fc5\u0027:\n  Various format string fixes for 64bit\n"
    },
    {
      "commit": "95ece35c2f8b86203e88b49d67cef8e80e107a2b",
      "tree": "643c6b184d6c02ae5ff36af5207cfc15d4ee3be1",
      "parents": [
        "bbfc08b3abc0934f67659f3238eb79dcac838c17"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Thu Feb 13 11:02:27 2014 +0000"
      },
      "committer": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Mon Feb 24 17:39:46 2014 +0000"
      },
      "message": "Various format string fixes for 64bit\n\nChange-Id: I74532a4e0400033f5ee3e3f6827ac42f77d16f53\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\n"
    },
    {
      "commit": "b048c33d5bdaec747195dfedf971d4d9155f5000",
      "tree": "0a69524ee0627aea73c245f83f2d0301882143e3",
      "parents": [
        "1a405db22a2ade6b745f3e1cf93ba0c54b048d95"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 21 12:50:21 2014 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 21 12:58:04 2014 -0800"
      },
      "message": "Don\u0027t assume that we\u0027re at start of file at ctor time\n\nBackupDataReader / BackupDataWriter were implicitly assuming that when\ninstantiated, the underlying fd was positioned at start-of-file.  If one\ntried to e.g. open an existing data stream to append further data to it,\nthings might randomly fail (at read time, possibly when consuming the\nstream later) due to incorrect alignment of the data entities: the\nappending writer would assume that no padding was needed to achieve\ncorrect alignment, and this might easily be false.\n\nNow the underlying native reader/writer helpers recognize the true\nposition within the file when constructed, and as a result it\u0027s now\nsafe to e.g. construct a BackupDataOutput for an existing file and\nthen append to it.\n\nChange-Id: If0484921e687852f923a4b4efabff573a6c16981\n"
    },
    {
      "commit": "f9bf991cb57e8835a2dcffb35853b4d77ac7b2c4",
      "tree": "2eb5335924f63c5264fa2775ced50f68b9715299",
      "parents": [
        "83b6e4b937a2197198cefffecca94c919f9aa8cf",
        "bcb433b43acb424ff7bc6afab03ce12d8cc9a198"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 20 21:28:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 20 21:28:09 2014 +0000"
      },
      "message": "am bcb433b4: am b1903653: am 128599e4: am 2b3c14bf: Merge \"libandroidfw: fix build error for 64-bit\"\n\n* commit \u0027bcb433b43acb424ff7bc6afab03ce12d8cc9a198\u0027:\n  libandroidfw: fix build error for 64-bit\n"
    },
    {
      "commit": "443dd9313f06ec61abc9fee908f6e693d1091590",
      "tree": "ed5a2ff68a63ec8827d19dfdddb46d8d5fad0796",
      "parents": [
        "60097a9c5a7214cb73d0bc966adef767743f8798"
      ],
      "author": {
        "name": "Patrik Bannura",
        "email": "patrik.bannura@sonymobile.com",
        "time": "Wed Feb 12 13:38:54 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 20 10:06:23 2014 +0000"
      },
      "message": "libandroidfw: fix build error for 64-bit\n\nFixed casting int to pointer in logging code.\nPreviously ints where printed as pointers and\nthe %p format specifier was used for convenience\nto get hex output. This change uses %x and also\ngets rid of the casts.\n\nChange-Id: Ia2539769d245f50c0f3884119f80682defe69d61\n"
    },
    {
      "commit": "788fa41482b9d398591b7db8b0b01839029611ad",
      "tree": "ab94d4040351d79cca717a8b7e21fc6be5d0fcb5",
      "parents": [
        "48620f1d1b03e1cb4e0dce4999e0a4c2daf3a1b2"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 21 15:32:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 14 14:08:57 2014 +0000"
      },
      "message": "Extended locales in AAPT / AssetManager.\n\nSupport 3 letter language codes, script codes \u0026\nvariants. The bulk of the changes are related to\nthe implementation of command line filtering of\nlocales etc. The previous code assumed that the\nvalue of each \"axis\" (locale, density, size etc.)\ncould be represented by a 4 byte type. This is\nno longer the case.\n\nThis change introduces a new class, AaptLocaleValue\nwhich holds a (normalized) locale parsed from a\ndirectory name or a filter string. This class takes\nresponsibility for parsing locales as well as\nwriting them to ResTable_config structures, which is\ntheir representation in the resource table.\n\nThis includes minor changes at the java / JNI level\nfor AssetManager. We now call locale.toLanguageTag()\nto give the native layer a well formed BCP-47 tag.\nI\u0027ve removed some duplicated parsing code in\nAssetManager.cpp and replaced them with functions on\nResTable_config. The native getLocales function has\nbeen changed to return well formed BCP-47 locales as\nwell, so that the corresponding java function can use\nLocale.forLanguageTag to construct a Locale object\nout of it.\n\nFinally, this change introduces default and copy\nconstructors for ResTable_config to prevent having\nto memset() the associated memory to 0 on every\nstack allocation.\n\n(cherry-picked from commit 91447d88f2bdf9c2bf8d1a53570efef6172fba74)\n\nChange-Id: I1b43086860661012f949fb8e5deb7df44519b854\n"
    },
    {
      "commit": "48620f1d1b03e1cb4e0dce4999e0a4c2daf3a1b2",
      "tree": "f3cb2956e73be5cddeef2792622d52a638f643a7",
      "parents": [
        "24d8fa739b7ca0791174af260ed95cdc139e0903"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 20 13:57:11 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 14 14:08:23 2014 +0000"
      },
      "message": "AssetManager support for 3 letter lang/country codes.\n\n- 3 letter codes are packed into the existing 32 bit locale\n  field in ResTable_config\n- We introduce new fields for script / variant information.\n\nNote that we define a \"match\" between two ResTable_config\nstructures to be purely on the basis of their language \u0026\ncountry (disregarding the script and the variant). However,\nconfigs with scripts and variants are considered to be more\nspecific than those without.\n\n(cherry picked from commit 378c6775a62d9c461cde51f06c1b14bb014c78fd)\n\nChange-Id: I7dce82a3fe2412834252723f458826ae41535a78\n"
    },
    {
      "commit": "d5c8044e7e1f1402fdd4a035690329294ab07b33",
      "tree": "7963a5beae4395899c6b3892d18f1fd8f08e9606",
      "parents": [
        "cbdec7dd8c45f70c678029783ab2f5657f6b36bd",
        "1cbea39fe1740d7d1c3e4aa0e4771a99a56c79ef"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 12 14:41:25 2014 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 12 14:41:25 2014 -0800"
      },
      "message": "resolved conflicts for merge of 1cbea39f to master\n\nChange-Id: Ib33484546c6a03cbc4cd96e97d9d785d68e10700\n"
    },
    {
      "commit": "1cbea39fe1740d7d1c3e4aa0e4771a99a56c79ef",
      "tree": "609e7c7ad6a58d44191de97af33a11d9a5e1c78d",
      "parents": [
        "7594767e55e011101ed9341f01d40730fdbd4cc7",
        "dd3d95f182a634acdcc1b1e8e4954234d048eb54"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 12 14:05:30 2014 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 12 14:08:06 2014 -0800"
      },
      "message": "resolved conflicts for merge of dd3d95f1 to klp-volantis-dev\n\nChange-Id: I96c0f0da852a0b3cf8aef9158678d38aa30f456f\n"
    },
    {
      "commit": "ecbeae74f299f44f9ec4c79ddd885e999d4e1b64",
      "tree": "060184a770f7410ef85c57416bb2422f0abea051",
      "parents": [
        "89492190b39e301d8203d0a9a9f6b11120c16ecb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 11 18:02:06 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 11 18:02:06 2014 -0800"
      },
      "message": "Use size_t* in AssetManager::createIdmap\n\nResTable::createIdmap takes a size_t*, and the idmap command is\npassing in a size_t*, make AssetManager::createIdmap take a\nsize_t*.  Should fix the mac build.\n\nChange-Id: Idc16dedfe2aa7367c75f89a937a8242d494e8f8e\n"
    },
    {
      "commit": "d9e385b111ebf811beb0f29178a2fbd4d667509f",
      "tree": "99be89e7fadb00b002536146ee76ac5d415c5a3d",
      "parents": [
        "4e795ebe1783623a28a988f77b4f0f11d54e73be"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 11 13:56:21 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@google.com",
        "time": "Tue Feb 11 22:47:42 2014 +0000"
      },
      "message": "Fix build.\n\nAt least part of what is broken.  Other stuff still seems to be.\n\nChange-Id: I367dc0377bd5b4e59d9d9b68f3506bf1d64aa591\n(cherry picked from commit 32bb5fae353b5bb6275e75952e89c514c7369cee)"
    },
    {
      "commit": "32bb5fae353b5bb6275e75952e89c514c7369cee",
      "tree": "e1cb0e8fbdd8c7aa03f1971e4a55da7f8e6d7b68",
      "parents": [
        "6adfd86ca94f3eabb93fb1b4a0b9b0ea50895dcd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 11 13:56:21 2014 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 11 14:22:14 2014 -0800"
      },
      "message": "Fix build.\n\nAt least part of what is broken.  Other stuff still seems to be.\n\nChange-Id: I367dc0377bd5b4e59d9d9b68f3506bf1d64aa591\n"
    },
    {
      "commit": "47b80be208fcc1d4824bc24959080233a44041db",
      "tree": "2aacece40a95afd54ecd3e446c83fb0a7db4a448",
      "parents": [
        "43750f19e74edf64c1f1332a2e39de0372845d38",
        "be49403a0362c18edaeafe59ac09baac14294dee"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Tue Feb 11 20:44:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 11 20:44:38 2014 +0000"
      },
      "message": "am be49403a: am 0cd115e1: am 578087e3: Merge \"New command line tool \\\u0027idmap\\\u0027\"\n\n* commit \u0027be49403a0362c18edaeafe59ac09baac14294dee\u0027:\n  New command line tool \u0027idmap\u0027\n"
    },
    {
      "commit": "91447d88f2bdf9c2bf8d1a53570efef6172fba74",
      "tree": "dc46e96130696c26e8fd3883227314ef5c0b7ad1",
      "parents": [
        "378c6775a62d9c461cde51f06c1b14bb014c78fd"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 21 15:32:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 10 15:50:16 2014 +0000"
      },
      "message": "Extended locales in AAPT / AssetManager.\n\nSupport 3 letter language codes, script codes \u0026\nvariants. The bulk of the changes are related to\nthe implementation of command line filtering of\nlocales etc. The previous code assumed that the\nvalue of each \"axis\" (locale, density, size etc.)\ncould be represented by a 4 byte type. This is\nno longer the case.\n\nThis change introduces a new class, AaptLocaleValue\nwhich holds a (normalized) locale parsed from a\ndirectory name or a filter string. This class takes\nresponsibility for parsing locales as well as\nwriting them to ResTable_config structures, which is\ntheir representation in the resource table.\n\nThis includes minor changes at the java / JNI level\nfor AssetManager. We now call locale.toLanguageTag()\nto give the native layer a well formed BCP-47 tag.\nI\u0027ve removed some duplicated parsing code in\nAssetManager.cpp and replaced them with functions on\nResTable_config. The native getLocales function has\nbeen changed to return well formed BCP-47 locales as\nwell, so that the corresponding java function can use\nLocale.forLanguageTag to construct a Locale object\nout of it.\n\nFinally, this change introduces default and copy\nconstructors for ResTable_config to prevent having\nto memset() the associated memory to 0 on every\nstack allocation.\n\nChange-Id: I899a56a9a182ee6be52b9389d1ae59266f5482e9\n"
    },
    {
      "commit": "378c6775a62d9c461cde51f06c1b14bb014c78fd",
      "tree": "a91dcdabe03325db4f22b07ed863bbd012a70efb",
      "parents": [
        "dd99d87a125526fc31ef3601a5f1c0edace99a7a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 20 13:57:11 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 10 15:33:30 2014 +0000"
      },
      "message": "AssetManager support for 3 letter lang/country codes.\n\n- 3 letter codes are packed into the existing 32 bit locale\n  field in ResTable_config\n- We introduce new fields for script / variant information.\n\nNote that we define a \"match\" between two ResTable_config\nstructures to be purely on the basis of their language \u0026\ncountry (disregarding the script and the variant). However,\nconfigs with scripts and variants are considered to be more\nspecific than those without.\n\nChange-Id: I3c2e909ebbebdbbd0ab72a639d531b2b9fdbd9b9\n"
    },
    {
      "commit": "48d22323ce39f9aab003dce74456889b6414af55",
      "tree": "510aa964078d251874e2c0e7c8556f237b5710c4",
      "parents": [
        "65a05fd56dbc9fd9c2511a97f49c445a748fb3c5"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonymobile.com",
        "time": "Fri Jan 31 14:43:27 2014 +0100"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Mon Feb 03 11:20:30 2014 +0100"
      },
      "message": "Runtime resource overlay, iteration 2\n\nSupport any number of overlay packages. Support any target package.\n\nUPDATED PACKAGE MATCHING\n------------------------\nIn Runtime resource overlay, iteration 1, only a single overlay package\nwas considered. Package matching was based on file paths:\n/vendor/overlay/system/framework-res.apk corresponded to\n/system/framework-res.apk. Introduce a more flexible matching scheme\nwhere any package is an overlay package if its manifest includes\n\n    \u003coverlay targetPackage\u003d\"com.target.package\"/\u003e\n\nFor security reasons, an overlay package must fulfill certain criteria\nto take effect: see below.\n\nTHE IDMAP TOOL AND IDMAP FILES\n------------------------------\nIdmap files are created by the \u0027idmap\u0027 binary; idmap files must be\npresent when loading packages. For the Android system, Zygote calls\n\u0027idmap\u0027 as part of the resource pre-loading. For application packages,\n\u0027idmap\u0027 is invoked via \u0027installd\u0027 during package installation (similar\nto \u0027dexopt\u0027).\n\nUPDATED FLOW\n------------\nThe following is an outline of the start-up sequences for the Android\nsystem and Android apps. Steps marked with \u0027+\u0027 are introduced by this\ncommit.\n\nZygote initialization\n   Initial AssetManager object created\n+    idmap --scan creates idmaps for overlays targeting \u0027android\u0027, \\\n           stores list of overlays in /data/resource-cache/overlays.list\n   AssetManager caches framework-res.apk\n+  AssetManager caches overlay packages listed in overlays.list\n\nAndroid boot\n   New AssetManager\u0027s ResTable acquired\n     AssetManager re-uses cached framework-res.apk\n+    AssetManager re-uses cached \u0027android\u0027 overlays (if any)\n\nApp boot\n   ActivityThread prepares AssetManager to load app.apk\n+  ActivityThread prepares AssetManager to load app overlays (if any)\n   New AssetManager\u0027s ResTable acquired as per Android boot\n\nSECURITY\n--------\nOverlay packages are required to be pre-loaded (in /vendor/overlay).\nThese packages are trusted by definition. A future iteration of runtime\nresource overlay may add support for downloaded overlays, which would\nlikely require target and overlay signatures match for the overlay to\nbe trusted.\n\nLOOKUP PRIORITY\n---------------\nDuring resource lookup, packages are sequentially queried to provide a\nbest match, given the constraints of the current configuration. If any\npackage provide a better match than what has been found so far, it\nreplaces the previous match. The target package is always queried last.\n\nWhen loading a package with more than one overlay, the order in which\nthe overlays are added become significant if several packages overlay\nthe same resource.\n\nHad downloaded overlays been supported, the install time could have been\nused to determine the load order. Regardless, for pre-installed\noverlays, the install time is randomly determined by the order in which\nthe Package Manager locates the packages during initial boot. To support\na well-defined order, pre-installed overlay packages are expected to\ndefine an additional \u0027priority\u0027 attribute in their \u003coverlay\u003e tags:\n\n    \u003coverlay targetPackage\u003d\"com.target.package\" priority\u003d\"1234\"/\u003e\n\nPre-installed overlays are loaded in order of their priority attributes,\nsorted in ascending order.\n\nAssigning the same priority to several overlays targeting the same base\npackage leads to undefined behaviour. It is the responsibility of the\nvendor to avoid this.\n\nThe following example shows the ResTable and PackageGroups after loading\nan application and two overlays. The resource lookup framework will\nquery the packages in the order C, B, A.\n\n        +------+------+-     -+------+------+\n        | 0x01 |      |  ...  |      | 0x7f |\n        +------+------+-     -+------+------+\n            |                           |\n        \"android\"                Target package A\n                                        |\n                       Pre-installed overlay B (priority 1)\n                                        |\n                       Pre-installed overlay C (priority 2)\n\nChange-Id: If49c963149369b1957f7d2303b3dd27f669ed24e\n"
    },
    {
      "commit": "65a05fd56dbc9fd9c2511a97f49c445a748fb3c5",
      "tree": "f832a1d344dc2102ebbf247a46dcd2839761161a",
      "parents": [
        "c064a1b5d9a68bb5513e6ed64a067ab822e98764"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonymobile.com",
        "time": "Fri Jan 31 14:01:52 2014 +0100"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Mon Feb 03 09:47:16 2014 +0100"
      },
      "message": "New command line tool \u0027idmap\u0027\n\nIntroduce a new tool \u0027idmap\u0027 to handle generation and verification of\nidmap files. The tool is modelled on \u0027dexopt\u0027, and is intended to be\nused similarly, notably by \u0027installd\u0027.\nSee cmds/idmap/idmap.cpp for further documentation on \u0027idmap\u0027.\n\nNote: this commit is interdependent on a commit in project build/ to add\n\u0027idmap\u0027 to PRODUCT_PACKAGES.\n\nNote: the changes to androidfw are only stubs. The actual implementation\nwill be provided in Runtime resource overlay, iteration 2.\n\nChange-Id: I7131b74ece1e46c8a9c0a31d103e686aa07da2bb\n"
    },
    {
      "commit": "7c4887f66bfa3dad16f8b03dc825ade96d7de130",
      "tree": "9ed404cd4e19d5a28b75fe132fae66bce4550276",
      "parents": [
        "e05b7b50e234e8ed2471f5ad96bb3d715067e9f3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 17:32:37 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 31 13:47:27 2014 +0000"
      },
      "message": "Change ResourceType cookies to int32_t.\n\nAlso change the order of parameters in ResTable constructors\nto avoid ambiguity.\n\n(cherry picked from commit 00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1)\n\nChange-Id: I874c5d03c134dc3c331fba423b5280366296287c\n"
    },
    {
      "commit": "00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1",
      "tree": "d1d6075692ef537e80d05255a13204a61f0f8a04",
      "parents": [
        "729b12c7a91f9caa65af77197cf6a8814a5a2051"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 17:32:37 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 28 16:27:52 2014 +0000"
      },
      "message": "Change ResourceType cookies to int32_t.\n\nAlso change the order of parameters in ResTable constructors\nto avoid ambiguity.\n\nChange-Id: If7bfa1f640dddca39b9f26a3ce84081fa7b6e6e3\n"
    },
    {
      "commit": "a0c6260705c841f501282e0e337970ca9a00e064",
      "tree": "5bbe084bd77b819306f743d5fba14ab4a9fff55e",
      "parents": [
        "f85e41f29a0e9313c2d4725f9d9648591ea49f3b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 24 13:51:51 2014 +0000"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:11 2014 -0800"
      },
      "message": "AssetManager cookies should be int32_t and not void*.\n\nCookies are really indices into vectors and arrays, so\nthey don\u0027t need to be void*. We choose int32_t instead\nof size_t to allow their width to be well specified.\n\nChange-Id: I319f271bd4f102dee7cb9f00df4c75ea697456f5\n"
    },
    {
      "commit": "90f58dbf79057b185b04c5003c8bcae10116409b",
      "tree": "d4f9dd2296d1137e57c8452a1e6f77c67150a0d2",
      "parents": [
        "560566d2915c03bed338fc532ac7f7aa3620cfdf"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 16:48:07 2013 +0000"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:11 2014 -0800"
      },
      "message": "Add libutils dependency for libandroidfw host build.\n\n(cherry picked from commit 070274ec0ccb8643c52e41e4119f356f0f51bc36)\n\nChange-Id: I25acff1d36b3adce14b2576485bda93c914d7f5d\n"
    },
    {
      "commit": "560566d2915c03bed338fc532ac7f7aa3620cfdf",
      "tree": "05c38c1fdcea2989eab2ff6e2934afa4f1f09326",
      "parents": [
        "e1aa223657dd1def8609b377afa86a024bfd4e14"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 03 13:16:03 2013 +0000"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:11 2014 -0800"
      },
      "message": "Reimplement ZipFileRO in terms of libziparchive.\n\nThis lets us share zip archive processing code with both\nthe runtime (Art, dalvik) and critical java code\n(StrictJarFile).\n\nThis change also moves several utility methods to ZipUtils\nand dedups code across several zip inflation methods.\n\nOne of the side effects of this change is that several\nprocessing loops are now O(n) instead of O(n^2).\n\nbug: 10193060\n\n(cherry picked from commit afd31e08299008fdc5c2813f21b2573f29dc53df)\n\nChange-Id: Iae67e62f1dc6dfc3f43e29bc38e3ffd1cb14d191\n"
    },
    {
      "commit": "e1aa223657dd1def8609b377afa86a024bfd4e14",
      "tree": "08607c4499d19e653f70c710c67ea59340372f84",
      "parents": [
        "16c4d154dca43c662571129af31b27433b919a32"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 15:28:08 2013 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:10 2014 -0800"
      },
      "message": "Re-apply androidfw fixes lost by the directory rearrangement.\n\nAssignment to wrong variable in libs/androidfw/AssetManager.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61560\n\nMissing delete[]s in libs/androidfw/ObbFile.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61549\n\nChange-Id: I24e6867284d70a7793d78e62d1a836cbee310fb0\n"
    },
    {
      "commit": "16c4d154dca43c662571129af31b27433b919a32",
      "tree": "ca326aee44fd70c7db61f7a9632c0d29f6565414",
      "parents": [
        "9ab9b93eae8b2fc747d6101cf0e4c19b2218715f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 24 13:27:13 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:10 2014 -0800"
      },
      "message": "Revert \"move libandroidfw to frameworks/native\"\n\nThis reverts commit 84b6292c33d71b5739828d08aa8101d1954577f2.\n"
    },
    {
      "commit": "745d4efc8369d255341d810790132660e33d3b61",
      "tree": "f28ae30721d932409fd8189ac6ef5c0289d106c2",
      "parents": [
        "9fc157a4767f54d1cff53dc9489638b67aec2da3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 11:17:22 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 11:20:24 2014 +0000"
      },
      "message": "AssetManager cookies should be int32_t and not void*.\n\nCookies are really indices into vectors and arrays, so\nthey don\u0027t need to be void*. We choose int32_t instead\nof size_t to allow their width to be well specified.\n\n(cherry picked from commit ebfdd0f467e39c3af8d92cade78263935340acb7)\n(cherry picked from commit a7fa2e592e2e579e5acdb903dba83fc074ebc215)\n(cherry picked from commit a9d5701b034ed2d9771b3f0943e1add00741d7cd)\n\nChange-Id: I2aed3db568b6fdc487bf99e2c5dd123206736fda\n"
    },
    {
      "commit": "070274ec0ccb8643c52e41e4119f356f0f51bc36",
      "tree": "18eb61af1da9cc0b4a7440c41f8aef730db48d6a",
      "parents": [
        "d21752dff45c7d8856e63026cfddc303a302df14"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 16:48:07 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 16:48:07 2013 +0000"
      },
      "message": "Add libutils dependency for libandroidfw host build.\n\nChange-Id: I7fe0bb466f0b1cdbfef8934da2231ad20f05b648\n"
    },
    {
      "commit": "afd31e08299008fdc5c2813f21b2573f29dc53df",
      "tree": "7f83dd8f1e7ed71d4fe8ce280841e43ce275ac6d",
      "parents": [
        "6e2d0c1d91f644ab50e0c0b7cae4306262a4ca41"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 03 13:16:03 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Dec 09 16:23:16 2013 +0000"
      },
      "message": "Reimplement ZipFileRO in terms of libziparchive.\n\nThis lets us share zip archive processing code with both\nthe runtime (Art, dalvik) and critical java code\n(StrictJarFile).\n\nThis change also moves several utility methods to ZipUtils\nand dedups code across several zip inflation methods.\n\nOne of the side effects of this change is that several\nprocessing loops are now O(n) instead of O(n^2).\n\nbug: 10193060\n\nChange-Id: I3c7188496837a47246c4f342e45485a70fef3169\n"
    },
    {
      "commit": "dbccd44a638ae8705a5b14bff8b2dd74abc26045",
      "tree": "14bfabaf3f3c7be86dfc064e919e00433a0cf2bb",
      "parents": [
        "ecfae4f899873f224e1aeed076dc8a41f8884487",
        "b873a17ce7be0a9771c24999adca6964431728f6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "message": "Merge commit \u0027b873a17ce7be0a9771c24999adca6964431728f6\u0027 into HEAD\n\nChange-Id: I938755073e70602cc8f51ce9bd420fdcf870cecd\n"
    },
    {
      "commit": "c367d48c55e5a3fa0df14fd62889e4bb6b63cb01",
      "tree": "cc6a7e56e5c5e74d66603c8170660fd99c52bff3",
      "parents": [
        "b4cae4a955ebd91cf35aaeb00ab12ce6f1d5fc48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "message": "Fix a variety of small publicly-reported bugs.\n\nPossible NULL dereference in cmds/bootanimation/BootAnimation.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61556\n\nMissing fclose in core/jni/android_os_Debug.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61546\n\nBad loop guards in core/jni/android_util_Process.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61557\n\nAssignment to wrong variable in libs/androidfw/AssetManager.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61560\n\nMissing delete[]s in libs/androidfw/ObbFile.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61549\n\nLeaks on error in tools/aapt/Images.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61552\n\nTwo missing fclose calls in tools/aapt/Resource.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61553\n\nMissing fclose in tools/aidl/aidl.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61554\n\nChange-Id: I5820f3824e72d07a9acb776cf0af3e7443f5694a\n"
    },
    {
      "commit": "84b6292c33d71b5739828d08aa8101d1954577f2",
      "tree": "d39f8bbaf0f20fa086038741e117278bb67ba1b2",
      "parents": [
        "92a6f3018ace5aa2d5ea74e7d378b6960b5e053e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Oct 03 10:30:18 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Oct 03 10:30:18 2013 -0700"
      },
      "message": "move libandroidfw to frameworks/native\n\nChange-Id: Ic5b8a2742c7141156ab0f00ca29097bfe92bce60\n"
    },
    {
      "commit": "fd5f566db84722f9cf54085d8a378e9398ef260d",
      "tree": "99a1785b8ad569fde85245570ebb0f9e7fac8ad9",
      "parents": [
        "6885d577cbfe8dedcdb82fc066a4408ea762204f"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Thu Sep 19 13:03:53 2013 -0400"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Wed Sep 25 19:33:21 2013 +0000"
      },
      "message": "add a test for BackupData helpers.\n\nBug: 10821481\nChange-Id: I3e28123d36927ae4a22d26378b8bf1cd4e87cfd2\n"
    },
    {
      "commit": "1c7cf90af4d81e609dcb6b0f9afa5787e2a8a344",
      "tree": "c596c9eb53eaa85eedad9eaf284f21d1da66991f",
      "parents": [
        "d292f790be5074998c1adc5feb4fea031d0d3d09"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Sep 11 15:28:39 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Sep 11 15:28:39 2013 -0700"
      },
      "message": "Fix another off-by-one error in ZipFileRO\n\nBug: 10424836\nChange-Id: I491458bd31ef39e87127d061427b32a3d59ac807\n"
    },
    {
      "commit": "0d6c2d7b9db209d740992045dd3b842e52306598",
      "tree": "28177f4589207d53e7249c8b83a8fe3c4e6e60f1",
      "parents": [
        "c1cf491d160f8feb74b24d4ebb4e39324850cf61"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 21 10:40:16 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Sep 11 11:44:40 2013 -0700"
      },
      "message": "Reconcile differences between zip implementations\n\nReconcile the difference between ZipFileRO and java.util.ZipFile to have\nthe same behavior.\n\nBug: 10424836\nChange-Id: I6bde1bad7e20065ee650945fd43a913c05ce5ac7\n"
    }
  ],
  "next": "0c4b3646b0feb1bed89bf374ff03af797834d8c3"
}
