)]}'
{
  "log": [
    {
      "commit": "c1858228df18528aabe1ff223335f613be2b99d8",
      "tree": "17ebf5987996fa58c3e8b10a43b213d771f40fdf",
      "parents": [
        "33ee1e779d20fba8f8379296641c12cd6982506e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 20:49:24 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 20:49:24 2014 -0700"
      },
      "message": "Fix a few more stray libcore.io references.\n\nChange-Id: Id328544bd3a382fec16507d0ae5b699fef44ebd7\n"
    },
    {
      "commit": "f97c63350abcc6715ba9fdc21fd3405d0f7ba716",
      "tree": "9eba371ad46dc3dd0b70e40ad494623421979fab",
      "parents": [
        "54dacbe7ca6d8a8c71d601fcf773e7b27eba3a53"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 16:38:43 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 16:38:43 2014 -0700"
      },
      "message": "Move internal libcore.os users over to android.system.\n\nChange-Id: I84e1ace19ba3b4e58d7bb24f3ecda1bdf5dc75a5\n"
    },
    {
      "commit": "ebf8ad5d91b22eb4359c75711a5b70ddcce0723d",
      "tree": "8e4664b788a5de2a64c2b8764da9727c3305b9ed",
      "parents": [
        "b341a24b2adbb67cdc34ade0a19570ee37f0cb82"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 30 15:01:22 2014 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 06 09:47:38 2014 -0800"
      },
      "message": "Update DrmOutputStream to use raw FileDescriptor.\n\nThis allows DownloadManager to use FDs, paving the way for downloading\ndirectly to content:// Uris.\n\nAlso return flag indicating if deleteOlderFiles() actually deleted\nanything.  Update tests to verify.\n\nBug: 5287571\nChange-Id: I2579e5e2113f31b2860d7b021bd61c91b6310963\n"
    },
    {
      "commit": "38885b63fc41e664681b6fd12159c7ce04e3addc",
      "tree": "59d8a105b130b57df521d4f171f7043a14c3f42a",
      "parents": [
        "ef099b71838e15758c8e859af21748a123bb4a99",
        "38638b2fcc4aba428889d521d83762d716e32332"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jan 29 12:50:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 29 12:50:09 2014 +0000"
      },
      "message": "am 38638b2f: am eaae9906: am 672f3ee3: am 95ba1eb6: am dd6de16a: Merge \"AArch64: Use long for pointers in DRM classes\"\n\n* commit \u002738638b2fcc4aba428889d521d83762d716e32332\u0027:\n  AArch64: Use long for pointers in DRM classes\n"
    },
    {
      "commit": "33d603877acf76d5d59484532025af20f4b068a5",
      "tree": "58d4472d789e6da440a2c3f2db37953bba16cc77",
      "parents": [
        "486544f763bd27eb92c95101e23f939c79c9890e"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Fri Jan 17 12:05:52 2014 +0000"
      },
      "committer": {
        "name": "David Butcher",
        "email": "david.butcher@arm.com",
        "time": "Fri Jan 17 14:38:25 2014 +0000"
      },
      "message": "AArch64: Use long for pointers in DRM classes\n\nFor storing pointers, long is used in DRM classes,\nas native pointers can be 64-bit.\n\nIn addition, some minor changes have been done\nto conform with standard JNI practice (e.g. use\nof jint instead of int in JNI function prototypes)\n\nChange-Id: I101b0ea19ed93651c6ad1a9fa55e14e8be117469\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n"
    },
    {
      "commit": "6090995951c6e2e4dcf38102f01793f8a94166e1",
      "tree": "37f32f4b269fc26a18e3249a18459a476c473266",
      "parents": [
        "266f48cc042dda828109eb135088cdb6f0f7c1d5"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Nov 19 16:54:46 2013 -0500"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Nov 20 11:31:47 2013 -0500"
      },
      "message": "Remove unused imports from frameworks/base.\n\nChange-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906\n"
    },
    {
      "commit": "490dd056bd2fdfc630cd43b3fc1c90baf509bffe",
      "tree": "6acdce26ed26a33c7277cf828b4129cbf7fe5ff6",
      "parents": [
        "7f60dc57780281030f26a2109a64d0260e976af7"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 30 23:04:34 2013 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Sep 03 10:13:17 2013 -0700"
      },
      "message": "Revert \"Enhancement for OnInfo callback on DRM Framework\"\n\nThis reverts commit 6fd97b7d93c5eeaefb2695786b35d1672c88b0cf.\n\nFixes Fatal signal 6 (SIGABRT)\" when playing or downloading a video\nbug: 10542864\n\nChange-Id: I85b84d6b602079571be1a7237c907716db9cdf54\n"
    },
    {
      "commit": "6fd97b7d93c5eeaefb2695786b35d1672c88b0cf",
      "tree": "1b8f627cf799f0b9eeb9dcb6bbd1e09c031d7716",
      "parents": [
        "b8d3a3de675a42b0eed6117eca509c42903d7ee3"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Wed Jul 11 17:13:38 2012 +0900"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 23 18:02:40 2013 -0700"
      },
      "message": "Enhancement for OnInfo callback on DRM Framework\n\nIn DRM framework, plugins can transmit DrmInfoEvent to Java layer.\nAlthough DrmInfoEvent has several entries, current implementation\ncan only convey integer and String. This change enables plugins\nuto propagate a hashmap to Java layer. The hashmap can have\none or more Strings and one byte array as value.\n\nChanges are made by Sony Corporation.\n\nbug: 10459159\n\nChange-Id: I5f2bfb43b676863ef4d220fd4ef1e48777e92752\n(cherry picked from commit 84a5b5cab40711e20ba70c5ed4dfeab6b558b53b)\n"
    },
    {
      "commit": "7ccc90955fad0701b6b14c813a2850ee4149c5a2",
      "tree": "739a3713dfef5518ed642f8602593fd8b772b28a",
      "parents": [
        "f67c8a9685e0f20d5ffb9de95f6d1ce47f052141"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Dec 17 17:03:11 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Dec 17 17:04:16 2012 -0800"
      },
      "message": "Move stream creation outside of DrmOutputStream.\n\nMore closely matches the object ownership pattern used by other\nstream APIs. Callers must now explicitly finish(). Also fixes\nwrite(int) bug by switching to Streams API.\n\nChange-Id: I64f9c5887ef02496b1ce4e97ce6af5dad93b4be2\n"
    },
    {
      "commit": "f67c8a9685e0f20d5ffb9de95f6d1ce47f052141",
      "tree": "30aa3e2376095dee656ac963632d080abb728b4a",
      "parents": [
        "fdb9138c401558e109ecdadc7acbc88b75634202"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Dec 13 08:55:59 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Dec 13 13:51:40 2012 -0800"
      },
      "message": "Move DRM to CloseGuard, add DrmOutputStream.\n\nSwitch DrmManagerClient to using CloseGuard to better track leaked\nresources.  Add DrmOutputStream which applies DRM transformation as\ndata is written, similar to FilterOutputStream.  Also writes DRM\nheaders before closing.\n\nChange-Id: Ic106a3e6f6ff666e4dda484fbd234a0849eec8c0\n"
    },
    {
      "commit": "58ed5d748c0b9b64845975ef5844ad313de7c3f6",
      "tree": "507af3879bc894eb854712a1fe6c0953805a895c",
      "parents": [
        "9197d170b770f2b87abd0cd0e13dcf71e5a181c2",
        "768d9e1a72ceee7d4a5f608776b87b62d6ce4a04"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "message": "am 768d9e1a: Merge \"Correct executable bit for source files\"\n\n* commit \u0027768d9e1a72ceee7d4a5f608776b87b62d6ce4a04\u0027:\n  Correct executable bit for source files\n"
    },
    {
      "commit": "3a084af2e90849aaa8beb3a610189e3399c63ea0",
      "tree": "ba4b87d227674fd68f9ea395649fde32778620f0",
      "parents": [
        "9d547d6934f64189e368c0b190fb4cf49c95a557"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:19:47 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:27:31 2012 -0800"
      },
      "message": "Correct executable bit for source files\n\nMany media files and source code files were marked as executable in Git.\nRemove those.\n\nAlso a shell script and python script were not marked as executable.\n\nChange-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5\n"
    },
    {
      "commit": "0889fdae87abd9ec78a6c1d00c2771acfa4e4d34",
      "tree": "fa3c732ba63608c530b2424f16808b7c704cfb00",
      "parents": [
        "f83d2d6f6b4a23011226a7b9fee20dabf94820cb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 08 17:45:59 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 22 13:47:19 2012 -0700"
      },
      "message": "Let getOriginalMimeType() take a fd passed from drm java applications\n\nAt present, we did not actually pass the fd. This patch allows us to\nmake the changes necessary in the future without worrying too much\nabout broken build.\n\nrelated-to-bug: 6426185\n\nChange-Id: I125decff9be621a72f2631fd439994a94a526606\n"
    },
    {
      "commit": "011385508726fef027641fcbb3e4e446efc9af2c",
      "tree": "8e48b991e5376e4b27c1ed2b457efbc23bf2bee6",
      "parents": [
        "a08dc5de8d039a4fd0a8c1286147c6afd01d2edf"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 07 14:49:00 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 07 14:49:00 2012 -0700"
      },
      "message": "Fix an issue where the message queue fails to queue in the looper threads because they are not created.\n\no related-to-bug: 6293875\n\nChange-Id: I03dbb2782bd90f88d1f8df086b8a529730afe5dc\n"
    },
    {
      "commit": "e43dadffb8ac8756216a7696dbff987a6d5d8569",
      "tree": "c67c50a650003ad03080dfdc8c5165733b82af36",
      "parents": [
        "1a7dd039f189036709bc2253ba50955913f59d7a",
        "52cb1e5988a8a97c668b935fb5d8d358cb3c635a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 02 11:01:27 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 11:01:27 2012 -0800"
      },
      "message": "Merge \"Fixes to DrmConvertedStatus, DrmInfoStatus, and DrmSupportInfo classes\""
    },
    {
      "commit": "7edb9a94908f41b9dc3aa13d2089efa304f12c22",
      "tree": "d1fbba11323401994e4476f912ae37ec5a1ae245",
      "parents": [
        "b08dee9d38fb73715f17183dbc57b7130796b935",
        "f73222a39e0fa294d9105fd7464943aed6e77cd7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Mar 01 15:35:39 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 01 15:35:39 2012 -0800"
      },
      "message": "am f73222a3: am 964955e0: am 8a9b14d8: am 5aeb8587: Merge \"DRM framwork bug fix: add an API to release resources\"\n\n* commit \u0027f73222a39e0fa294d9105fd7464943aed6e77cd7\u0027:\n  DRM framwork bug fix: add an API to release resources\n"
    },
    {
      "commit": "52cb1e5988a8a97c668b935fb5d8d358cb3c635a",
      "tree": "c0a470cdbb83a589b13abdb92294da648537771b",
      "parents": [
        "8279570b222d46def4e541d71ef29dbfd9fbe3d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 16:56:21 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 01 12:23:46 2012 -0800"
      },
      "message": "Fixes to DrmConvertedStatus, DrmInfoStatus, and DrmSupportInfo classes\n\no added missing javadoc comment for some public fields\no added checks for arguments\no DrmSupportInfo should have not been exposed as public.\n  A default package access modifier appears to be more proper but we may\n  not be able to change the modifier.\n\nChange-Id: I5b284c17219c5121f241ee2934fb3e859ce7c827\n"
    },
    {
      "commit": "6225df010365d00b1d0f3b1ca13f18cea537c8e3",
      "tree": "f8ec6b625745c57b4a0dbe6aab02072cf10be8d4",
      "parents": [
        "d7fa7deef9bc0cf22bf450fdb062327697c087c4"
      ],
      "author": {
        "name": "Kei Takahashi",
        "email": "KeiA.Takahashi@jp.sony.com",
        "time": "Tue Jan 31 13:18:45 2012 +0900"
      },
      "committer": {
        "name": "Kei Takahashi",
        "email": "KeiA.Takahashi@jp.sony.com",
        "time": "Wed Feb 29 12:59:53 2012 +0900"
      },
      "message": "DRM framwork bug fix: add an API to release resources\n\nWhen DrmManagerClient object is created and released many times,\nthe process suddenly crashes.\nThe case can happen when we make many thumbnails of\nDRM-encrypted contents.\n\nThe problem is caused by shortage of file descriptors.\nDrmManagerClient releases references of file descriptors\nonly when GC runs. So file descriptors are kept long time\neven after the reference of DrmManagerClient are released.\n\nBy introducing DrmManagerClient#release() API,\nthe problem is solved. An application call this API\nwhen we no longer need to use DrmManagerClient object.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: Ie0bbc29cc33872449824285a8d67b1c3cdd8082b\n"
    },
    {
      "commit": "2f16d7eae1b2dfd87be5fc55be3bec012ab7389d",
      "tree": "824b876f5311a8e5cf04880be5fd79c25a204b13",
      "parents": [
        "e512ad5089eef76d080fc6fdd17dfb88ad8b72e9",
        "5cb68c86ccb34d42bd4fb59128043037f74763a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 14:34:02 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 14:34:02 2012 -0800"
      },
      "message": "Merge \"Fix API issues in DrmRights class.\""
    },
    {
      "commit": "e512ad5089eef76d080fc6fdd17dfb88ad8b72e9",
      "tree": "a5ab41eb26de07c303f77a31fcb221c98884b059",
      "parents": [
        "6fa13b5a02464281df56919009fa3af5a3f9026b",
        "060526f9856e52964eaf13df8db74f5fbdcb83b1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 14:33:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 14:33:19 2012 -0800"
      },
      "message": "Merge \"Deprecate default constructor for classes that should have been meant to be interfaces\""
    },
    {
      "commit": "da5ac93b005b5523a7f18594f52ee169d83e08d4",
      "tree": "744f2dc6d4225baee6f63c4944c6cc6dad841372",
      "parents": [
        "04a3a4350e320b65bda9fae6500250c4880e4bf2",
        "f7a68fc98550859019bb0636fc3e8d88cb50e6a6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 13:09:24 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 13:09:24 2012 -0800"
      },
      "message": "Merge \"Added missing javadoc comment for public API in DrmUtils class\""
    },
    {
      "commit": "f7a68fc98550859019bb0636fc3e8d88cb50e6a6",
      "tree": "b37eed8d007d0be23b87bc49300cd42faa07ec65",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 22:43:30 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 22:46:02 2012 -0800"
      },
      "message": "Added missing javadoc comment for public API in DrmUtils class\n\no also fixed mis-spelled private method name (quiteDispose \u003d\u003e quietlyDispose)\n\nChange-Id: I692cd7471eac547b849dd53853f60843b3915750\n"
    },
    {
      "commit": "5cb68c86ccb34d42bd4fb59128043037f74763a3",
      "tree": "94a5dcc3167c131147417ca6abdcb1b53ad9df26",
      "parents": [
        "6f9d697d8316f25be0e2a472604fd7e17d214c64"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:34:04 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:34:04 2012 -0800"
      },
      "message": "Fix API issues in DrmRights class.\n\no account id and subscription id are not mandatory, and thus can be anything\n  such as null or an empty string.\no removed unnecessary or thus inconsistent checks for account id and subscription id\no updated the javadoc to specify that mimeType could not be null or an empty string.\n\nChange-Id: I704f1dd7fc5d33060da908aae0469d560c7db036\n"
    },
    {
      "commit": "c4a9976aa15929a73ab7c0979d8b2e1e9eeadcc7",
      "tree": "7b080af1f029f3d515f0a398baaf80849d4b2755",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:13:37 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:25:31 2012 -0800"
      },
      "message": "Deprecated a mis-spelled method and replaced it with a new method\n\nChange-Id: Id049a4effab120c3f837cde60a87efcd89a64ec6\n"
    },
    {
      "commit": "060526f9856e52964eaf13df8db74f5fbdcb83b1",
      "tree": "830d8f468d530b01ac950b83484eb789959f0f67",
      "parents": [
        "fd400f5f483d76a38a28155a7328a953ed3ec36f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 16:41:22 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 27 18:00:12 2012 -0800"
      },
      "message": "Deprecate default constructor for classes that should have been meant to be interfaces\n\no We should have not exposed these default constructors in the first place.\n\nChange-Id: Ia8bcfe77e9730021ad8870ece67c6d0eed8146ad\n"
    },
    {
      "commit": "b7956de3a9eba521fd681cece0370d0b5960ed1e",
      "tree": "0f7168f7f09b95fd930d856baae316f2845bd4b3",
      "parents": [
        "aacc4b86c92df00bc68fd3af7ca79699ca8e8191",
        "365ce1db339db53cd5afb118ff867fe940644e45"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 24 16:36:34 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 16:36:34 2012 -0800"
      },
      "message": "Merge \"Improved comment about DrmStore.ConstraintsColumns\""
    },
    {
      "commit": "e82f055e3eb1b0b3daf87bc14258fa65568b4f8a",
      "tree": "7df4c2eea446d74f44ea3f8f67db58eac5cf8959",
      "parents": [
        "2d77b5332ac4ef5b252fbd8f56a195e0fce03292"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 23 15:01:46 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 24 15:50:41 2012 -0800"
      },
      "message": "Only allow valid types to be used in DrmErrorEvent and DrmInfoEvent\n\no This patch will prevent applications from abusing the API by using\n  arbitrary int value for DrmErrorEvent or DrmInfoEvent types.\no We should have not defined some type constants in the super/base\n  class, DrmEvent.\n\nChange-Id: Id0bb12caa8ce471cb6951cc2b5d37ea408f90063\n"
    },
    {
      "commit": "365ce1db339db53cd5afb118ff867fe940644e45",
      "tree": "8b1ad4d1dc4c3d72850c39d2dcf7a8a979e79346",
      "parents": [
        "0b5a6b2e8afe2185c3589a7e2a1e12e721af0c24"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 23 00:12:29 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 23 10:58:55 2012 -0800"
      },
      "message": "Improved comment about DrmStore.ConstraintsColumns\n\nChange-Id: I89c588759dd409ac0252d686af12bfe4e105f3d5\n"
    },
    {
      "commit": "6c95d4ff1656007ab5cbf0a6406d80a33bf8b109",
      "tree": "f241ed246cfe2bf55fd97f0edb2bd592355c14f2",
      "parents": [
        "a9daa164a58fc70d08702787e69a56212f5ad8c9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 14 16:27:38 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 15 11:30:51 2012 -0800"
      },
      "message": "Added checks for illegal arguments\n\nChange-Id: Ib386c33b7e2cab12cabbb9dc023d54df05472960\n"
    },
    {
      "commit": "a17d454fd0d20d14cf1fbc09f0f296cb6cbb870b",
      "tree": "e7ecaa5d516248aee80cf5887f50c5b75e91a0f4",
      "parents": [
        "ae5df05f2246515a652f0c935c6deb85a0bdee01"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Jul 21 15:10:22 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Jul 25 16:09:58 2011 -0700"
      },
      "message": "Fix for bug 4371230.\n- Generate unique ID for each DrmManagerClient in native side\n- Fix the bug where multiple clients could use the same ID\n- Return the correct unique ID back to Java\n- Add a flag in the unique ID to separate native client and Java client\n\nChange-Id: Ia4574b6b0a526f2335a65380975dc62f9a6e7f9b\n"
    },
    {
      "commit": "b7e7bdfe784959ac8615851c2741eb9518a5afcf",
      "tree": "4111a7f161fc225c4396a62192828168bfa3833c",
      "parents": [
        "8969d9924c662ab4cdacc342bbdc33756db730be"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jun 22 14:55:16 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jun 22 16:36:24 2011 -0700"
      },
      "message": "- Add two sanity checks.\n- Remove one unnecessary line.\n- Clear the extendedData vector in DecryptHandle.\n\nChange-Id: I2610c6d68f12d48cb69323a5eb2ae4b3b3e44dff\n"
    },
    {
      "commit": "2980a213752d6e30edd4c689489cb4a2c3006252",
      "tree": "bb9c533e73b6fcdefed5579be164b750cc3cc244",
      "parents": [
        "b2e9cde84b1df0506ac416ec6828e3f06de43293"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jun 15 10:27:52 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jun 15 17:32:06 2011 -0700"
      },
      "message": "-Fix some typo\n-Remove one unnecessary memory allocation\n\nChange-Id: Icea21f33d2c7891333e06429d2f382389e5bd27f\n"
    },
    {
      "commit": "f46821b9d932ba0f1d0dfd88e98f319e0d3b789b",
      "tree": "5949396fcd84b81ee28eac126443ff0f07071a39",
      "parents": [
        "ba7c35dcc7b7bcdae8d92f875b1ae2cf0c9b8d89",
        "640f63c2669fc9dc38b349066d4d28111655dc3f"
      ],
      "author": {
        "name": "Bill Gruber",
        "email": "billg@google.com",
        "time": "Wed Mar 23 16:00:30 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 23 16:00:30 2011 -0700"
      },
      "message": "am 640f63c2: am 3bde4594: am 0357ec78: Merge \"DRM API doc scrub This change contains information contributed by Sony Corporation. Bug: 4119363\" into honeycomb-mr1\n\n* commit \u0027640f63c2669fc9dc38b349066d4d28111655dc3f\u0027:\n  DRM API doc scrub This change contains information contributed by Sony Corporation. Bug: 4119363\n"
    },
    {
      "commit": "0e092f806b0a4b81785a52da8ba22d2d47087de5",
      "tree": "91c2d7f1aed528a955211ec89317e3b9f99e215a",
      "parents": [
        "5dbd0978cd7f2d3ff1e28bbfdef2f757de28e1bc"
      ],
      "author": {
        "name": "Bill Gruber",
        "email": "billg@google.com",
        "time": "Thu Mar 17 16:04:18 2011 -0700"
      },
      "committer": {
        "name": "Bill Gruber",
        "email": "billg@google.com",
        "time": "Wed Mar 23 13:21:48 2011 -0700"
      },
      "message": "DRM API doc scrub\nThis change contains information contributed by Sony Corporation.\nBug: 4119363\n\nChange-Id: I6f565c15d512d675993dc65f7fee19bd3d0bc0fa\n"
    },
    {
      "commit": "454b2d1c34238ba33d8f6861971a74c80c3e302a",
      "tree": "ff078839aaf33111641bad0c51337a27e2d15849",
      "parents": [
        "08aa2cbd5e62e7ca140f78f8bea0477a19880fd9",
        "2c3257b21ddf2a3da843f11d1bb3b4fa8e912707"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 17 12:38:40 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 17 12:38:40 2011 -0700"
      },
      "message": "am 2c3257b2: am 9940c8b6: am def35f7a: Merge \"Fix for 4089881. - Add one more parameter in the interface of DrmEvent and its subclasses   DrmInfoEvent and DrmErrorEvent - Send back DrmInfo in the response of async processDrmInfo calls\" into honeycomb-mr1\n\n* commit \u00272c3257b21ddf2a3da843f11d1bb3b4fa8e912707\u0027:\n  Fix for 4089881. - Add one more parameter in the interface of DrmEvent and its subclasses   DrmInfoEvent and DrmErrorEvent - Send back DrmInfo in the response of async processDrmInfo calls\n"
    },
    {
      "commit": "f8bf3c46f524b1252bf466a351daaef61afdcecb",
      "tree": "40f222d60751b8278291b5890d7fc3f2fb6a75eb",
      "parents": [
        "3913c131c61288c5b4eedb063d9eb6b6204d2a1f"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Mar 16 10:44:03 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Mar 16 21:36:30 2011 -0700"
      },
      "message": "Fix for 4089881.\n- Add one more parameter in the interface of DrmEvent and its subclasses\n  DrmInfoEvent and DrmErrorEvent\n- Send back DrmInfo in the response of async processDrmInfo calls\n\nChange-Id: Ia9b1a641296629a19ae4ffa7913e6c878fd340f8\n"
    },
    {
      "commit": "0e5e2e2b2bb3d6c3a0216181df29e6bfdc71256f",
      "tree": "fa2438bdf9db0b794cf09ea70fab05bf8f3f22e6",
      "parents": [
        "d4a9bb569e6d23294dae5be21023f3182e7586a1",
        "5c96c65f692f8c2297d213c88450dd601d2b5c1f"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Mar 15 14:10:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 15 14:10:30 2011 -0700"
      },
      "message": "Merge \"Bug fixes of DRM framework.\""
    },
    {
      "commit": "5c96c65f692f8c2297d213c88450dd601d2b5c1f",
      "tree": "feacc3cf000a8c991d5759a5e1c4ed2db301c995",
      "parents": [
        "6f3a75e13b86a3f40fe34e3ebd17b118791a73a4"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Mar 15 10:52:28 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Mar 15 11:17:22 2011 -0700"
      },
      "message": "Bug fixes of DRM framework.\n\n- Add death listener to clean-up drmserver appropriately\n  when drmserver died.\n- Remove \"static\" declaration of mUniqueIdVector because it was not\n  needed to be static variable.\n- Remove \"class DrmContentIds;\" because the class does not exist.\n- contentPath in saveRights() could be empty because\n  it is not required by some DRM schemes.\n- Fix naming convention to use sXXX for static variables.\n- Fix typo\n\nChange-Id: I7d440488fc074c200f1009d1bafafeffebd690b2\n"
    },
    {
      "commit": "27b277779c89251f2aafcc7a56db95d264900c9d",
      "tree": "9bec6bf81a5b201b570c8d1a3255c50905679d47",
      "parents": [
        "3ec9d06f070db3a8899ad235736abd0ffaf6f578"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 12:04:15 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 15:29:08 2011 -0700"
      },
      "message": "For issue 4082089\nAdd more info and error events into the DRM framework\n\nChange-Id: I0bb3251c5947fc8e977d478e1ba46b242cb97e9d\n"
    },
    {
      "commit": "b8b6a9a8d405d2a3f1d593ebaf7f07574dd586b9",
      "tree": "55e74b6d1be75d523d3c4bcfb6241bc6e8f334b4",
      "parents": [
        "d7e80b9d5046603ac4a36ea74e204a2ad70a4dca"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 07 10:41:41 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 07 10:41:41 2011 -0800"
      },
      "message": "To support uri started with http:// in some Java APIs\nFix for bug 4016388.\n\nChange-Id: I9f6f449dca49eb03446bf6aa22b5dd467ca189c9\n"
    },
    {
      "commit": "4ef690a38b1dfdff3ae34e260435edcec37e520f",
      "tree": "b9eba3a34c80f85fb3c709b14df8e5687db1c111",
      "parents": [
        "0528bc77948e49bd75cfd4082fb8fef3a7238626"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Mar 02 17:06:16 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Mar 02 17:06:16 2011 -0800"
      },
      "message": "Do not call processDrmInfo if acquireDrmInfo returns null\n\nChange-Id: Ib762d429daaa8cb2310951cc54f26d75aacaf673\n"
    },
    {
      "commit": "f05913aaa0cc96eab32be3431de1a80d405527a1",
      "tree": "808fc1b7a3fd2bdb3e88723fe4d4f457d1217f8f",
      "parents": [
        "f0f6c54b13831b11bd7a3bd7a01dc49b7505e56e"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Tue Nov 30 16:27:42 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Tue Nov 30 16:27:42 2010 +0900"
      },
      "message": "DRM Framework bug fixes.\n\n- Make sure to clean-up obsolete listeners.\n- Close cursor after using it.\n- Add virtual destructor to the base class of OnInfoListener.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: Ibb6dd625ef48e3597188f0d7c90f9d4c780b6139\n"
    },
    {
      "commit": "dc91865622e3cc9ff0bb33b83f1d3b38cd7a6d7a",
      "tree": "910ec95f6e2716cf6911da7247eaee49dc149933",
      "parents": [
        "14ac9546367d4df37eead55f6762b944b49f33b2"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Tue Nov 16 13:56:11 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Fri Nov 19 22:02:51 2010 +0900"
      },
      "message": "Update of DRM Framework.\n\n-Access permission handling\n  Introduce an internal function which allows the desired process to\n  access decryption flow. This new function is just for reference and\n  each OEM manufacturer should implement/replace with their solutions.\n-New API, getMetadata()\n  This API is for retrieving media metadata from container-based DRM,\n  such as OMA forward-lock content. This API asks DRM agent to retrieve\n  media metadata hiddein inside of DRM special container.\n-New API, acquireRights()\n  This API wraps acquireDrmInfo() and processDrmInfo().\n  If DRM agent has valid implementation of both APIs,\n  Application can acquire DrmRights only by calling this API.\n-Bug fix in event loop of OnInfoListener.\n  Separate OnInfo event loop from mail thread loop so as to avoid\n  the issue that message is not dispatched when mail thread is busy.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: I04ee3e0988152a71e221f2256d83253749a29da0\n"
    },
    {
      "commit": "c7b3ccc564448cb4b918728421f9402bc18278c5",
      "tree": "7d97c647cef5ae086048f62636bad3343f193459",
      "parents": [
        "5b4d0e84d314bd58efb9dcf4e7f23f0d0e3fc630"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Fri Oct 08 23:05:49 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Tue Nov 02 08:06:06 2010 +0900"
      },
      "message": "Update of DRM framework\n\n - Overload openDecryptSession() with uri parameter\n   in order to accept URI of DRM content,\n   Following API is added,\n       DecryptHandle*openDecryptSession(const char* uri);.\n - Unify texisting three event types of processDrmInfo()\n   so that caller of DRM framework does not have to handle many event types.\n - Let DrmManagerService call load/unload plugins API so that\n   client of DRM framework does not have to manage plug-in load/unload.\n - Trivial fix in DrmManagerClient.java is also incorporated.\n\nChanges are made by Sony Corporation.\n\nChange-Id: If62b47fa0360718fdc943e6e6143671d7db26adc\n"
    },
    {
      "commit": "dc549d60f98d809f626c99de614960409a847054",
      "tree": "bb40a8371811f1c591cc22afa331e57b3d091c9e",
      "parents": [
        "7d9c73fb6f6f79f7f92b77482a0edbd7b89f2564"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Mon Sep 20 23:40:41 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Mon Oct 04 22:14:53 2010 +0900"
      },
      "message": "Update of DRM framework.\n\n  - Change \"void\" type of return value to \"int\" for returning status.\n  - Add some of overloaded Java APIs which accept database Uri as input.\n  - Add asynchronous APIs\n  - Add OnEventListener and OnErrorListener for asynchronous APIs\n  - Disable debug log\n  - Change decrypt() API to accept an optional buffer needed by some of DRM schemes\n\nChanges are incorporated by Sony Corporation.\n\nChange-Id: I414a165e22cc79be6ea7cd28041788aa2b6b8f7c\n"
    },
    {
      "commit": "b01e10c5bc0a29d1b0da96783b6d1582baeb2af2",
      "tree": "056c516743c1645138a8f51a063e315209171623",
      "parents": [
        "15f0a79a81fd18211603587bcd46eee0e37ced4d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Sep 16 16:59:37 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Sep 16 17:00:42 2010 -0400"
      },
      "message": "There is no @note javadoc tag.\n\nChange-Id: I4bb4e0be518b01f2a81d870ff4ec9da81555afbd\n"
    },
    {
      "commit": "d074e30ce44b9e33da43b67a4515b8986ca72b26",
      "tree": "cea9a809ad3b678713d10b938eb21f0d792a89d8",
      "parents": [
        "f470ed8630e9e648727443b065b9f1c69fee34d6"
      ],
      "author": {
        "name": "aimitakeshi",
        "email": "aimitakeshi@gmail.com",
        "time": "Thu Jul 29 10:12:27 2010 +0900"
      },
      "committer": {
        "name": "aimitakeshi",
        "email": "aimitakeshi@gmail.com",
        "time": "Wed Sep 01 15:40:00 2010 +0900"
      },
      "message": "  Initial contribution from Sony Corporation.\n\n  Add DRM Framework to support DRM content playback\n  together with StageFright.\n\n  - DRM Framework code is added\n     - include/drm\n     - drm\n  - api/current.xml is updated to include DRM Framework Java APIs\n  - cmds/servicemanager/service_manager.c is modified\n    to add drmManager and drmIOService.\n\nChange-Id: I6d7bc9c7067362b500e530988a9ce241761866fb\n"
    }
  ]
}
