)]}'
{
  "log": [
    {
      "commit": "610ecfe8e83ce68860a205789de953541486492b",
      "tree": "53f2cf919a8241e7ab09dedceb649b8a072251e3",
      "parents": [
        "fa0556943ee386e83d190f1de86d73d81e08cc8a"
      ],
      "author": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Sat Sep 14 20:29:57 2013 -0700"
      },
      "committer": {
        "name": "Baligh Uddin",
        "email": "baligh@google.com",
        "time": "Sat Sep 14 20:29:57 2013 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: I45ac6ed92f61d59d2e2fdf87a1ac02db3510720c\nAuto-generated-cl: translation import\n"
    },
    {
      "commit": "7f392defccfae54dc8169e5ad82c2616e0713c8e",
      "tree": "3d647e7c869d6cb60f08c3ddaabff33aa12d4906",
      "parents": [
        "1abdb7123025e52512b2ed7a518f8c754c35f50a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 17:42:17 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 17:42:17 2013 -0700"
      },
      "message": "Catch a few extra users of UserEnvironment.\n\nChange-Id: I3112773b72c329893e4118ef1c4f4087d899139e\n"
    },
    {
      "commit": "a7ac8be1f564ad27c0b1f4796b60f3eaaa8dc611",
      "tree": "dacda19d3869843eba29e24e7f07a1b3f8c2918e",
      "parents": [
        "11396cfd6fd03a72569046b02715455ea0bb186d",
        "dff4ec87e7b942b7b4410f639fc74c2cffb386d6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 11 10:16:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 11 10:16:46 2013 -0700"
      },
      "message": "am dff4ec87: am e16a21c6: resolved conflicts for merge of 4a59376d to stage-aosp-master\n\n* commit \u0027dff4ec87e7b942b7b4410f639fc74c2cffb386d6\u0027:\n  Track libcore API change.\n"
    },
    {
      "commit": "e16a21c6b4f108813e5f5e00f30e0ff075de504c",
      "tree": "97f03d1ca4030d0925ba82fd41398cf428aef0f8",
      "parents": [
        "fb231fea6cd4dac7323b1df74006b294c3c9bfef",
        "4a59376d5ee031e930e61292ed9e92e96e956724"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 09 15:24:13 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 09 15:25:23 2013 -0700"
      },
      "message": "resolved conflicts for merge of 4a59376d to stage-aosp-master\n\nChange-Id: I0e40180b46dc58781c218b8d382299dab73d49cc\n"
    },
    {
      "commit": "befd0b1bdfb4492425944a1b7fcf6d10eaed9b4c",
      "tree": "b0e6320cc4cfef37271bffea6b859ac3139e3757",
      "parents": [
        "fa42e774bc48c3172023c8c49610baa469c19e39"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 09 14:46:18 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 09 14:46:18 2013 -0700"
      },
      "message": "Track libcore API change.\n\nChange-Id: Ib818a7f21325c5f918bf497033a90d76b25ec9e7\n"
    },
    {
      "commit": "ccbf84f44c9e6a5ed3c08673614826bb237afc54",
      "tree": "854e35665f7754b3b0d1b4aaadc7b4927c3ea9ce",
      "parents": [
        "4ffa23379f95771fcdc63a2e35586b7e2c0b23a5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 08 15:25:41 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 17 12:47:35 2013 -0700"
      },
      "message": "Some system apps are more system than others\n\n\"signatureOrSystem\" permissions are no longer available to all apps\nresiding en the /system partition.  Instead, there is a new /system/priv-app\ndirectory, and only apps whose APKs are in that directory are allowed\nto use signatureOrSystem permissions without sharing the platform cert.\nThis will reduce the surface area for possible exploits of system-\nbundled applications to try to gain access to permission-guarded\noperations.\n\nThe ApplicationInfo.FLAG_SYSTEM flag continues to mean what it is\nsays in the documentation: it indicates that the application apk was\nbundled on the /system partition.  A new hidden flag FLAG_PRIVILEGED\nhas been introduced that reflects the actual right to access these\npermissions.\n\nAt some point the \"system\" permission category will be\nrenamed to \"privileged\".\n\nBug 8765951\n\nChange-Id: I6f0fd9cdb9170e076dfc66d83ecea76f8dd7335d\n"
    },
    {
      "commit": "5adb34f022bdc856e98483579a299f89a3c28d5c",
      "tree": "e771432ae36eaf84e97fe64c73e4bc146a0b919a",
      "parents": [
        "007d4d7040c9b41de584e79ba7dbd15d25f54971"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 25 11:35:12 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 25 11:35:12 2013 -0700"
      },
      "message": "Always close incoming PFD to avoid leaking.\n\nChange-Id: I9559bb1e83c9bf2f9fd2af9c7b0d8b9e3aadc4ae\n"
    },
    {
      "commit": "d685894212e6dbeac1fda4996903c1da115d49a6",
      "tree": "c52d05c78811e79a869afbcdbe55a906e38f2fa1",
      "parents": [
        "9fa49cc3308f6af593d780581121afc3c1d7e046"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: I746aa8258866508c3a725d0773faf4518096548f\n"
    },
    {
      "commit": "63d0a067997cecf9c6e97a17852f9b657bbba48e",
      "tree": "f0adf8683e433a706074a5390292fce6df56928e",
      "parents": [
        "02a4cec107f1f07409fd03106b1cde56043894fa"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 01 16:12:55 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 01 16:36:52 2013 -0800"
      },
      "message": "Improve performance of storage measurement.\n\nWhen calculating directory sizes of data living on emulated external\nstorage, translate the path to use the internal backing data, which\navoids going through the emulation layer.  It carefully retreats to\nthe original path when it runs into trouble.\n\nTesting with a hierarchy of 10 directories deep and 2 directories\nand 10 files wide at each level, this change improves performance\nfrom 5900ms before to 250ms after; over 20 times faster (!).\n\nBug: 8172425\nChange-Id: Ia7365416f091e102bf7345a49f7d7209a22580a9\n"
    },
    {
      "commit": "221d59f723584d316ea225bdaf1bc75cbfd7a794",
      "tree": "8fb340b3273665a86fe5c20d3f64db300bc3a591",
      "parents": [
        "18eeb4574e5a445405e476a4f89a44af02e24cc5",
        "afdd978ccd8d45ac789873dd4cf0ab0dd3f46d20"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Nov 29 14:25:40 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 29 14:25:40 2012 -0800"
      },
      "message": "am afdd978c: am 68e0da7e: Merge \"Quiet down a lot of logging.\" into jb-mr1.1-dev\n\n* commit \u0027afdd978ccd8d45ac789873dd4cf0ab0dd3f46d20\u0027:\n  Quiet down a lot of logging.\n"
    },
    {
      "commit": "40e9f2922cae76ffcbc521481e5be8e80e8744ef",
      "tree": "8eb1822dd2832b729d4b262b616ecc050d9cf266",
      "parents": [
        "ba4ac51823c59152e2167365b81ac56857b6b4d0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Nov 27 19:12:23 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Nov 27 19:12:23 2012 -0800"
      },
      "message": "Quiet down a lot of logging.\n\nAlso fix a little problem where the USER_STARTED broadcasts\nwere not being sent as ordered broadcasts(!).\n\nChange-Id: I3aa3e0a9b3900967cdd2d115ee103371b0a50c41\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": "cea3743499f4bb8e5f28a2e57686d7af313169c5",
      "tree": "f762b85645c8e05ab1ad5f322e9f45daa7cffc26",
      "parents": [
        "a3e90798b7ad3ed62e5b31842c699b2f98bd457b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 18 14:57:33 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 18 17:21:59 2012 -0700"
      },
      "message": "Try to free cache before giving up on install\n\nTry to get installd to free up cache before giving up when there is too\nlittle space free.\n\nBug: 7232123\nChange-Id: Ie3c8ca8dfc190abbb9a29a7baee31f32e9de7d69\n"
    },
    {
      "commit": "625239a05401bbf18b04d9874cea3f82da7c29a1",
      "tree": "b7d6cdc6c51342262763ad251870350759800ed3",
      "parents": [
        "e00d33cf05a111c9be605d3d59db911cd983fcb9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Sep 26 22:03:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 27 16:22:53 2012 -0700"
      },
      "message": "Migrate more Secure settings to Global.\n\nMigrate networking, storage, battery, DropBox, and PackageManager\nrelated Secure settings to Global table.\n\nBug: 7232014, 7231331, 7231198\nChange-Id: I772c2a9586a2f708c9db95622477f235064b8f4d\n"
    },
    {
      "commit": "752cd922f7091dfd5401faf70dc248934a9dbb6d",
      "tree": "687e7c87a3fa71ac84c3fc5db8327d452a7cddc3",
      "parents": [
        "5a370882f87321629f98f6149ac946a57e25dfa8"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Sep 23 16:25:12 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Sep 23 16:44:34 2012 -0700"
      },
      "message": "Always bind to DefaultContainerService as OWNER.\n\nWhen PackageManagerService deals with external storage, always bind\nto DefaultContainerService as USER_OWNER.  This avoids binding to a\nstopped user, which would fail.\n\nBug: 7203111\nChange-Id: I8e303c7558e8b5cbe4fea0acc9a472b598df0caa\n"
    },
    {
      "commit": "dfa45309e09bcdbad877e4e6a6005f348962d64d",
      "tree": "464ef2f255c93afb6c3907c3d3c69c91c3db08d8",
      "parents": [
        "8b29d63d0857337057db707549ef1faed39792fd"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Sep 12 16:25:22 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 13 01:04:15 2012 -0700"
      },
      "message": "Give DefaultContainerService all external storage.\n\nNow we can bind to just one instance of DCS, instead of requiring\none-per-user. This also means we can operate on otherwise-stopped\nusers.\n\nBug: 7003520\nChange-Id: I4881e064ae8942907f6a02c6b868926223455cdc\n"
    },
    {
      "commit": "7767eac3232ba2fb9828766813cdb481d6a97584",
      "tree": "41cc717fb9f11190e9da3dc12d61faf23a22861d",
      "parents": [
        "1552586283f329253edc4786a6cf40c5bb69ea36"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 23 18:25:40 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 24 13:53:13 2012 -0700"
      },
      "message": "Keep track of whether an app is installed for each user.\n\nThis add a new per-user state for an app, indicating whether\nit is installed for that user.\n\nAll system apps are always installed for all users (we still\nuse disable to \"uninstall\" them).\n\nNow when you call into the package manager to install an app,\nit will only install the app for that user unless you supply\na flag saying to install for all users.  Only being installed\nfor the user is just the normal install state, but all other\nusers have marked in their state for that app that it is not\ninstalled.\n\nWhen you call the package manager APIs for information about\napps, uninstalled apps are treated as really being not visible\n(somewhat more-so than disabled apps), unless you use the\nGET_UNINSTALLED_PACKAGES flag.\n\nIf another user calls to install an app that is already installed,\njust not for them, then the normal install process takes place\nbut in addition that user\u0027s installed state is toggled on.\n\nThe package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED,\nPACKAGE_REPLACED etc broadcasts to users who don\u0027t have a package\ninstalled or not being involved in a change in the install state.\nThere are a few things that are not quite right with this -- for\nexample if you go through a full install (with a new apk) of an\napp for one user who doesn\u0027t have it already installed, you will\nstill get the PACKAGED_REPLACED messages even though this is\ntechnically the first install for your user.  I\u0027m not sure how\nmuch of an issue this is.\n\nWhen you call the existing API to uninstall an app, this toggles\nthe installed state of the app for that user to be off.  Only if\nthat is the last user user that has the app uinstalled will it\nactually be removed from the device.  Again there is a new flag\nyou can pass in to force the app to be uninstalled for all users.\n\nAlso fixed issues with cleaning external storage of apps, which\nwas not dealing with multiple users.  We now keep track of cleaning\neach user for each package.\n\nChange-Id: I00e66452b149defc08c5e0183fa673f532465ed5\n"
    },
    {
      "commit": "c32e190ea6da8c9acd8dc1a29a6e8794ecf7d857",
      "tree": "d337fdee137eb4d3f99412547949599045dff095",
      "parents": [
        "4efade8a85d1352d91dcb4f4be2c337223688840",
        "a9c3846194b69f1bfa73066be670c9d77f6dd0d7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 29 16:23:49 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 29 16:23:49 2012 -0700"
      },
      "message": "resolved conflicts for merge of a9c38461 to master\n\nChange-Id: Ie7044c4f9f15384c3edd328fa8e2932c731d9d5c\n"
    },
    {
      "commit": "183ce028f10442dd6ada59de8fa531d690134663",
      "tree": "bb826af501467e58f564c7bf0675fa4868aba77d",
      "parents": [
        "074b54fbc0b6254c0ba308e0cf2e86c1cc929348"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 29 15:00:21 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 29 15:00:21 2012 -0700"
      },
      "message": "Fix issue #6761130: Clearing app data in settings does not clear app\u0027s USB storage\n\nThe package manager calls to clear data / clear cache were not also\nhaving default container service clear the data on external storage.  Now\nthey do.\n\nChange-Id: Ib5e5eb6adf2cac5a4cc094cc1a02ac8cfb6a2edf\n"
    },
    {
      "commit": "d0a2845ab3a5b7d92d58188764bc04e5a4a16508",
      "tree": "2ad470ae475e57a9581a2489054551a4f08cd1b3",
      "parents": [
        "f6c168942776c1fa700f5da57f844e34de25ddf5"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Jun 21 13:15:26 2012 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Jun 21 13:15:26 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: Iad1ec06b30d1e06958ae84f36d860f9ec522135f\n"
    },
    {
      "commit": "9a05cfd1e8a226d13801a74cee873efc7c00afe8",
      "tree": "18b3eb056f30ad2d8fc985a7054c4e9685196c12",
      "parents": [
        "93e417b560a3c7ddb832b78b17982937b4a88a12"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jun 20 19:58:14 2012 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jun 20 19:58:14 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: Ic0044b2b8a5d2973a6fcc10f947bdf3b47c0bb6d\n"
    },
    {
      "commit": "c801e3ed0bb74606a98802c7e568835f0b1cfb8d",
      "tree": "1b516d0e93887f6fea450fa2f372adb1ab1df330",
      "parents": [
        "5293d0cb2e0689dafd5ed821d479babfa6e008f9"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Jun 20 12:17:27 2012 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Jun 20 12:17:27 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: If56cf4c763d2994bfe838b5b9ebab92a585a135b\n"
    },
    {
      "commit": "b8151ecd6ef4faa5c16d0a4c3abb45ec84d1f97a",
      "tree": "18d849f66b9abbe1519eeb2f4901ada5c5a80cbc",
      "parents": [
        "1c1ca050e19b98c21d5b964930c4fc6f0d9ae567"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 18 18:02:48 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jun 12 18:18:29 2012 -0700"
      },
      "message": "Add an icon to the user information.\n\nStore the icon in the user folder under /data/system,\nsimilar to how the wallpaper is stored.\n\nChange-Id: Id8ccb55b9e2ba7b4c557505a7f69f04eca1518cf\n"
    },
    {
      "commit": "2ace60c1d62ee08499d3c29fee5826f4933824ba",
      "tree": "6d121d25edfcf6b3fbf3cf2d8894eb59aec9cb0d",
      "parents": [
        "092642402807e3eba381c5ed4c1c3661c1a25ba6"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri May 25 13:24:26 2012 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri May 25 13:24:26 2012 -0700"
      },
      "message": "Import translations. DO NOT MERGE\n\nChange-Id: Ic32791829a4f220236aacfc5004471894db915a7\n"
    },
    {
      "commit": "a69b7eb1fc6ab6f47411493a17463fe7a43b8b3f",
      "tree": "d62579288a0c7b6575999070a86c2308023fd884",
      "parents": [
        "728e43948c9b4d18a900fa50acad8d2734947b21"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon May 14 14:47:06 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon May 14 15:02:19 2012 -0700"
      },
      "message": "Change thread priority for disk measurement to bg\n\nChange the thread priority for all disk measurement and statfs calls to\nbackground priority.\n\nAlso move the measurement fully into the measurement task since it makes\nmore sense.\n\nBug: 6332097\nChange-Id: Iafc2151313ad9b14117daf67e933dccd32f68d54\n"
    },
    {
      "commit": "103d53005e7a3c2735f4ac76fa9b795a7e7e39d7",
      "tree": "da5b4a423467f932654ca2db1494bd9e34210f58",
      "parents": [
        "a25079e6bafcfd77135a852f0e838738d80606ef"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 10 10:21:06 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 10 11:48:21 2012 -0700"
      },
      "message": "Use long instead of int for file offsets\n\nUse long instead of int so we don\u0027t run into a 2GB file limit.\n\nFix possible overflows in offset and length.\n\nChange-Id: Idb3a34f5600f9c2372b9c89256f21757049fa43b\n"
    },
    {
      "commit": "ceb1b0bfaea56251796b08c07b963de7403d84eb",
      "tree": "fea73b05f6b4d47da174eca362693958cf5d785a",
      "parents": [
        "476b03b0c0d5cae4d1b114c6f80858d59ba36cad"
      ],
      "author": {
        "name": "Anonymous Coward",
        "email": "nobody@android.com",
        "time": "Tue Apr 24 10:35:16 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon May 07 16:34:49 2012 -0700"
      },
      "message": "Add encryption parameters to package installation\n\nChange-Id: Ic9f8ab9f8110f08bb3c00725cfce5b8ee7b766f3\n"
    },
    {
      "commit": "bf023589b3d9994f43823c7cb0450d278b084f9b",
      "tree": "6ed973d10a584b68efd2efd6654953ab158538c4",
      "parents": [
        "e849230f444653e692024b4321044cb9f6188919"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed May 02 16:56:15 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed May 02 17:09:57 2012 -0700"
      },
      "message": "Fix some problems with ASECs\n\nOn devices that had external storage, permissions weren\u0027t set correctly\non non-forward-locked applications. Also, moving forward locked\napplications didn\u0027t work since DefaultContainerService wasn\u0027t able to\nread it.\n\nFixed some faulty unit tests as well.\n\nBug: 6427212\nChange-Id: I5c1f0bf5278549069c78939f0708c4c43a7d4006\n"
    },
    {
      "commit": "6dceb88f1c7c42c6ab43834af2c993d599895d82",
      "tree": "cbdc33b4dd84f7ad388a4f331c0e7a3056e142e5",
      "parents": [
        "7725180c646d1976a2a2097735862a75ec47c544"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Apr 12 14:23:49 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Apr 25 14:17:02 2012 -0700"
      },
      "message": "Allow forward locked apps to be in ASECs\n\nWe couldn\u0027t put forward-locked apps in ASEC containers before since we\ndidn\u0027t have any permissioned filesystems. This adds the ability for\nforward-locked applications to be in ASEC containers.\n\nThis means that forward locked applications will be able to be on the SD\ncard now.\n\nThis change also removes the old type of forward-locking that placed\nparts of apps in /data/app-private.  Now all forward-locked applications\nwill be in ASEC containers.\n\nChange-Id: I17ae0b0d65a4a965ef33c0ac2c47e990e55707ad\n"
    },
    {
      "commit": "9cbe986a446dffea2e9f59b86800f834b02d766a",
      "tree": "63725587ac50668011a054f82c69f6ddf25b9248",
      "parents": [
        "816e4f758302aaf3b115b5914d48732ed78af946"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Apr 22 18:56:43 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Apr 22 18:56:43 2012 -0700"
      },
      "message": "Expose statfs() through IMediaContainerService.\n\nBug: 6346248\nChange-Id: I03ae02578f546fc9f19652cbdece56e2e0ab6a1c\n"
    },
    {
      "commit": "6215d3ff4b5dfa52a5d8b9a42e343051f31066a5",
      "tree": "fa31802ed64676368447b67d20567fc1e806c79d",
      "parents": [
        "c9c76a82c6d0bf2362044d899013832882f32c94"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "2fbd56a652f29e7a54f7aaab25ea031a1f8decb0",
      "tree": "7a7dcc8ec47c29dd12ac55d7912b1e931de6f13a",
      "parents": [
        "fe5f0aae6546ff673a6f01298f427bcd568bdd1a"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Nov 02 09:41:15 2011 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Nov 02 09:41:15 2011 -0700"
      },
      "message": "Import revised translations.\n\nChange-Id: I71efb16f2c6b257dfd444728c7e56ada662e6f77\n"
    },
    {
      "commit": "b0d150aa53ad34ea0a5b0da74bbdeb9ecd5a46b7",
      "tree": "2370b4dc7c81ff7880e1871a74353e263281bc25",
      "parents": [
        "b5c45e00967b9d0a6411098a598ad6b40f3b2074"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Oct 18 15:03:21 2011 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Oct 18 15:03:21 2011 -0700"
      },
      "message": "Import revised translations.\n\nChange-Id: I83ab00ec220b7c0ba0d37e7f4c91e945e35aab39\n"
    },
    {
      "commit": "05ca4c90644921df9193d92b2abdc81ef77e4a62",
      "tree": "94c9e61b0c3d364f68a194c0a65199451410fc35",
      "parents": [
        "15bbaeb0753f5336a5e8ee07e6f796657ecefb73"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 15 10:36:25 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 23 16:03:03 2011 -0700"
      },
      "message": "Allow non-required package verifiers\n\n* Verifiers can be specified in the AndroidManifest.xml\n\n* Those verifiers can respond to the new Intent action\n\n* PackageManager API for those verifiers: verifyPendingInstall\n\nChange-Id: I4892bce2e6984871e6e93c60a1ca0dae145f5df5\n"
    },
    {
      "commit": "d2509fd83597595914ef0627685e917380863eb6",
      "tree": "31ae51c4cb2664615c08ceb99f6363b084199cb4",
      "parents": [
        "d61a3a1bed57fc33fb0fa132521746bb58bba6be"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 12 12:29:43 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 12 12:29:43 2011 -0700"
      },
      "message": "Add boot mode where only \"core apps\" are started.\n\nA core app is one that has coreApp\u003d\"true\" in its manifest tag.\n\nThe system can successfully boot (though a little painfully) with\nonly framework-res.apk, SettingsProvider.apk, SystemUI.apk,\nDefaultContainerService.apk, and Launcher2.apk set as core apps.\n\nCurrently this boot mode is always turned off.\n\nChange-Id: Ieaa4a8031c2c391a12996aa8d8b1d65fc2b09d6b\n"
    },
    {
      "commit": "8da527d8435beda54b83e117c718c5d145c94ecd",
      "tree": "801776d718fb5bfb6033756f0cf6cadda7b4ec18",
      "parents": [
        "c3ccfb8eec47cdc0911c35b387d17659af25fbe9"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Mon Aug 22 11:09:13 2011 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Mon Aug 22 11:09:13 2011 -0700"
      },
      "message": "Import revised translations.\n\nChange-Id: I51335fa15a40d471010dbcc96e228b170f06ce7e\n"
    },
    {
      "commit": "61942c579dd8d30f77a9a501b31bd7a485b0d4bc",
      "tree": "0ae70b82b2f15a3c7789c9318640c17fcc8b766a",
      "parents": [
        "186c1683ce6a6c7e845b06b8c0706ef7950c6608"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 15 12:46:04 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 15 12:46:35 2011 -0700"
      },
      "message": "Fix external size calculations\n\nUnfortunately fixed internal size calculations for HC, but never the\nexternal size calculations.\n\nBug: 5113898\nChange-Id: Idfe8af0ba74a20aa767eb9abac431ee1c74dcf8e\n"
    },
    {
      "commit": "f5121a9b802c6ddd3661ed5cae602380dbe67090",
      "tree": "a1a10eddf61e5e159f0d71a17e2cc47a09856752",
      "parents": [
        "260e9105d7fc7b11c26a6843658df89b98d65971"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 10 16:23:32 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 10 17:00:30 2011 -0700"
      },
      "message": "Better errors from copyResource\n\nCopy resource would fail without a good error code when the file\ncouldn\u0027t be found during copy.\n\nAlso destroy the target container ID during move operations since it\nmight exist. If the copy failed due to it existing, it would get\ndestroyed anyway. This way the user has a chance to have a good outcome\nthe first time.\n\nBug: 3375299\nBug: 5113898\nChange-Id: I00559833f0801bc50e7cc031b462495e37a6b4ab\n"
    },
    {
      "commit": "1ebd74acf9977daa42133507e970dab88e08f0ef",
      "tree": "c95bde1090f19e78201f15b54866ada88ab7cbf2",
      "parents": [
        "62c7b37590b1a692384a55949d3b9eba221a3652"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 03 15:09:44 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 03 16:03:42 2011 -0700"
      },
      "message": "Better error codes for missing files\n\nMake sure that files that don\u0027t exist aren\u0027t returning bogus \u0027out of\nspace\u0027 error codes.\n\nAdd some Javadoc so I can remember what each thing does in an IDE.\n\nAdd copyright header to NativeLibraryHelper\n\nBug: 3375299\nChange-Id: Iac46019160921daca65b21d38897e5165063316e\n"
    },
    {
      "commit": "2efd2dbbac9eac89620683696c6076463c3a1cd6",
      "tree": "ca48adf4208daee43a4444a0fdb61fcb939858c5",
      "parents": [
        "b7d95a46dfacf04896d5b084f13bcbe6eab33633"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jul 19 16:32:49 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 28 16:01:20 2011 -0700"
      },
      "message": "Support full-backup encryption and global backup password\n\nIf the user has supplied a backup password in Settings, that password\nis validated during the full backup process and is used as an encryption\nkey for encoding the backed-up data itself.  This is the fundamental\nmechanism whereby users can secure their data even against malicious\nparties getting physical unlocked access to their device.\n\nTechnically the user-supplied password is not used as the encryption\nkey for the backed-up data itself.  What is actually done is that a\nrandom key is generated to use as the raw encryption key.  THAT key,\nin turn, is encrypted with the user-supplied password (after random\nsalting and key expansion with PBKDF2).  The encrypted master key\nand a checksum are stored in the backup header.  At restore time,\nthe user supplies their password, which allows the system to decrypt\nthe master key, which in turn allows the decryption of the backup\ndata itself.\n\nThe checksum is part of the archive in order to permit validation\nof the user-supplied password.  The checksum is the result of running\nthe user-supplied password through PBKDF2 with a randomly selected\nsalt.  At restore time, the proposed password is run through PBKDF2\nwith the salt described by the archive header.  If the result does\nnot match the archive\u0027s stated checksum, then the user has supplied\nthe wrong decryption password.\n\nAlso, suppress backup consideration for a few packages whose\ndata is either nonexistent or inapplicable across devices or\nfactory reset operations.\n\nBug 4901637\n\nChange-Id: Id0cc9d0fdfc046602b129f273d48e23b7a14df36\n"
    },
    {
      "commit": "66269ea6f68f2f25888ce1080c94ac782742fafc",
      "tree": "0ecbefcdbecf98cbacd428a422e6a2a846ac726e",
      "parents": [
        "e432a0005180ba9ac2c1d7822c4761b475fddc51"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 12 14:14:01 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 26 10:14:58 2011 -0700"
      },
      "message": "Move extract native libraries to JNI code\n\nThe built-in ZipFile class was quite a long time to find an unpack\nlibraries. Move everything to using the libutils ZipFileRO class that\ngoes quite a bit faster. Initial measurements are 6 times faster than\nthe Java code.\n\nAlso, read files off the disk and compare their CRC against the APK\u0027s\nCRC to see if we need to write the new file to disk. This also cuts down\nthe bootup time by up to a second per APK that has native files.\n\nChange-Id: Ic464a7969a17368fb6a6b81d026888c4136c7603\n"
    },
    {
      "commit": "6d470b71766303a1b05861fc4ec8941916d4c7ec",
      "tree": "b76efea4c0e79e670e2a333b4e05688afbe33a72",
      "parents": [
        "3106a9b7f5c5c6a62d3fa5772d8c2bb41d22c6eb"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Mon Jun 20 14:40:53 2011 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Mon Jun 20 14:40:53 2011 -0700"
      },
      "message": "Import revised translations.\n\nChange-Id: Ie30d36d7416f687f2d84b0bdf6547cda96446f37\n"
    },
    {
      "commit": "8447a13f9cdc87b5dbb865ad2d55fe2d6ea87294",
      "tree": "f3dee6702f3efc269f2858398f4fd6f5ebc15ac5",
      "parents": [
        "3453b1c584f456a18f17d74a72c044b4e39c6405"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu May 26 15:34:01 2011 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu May 26 15:34:01 2011 -0700"
      },
      "message": "Import revised translations.\n\nChange-Id: I10a93a6f3a274354e88263d86a8855d1e7121f58\n"
    },
    {
      "commit": "d022c23aed0d022057c0074a158b522c83e906e4",
      "tree": "f3ea5813b838aca632dfbaa4cf627f72625b25de",
      "parents": [
        "0e5e2e2b2bb3d6c3a0216181df29e6bfdc71256f",
        "62e1b4e9d41a01db423b5e4684ecf529ed46106d"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 15 14:48:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 15 14:48:56 2011 -0700"
      },
      "message": "Merge \"Revise free space checks for package installs\""
    },
    {
      "commit": "62e1b4e9d41a01db423b5e4684ecf529ed46106d",
      "tree": "661d7d6a17fade942bcfb6ff2e3b03292c3e698e",
      "parents": [
        "6f3a75e13b86a3f40fe34e3ebd17b118791a73a4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 14 17:13:39 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 14 17:18:24 2011 -0700"
      },
      "message": "Revise free space checks for package installs\n\nChange-Id: Ie72bbab77aa89a50ec096edc1f471eab74829e67\n"
    },
    {
      "commit": "3070af08821ee86f06a9cc6b58dbb79c82946b94",
      "tree": "350ed99dcd32f33f936639c946b0176ed6022693",
      "parents": [
        "e3f075622da4e78772abf21a5a219a0d48bc6c04"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 14 14:02:13 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 14 14:25:59 2011 -0700"
      },
      "message": "frameworks/base: remove LOCAL_PRELINK_MODULE\n\nChange-Id: I54dd62ebef47e7690afa5a858f3cad941b135481\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "300c13a48132f03d48462b9cd3ec41331a71a411",
      "tree": "b784943ca9d8e6988d9e0db62da448b8e9d10441",
      "parents": [
        "26c1ab2e58f47ac94e638f69b9b626cc6b1925b6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jan 18 13:04:40 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jan 18 13:55:42 2011 -0800"
      },
      "message": "Erase OBB files when removing packages\n\nOBB files on USB storage or SD card should be removed when an\napplication is removed.\n\nBug: 3356804\nChange-Id: Ifbbf043368b125fcd47fd74e5cd2e5167a8deb00\n"
    },
    {
      "commit": "366949c2d934435ff9ef8082408ca36ff14a2241",
      "tree": "5821f9a8976fa55430d071850242604a51259ae9",
      "parents": [
        "3c372789ea0b7836c6a9fe4852fac0de3f29fbbf"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jan 14 17:18:14 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Jan 16 16:21:15 2011 -0800"
      },
      "message": "Put externalSize measurements in PackageStats\n\nWhen measuring a package\u0027s usage, put the external size in the\nPackageStats as well. This will allow programs using a lot of space on\nthe external card to be held accountable.\n\nBug: 3308791\nChange-Id: If2df07bdbf6ffb31577074fad8f4a87ca4e89086\n"
    },
    {
      "commit": "c16aea5ee8079a3c1fc45e44d296493eddf7e3c1",
      "tree": "3473b5ae49fd86159816511a9a2611924bd2d37c",
      "parents": [
        "68b9f6f90a8e659a3e40a010f8ad46382f0deeb8"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Dec 23 14:12:01 2010 -0800"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Dec 23 14:12:01 2010 -0800"
      },
      "message": "Import revised translations.\n\nChange-Id: Ia6a9c2838156dd6f83aea9c4809c57f663c710af\n"
    },
    {
      "commit": "34e48955a5c02c398872ccf4d544d4fab22132de",
      "tree": "f2dcf4e9f961a7cd8058418c5325532bf5ab84da",
      "parents": [
        "475593e249c53a8dc43f9cd43f528867c6a4074b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Dec 07 11:56:24 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Dec 07 11:56:24 2010 -0800"
      },
      "message": "DefaultContainerService\u0027s JNI library is required\n\nChange from LOCAL_JNI_SHARED_LIBRARIES to LOCAL_REQUIRED_MODULES to make\nsure the JNI library is built and included when DefaultContainerService\nis built.\n\nChange-Id: I322c72415237c2b70bff345d50e2a9e4f2e6d988\n"
    },
    {
      "commit": "aa183e2c9a279cb6aef7dc77855facfae795b6f8",
      "tree": "9f0a53f90dcfb2e720a5e62e38e357cc98fdabd9",
      "parents": [
        "d8b3f2e8eee5f24de6653a918613674e9495f751"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Dec 02 18:00:38 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Dec 04 08:29:23 2010 -0800"
      },
      "message": "Add measurement API to DefaultContainerService\n\nSystem applications that don\u0027t have \"media_rw\" access need some way to\nmeasure the size of directories on the SD card and other internal media.\nAdd this API to DefaultContainerService so they can simply bind to the\nservice and make an RPC.\n\nBug: 3203974\nChange-Id: I4e1bcd7a1b702b156c011ecc04f6915022cb258a\n"
    },
    {
      "commit": "d09a98173b99852c78c0a14282612836178cc2ab",
      "tree": "1175dd939420a8cade18d3a12051ac117b949826",
      "parents": [
        "cd023f98fab0f01603f006c3029a73cd820b4678"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Dec 02 14:05:29 2010 -0800"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Dec 02 14:05:29 2010 -0800"
      },
      "message": "Rename Indonesian and Hebrew translations to match Locale.java conventions\n\nChange-Id: Icf4f1896d13a4b6bf86503b16bde189f1834fdcc\n"
    },
    {
      "commit": "4da12f07b5c1ecd7cea7f44081a744523936bd41",
      "tree": "d5cd71220a8a0f8912c397a02d12e55f8fee45a0",
      "parents": [
        "a7f76874f5493e6f18be91c1d13e572d68f1dd20",
        "1de6ca69cc541ccdd651071c8bd5629af4e09664"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Dec 01 14:23:19 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 01 14:23:19 2010 -0800"
      },
      "message": "am 1de6ca69: am 938d0972: Merge \"Grant ACCESS_ALL_DOWNLOADS to DefaultContainerService\" into gingerbread\n\n* commit \u00271de6ca69cc541ccdd651071c8bd5629af4e09664\u0027:\n  Grant ACCESS_ALL_DOWNLOADS to DefaultContainerService\n"
    },
    {
      "commit": "1de2eac9d0a9ef03ecf9f964893ca889487f5403",
      "tree": "a071dd240438c42f99961aa1a997f6fa95e0583e",
      "parents": [
        "b483d5cd134cda393824fd8e9c1a5443bd868ae6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Dec 01 11:37:36 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Dec 01 11:37:53 2010 -0800"
      },
      "message": "Grant ACCESS_ALL_DOWNLOADS to DefaultContainerService\n\nBe compatible with the old DownloadProvider behavior of being able to\noperate on content URIs returned from .insert()\n\nBug: 3242328\nChange-Id: I7dad15ac0fefa867c3c8a33a579fc9899ac80262\n"
    },
    {
      "commit": "113141e0914d36c378c26507b8d9dc0bb634bc8d",
      "tree": "18ae5720f0c146cc49efd51723522266b1bc7c58",
      "parents": [
        "c6aa9edc3658b9e624aa604786d5d70570bca0f7"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Nov 17 16:24:41 2010 -0800"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Nov 17 16:24:41 2010 -0800"
      },
      "message": "Import initial translations for 20 new locales.\n\nChange-Id: I37d479c9d6293eb57d68ad686d00838445a18890\n"
    },
    {
      "commit": "6362b3f077ab8e4662f499c32beb1006c3967f42",
      "tree": "911cc1cb03fac7bc8a0c50579f2f47242325f65e",
      "parents": [
        "820b9e0d3b6f94fe0b524aebf756ce25df273e6a"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Nov 09 17:25:54 2010 -0800"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Nov 09 17:25:54 2010 -0800"
      },
      "message": "Import revised translations.\n\nChange-Id: I9fe6a999fc665faefbf0e7e222d5dfb4fdbcd3b1\n"
    },
    {
      "commit": "e1ff214e32ed5c546a7603b07b054908c4d93312",
      "tree": "d61485a78a33eaedf4494cbdf21e48225d49b4e7",
      "parents": [
        "84e8827a477cdf3d8c2b67e370395b22ec1963ad"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 12 11:20:01 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 12 11:30:56 2010 -0700"
      },
      "message": "Add API to check for emulated external storage\n\nWhen the storage is emulated, we don\u0027t want to install ASEC containers\nto it. This adds the API to check when the external storage is emulated\nand uses it to check whether or not to install packages to the external\nstorage in an ASEC container.\n\nBug: 3024387\nChange-Id: Ia0318aca9e4938a4897deaada5603a4c7c1d0f48\n"
    },
    {
      "commit": "13cc0a06fce4ec54574c9bf2084752961a144c24",
      "tree": "77af62b768870dc45b26c56978f70332fad66d94",
      "parents": [
        "fc32a6023676c2f1b13c890c7295cccad6f0000c",
        "4309b52fe19de5241113d8f9ebcdf52741e086a9"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 19:47:06 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 30 19:47:06 2010 -0700"
      },
      "message": "am 4309b52f: am 735de3b3: Hash keys with MD5; track IBinders not IInterface\n\nMerge commit \u00274309b52fe19de5241113d8f9ebcdf52741e086a9\u0027\n\n* commit \u00274309b52fe19de5241113d8f9ebcdf52741e086a9\u0027:\n  Hash keys with MD5; track IBinders not IInterface\n"
    },
    {
      "commit": "735de3b38abbd6564082a819377673ee593744a6",
      "tree": "ec309587616c5abbc49df83d7d21b6a3b3e9dfbd",
      "parents": [
        "27358a69b33eaa268ee75ef778ec824c8085adcc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 14:11:39 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 30 17:25:05 2010 -0700"
      },
      "message": "Hash keys with MD5; track IBinders not IInterface\n\nUsing a plaintext password doesn\u0027t work unless it\u0027s a certain length, so\njust hash the plaintext password with MD5 to make it the right length\nfor the twofish encryption.\n\nTracking the IInterface doesn\u0027t make much sense since it\u0027s different\neach time, so track the IBinder instead. That way we can unlinkToDeath\nthe binder when the last thing it\u0027s holding onto goes away.\n\nChange-Id: Id828d25b4d74f27e9d8b4bfb3909c964469cc473\n"
    },
    {
      "commit": "bff405f91001237ec94ec64f86fa2370c4509559",
      "tree": "c492bfa8bacef42800f47b1638b1812275cecb6d",
      "parents": [
        "e63f20b5fe373822758182226d7512859d8e8356",
        "d8e8186c887fe47977721315f439465771a96374"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 28 18:16:50 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 28 18:16:50 2010 -0700"
      },
      "message": "resolved conflicts for merge of d8e8186c to master\n\nChange-Id: Ica3f6cd958717ea7033cab8b4bf9cd3425c1e1c5\n"
    },
    {
      "commit": "05105f7abe02b2dff91d6260b3628c8b97816bab",
      "tree": "f42676d818548d76b2c55045a1bcc4866d6feec1",
      "parents": [
        "ea2cf2f936b03f1720bc43863e41c89ea2a7903a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Sep 22 17:29:43 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Sep 28 17:23:26 2010 -0700"
      },
      "message": "Update OBB API to include callbacks\n\nAdd a callback for users of the StorageManager API to be able to receive\nnotifications when the requested operation completes for mountObb and\nunmountObb.\n\nAdd NDK API to get to ObbInfo like the Java API has.\n\nAlso update the docs for the API and remove the \"STOPSHIP\" comments.\n\nChange-Id: I23a4409c7f8b74d3169614beba920b4d667990a4\n"
    },
    {
      "commit": "818c830c59fb8fb0fe7576f1e5a073ab599227c8",
      "tree": "ea75d8c4b837f29edb7d654cd631fbe3697d1bd7",
      "parents": [
        "3d5c46ce0aab1a17c4949358f0ed0b6388f13839",
        "8328578152fbfd23952a6cda4b2e60853d78eb74"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 27 18:11:06 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 18:11:06 2010 -0700"
      },
      "message": "am 83285781: am 7046bd92: Merge \"Allow native shared libraries in ASEC containers\" into gingerbread\n\nMerge commit \u00278328578152fbfd23952a6cda4b2e60853d78eb74\u0027\n\n* commit \u00278328578152fbfd23952a6cda4b2e60853d78eb74\u0027:\n  Allow native shared libraries in ASEC containers\n"
    },
    {
      "commit": "85387d7ba36e56b291cbde87acb5a5b2200fe01c",
      "tree": "adea29b181a25c2ffd8ecaebded62fb4d2dc1a93",
      "parents": [
        "4f8c2f26bfd9de8c8a31369dbedd415c7d6d9699"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 26 10:13:11 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 27 16:40:06 2010 -0700"
      },
      "message": "Allow native shared libraries in ASEC containers\n\nThis change moves the native library handling earlier in the package\ninstallation process so that it may be inserted into ASEC containers\nbefore they are finalized in the DefaultContainerService.\n\nNote that native libraries on SD card requires that vold mount ASEC\ncontainers without the \"noexec\" flag on the mount point.\n\nChange-Id: Ib34b1886bf6f94b99bb7b3781db6e9b5a58807ba\n"
    },
    {
      "commit": "ba4048c0284430eaf52b0bc9b3ce9e8e5ce3bc86",
      "tree": "b7820ec2670216d54647f778ba4b102747fe447e",
      "parents": [
        "468c3230dafc2d131bdeded7b5a6825988166244"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Aug 17 16:50:06 2010 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Aug 17 16:50:06 2010 -0700"
      },
      "message": "Import revised translations.\n\nChange-Id: I03d83a241843f1fe88471425e4a7f7e6f33fee16\n"
    },
    {
      "commit": "f870000ff0f137416832f42efccc362454e5c5d5",
      "tree": "2c90b53e02d76ca4b1b491e5a9a04b65f1dbdfe8",
      "parents": [
        "8c11e952305327183db9f7be719e4c94fde15a7c"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Aug 17 16:43:35 2010 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Aug 17 16:43:35 2010 -0700"
      },
      "message": "Import revised translations.  DO NOT MERGE\n\nChange-Id: Id47f0897de1361ba755f149b2886d7d1f79ff494\n"
    },
    {
      "commit": "3d173c3040ee8c4ab2703806255c72dafe0d2f04",
      "tree": "5bd66a4bb32895bf311235d7c097f501ff20b5a7",
      "parents": [
        "6a3c9a96f8547775b613ddef179de6fa5411bffb"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Aug 12 16:44:07 2010 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Aug 12 16:44:07 2010 -0700"
      },
      "message": "Import revised translations.\n\nChange-Id: I0b89d1baf9ed02c492e8845f45fad1bee56e8d56\n"
    },
    {
      "commit": "bf0cb26a1c6305f2a7795c2498591b6189cc5b79",
      "tree": "fb58f791116c9af964ca902f047e310303d3558a",
      "parents": [
        "6b63dce8c9f8ba2d165ed249c873e537516c6b19",
        "f5ee5358c187107b2e5a1e1fbcb5a648d793c798"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 11 14:15:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 11 14:15:10 2010 -0700"
      },
      "message": "am f5ee5358: am ac9717ab: Merge \"Move OBB file reading to DefaultContainerService\" into gingerbread\n\nMerge commit \u0027f5ee5358c187107b2e5a1e1fbcb5a648d793c798\u0027\n\n* commit \u0027f5ee5358c187107b2e5a1e1fbcb5a648d793c798\u0027:\n  Move OBB file reading to DefaultContainerService\n"
    },
    {
      "commit": "a02b8b05dd1e8b8cf169e1f89542ef835b11fc13",
      "tree": "aa1b5fb6b900c064d9914f51c9c3817a2c46f9df",
      "parents": [
        "9902196f9885d369e37cf44084e3f04513511ab0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 05 16:14:17 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 11 11:20:53 2010 -0700"
      },
      "message": "Move OBB file reading to DefaultContainerService\n\nThe system_server shouldn\u0027t touch files on the SD card. This change\nmoves the things that touch the SD card out to the\nDefaultContainerService so that it will get killed if the SD card goes\naway instead of the system_server.\n\nChange-Id: I0aefa085be4b194768527195532ee6dddc801cfc\n"
    },
    {
      "commit": "33dc1d7cd0247b46914c55c3460daa75a3c6b88e",
      "tree": "478db4785493107430e5a94809a4207d2b788a64",
      "parents": [
        "866362fcb4db93584143c21934ea355cbf9e0757"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Aug 04 10:37:25 2010 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Aug 04 10:37:25 2010 -0700"
      },
      "message": "Import revised translations.  DO NOT MERGE\n\nChange-Id: Ibc3e9f1f83159835c2e6c3bcdaa8ff6a7e7fa384\n"
    },
    {
      "commit": "b0289f62af77a2811b4528fe284aad871e3c6b31",
      "tree": "32108a844de9f1ab7712e2be5ec51a3aa0c73e68",
      "parents": [
        "ae2036a8f9365cec0f343f2668424e8e964a971c",
        "59d4a5369cd68d4b65809ded407611b62b013f9a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 02 13:31:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 02 13:31:41 2010 -0700"
      },
      "message": "am 59d4a536: am 739cdab7: Merge \"Do not deference before null check\" into gingerbread\n\nMerge commit \u002759d4a5369cd68d4b65809ded407611b62b013f9a\u0027\n\n* commit \u002759d4a5369cd68d4b65809ded407611b62b013f9a\u0027:\n  Do not deference before null check\n"
    },
    {
      "commit": "930d3af75f9e9663222f4c4a1d75b326cf811e35",
      "tree": "30950867a1eec93131934190d0faae893cacd4e3",
      "parents": [
        "7c600369c9695de73ca37db552eb81b8b89d5e76"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jul 30 16:52:29 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 02 07:52:56 2010 -0700"
      },
      "message": "Do not deference before null check\n\nThe return of parsePackageLite wasn\u0027t checked until after it was\ndeferenced. Move the deference below the null check and remove redundant\nset.\n\nBug: 2852726\nChange-Id: I3eaaea5050948145eed44b64507dc846993d98eb\n"
    },
    {
      "commit": "359d79f3171cda19005b945414c4cf080cab37f4",
      "tree": "7d2be0124db7368af0d910750004da08db4a233e",
      "parents": [
        "42c2936f3c6e048caafb17eb9fe91fa4a33c8b86"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jul 28 16:27:18 2010 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jul 28 16:27:18 2010 -0700"
      },
      "message": "Add character limit for translators.\n\nChange-Id: If3d77fed7ebc1ef08c546b7f7d32177b4d80d2b9\n"
    },
    {
      "commit": "3ac8eb7278e3603d1a35fdbd2fff540a235da2ab",
      "tree": "1e118b727f51862144447021109abd9e1035b823",
      "parents": [
        "46730fc78388607fd562044cbaaa26ffc9f65337"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Jul 24 18:21:07 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Jul 24 18:21:07 2010 -0700"
      },
      "message": "Update app label.\n\nChange-Id: I6c688fd9292aeaa58435eec6273b3a19cad5eff9\n"
    },
    {
      "commit": "d345bb6e5b42ff644ce224fe57e4d7b4e546a48d",
      "tree": "e6af91677bacbcc1b040af1863a9506760046117",
      "parents": [
        "05fa2144e458dc8f024235ea01b8682055d828bf"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Apr 22 13:22:17 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Apr 22 13:43:20 2010 -0700"
      },
      "message": "Fix error code when media is filled up.\n\nChange-Id: Id8dae2e7c967e3f103aecd2f31abb7e292af8f1d\n"
    },
    {
      "commit": "315a5fb91dbafe6073435a13d937cee9d26877f6",
      "tree": "3e5bdebfa89ae4e997a726e5e600751823cca580",
      "parents": [
        "40b6996a8fb7da131e8b91453b08e292723662be"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Apr 13 14:32:16 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 14 18:24:06 2010 -0700"
      },
      "message": "Dont fall back to installing on sdcard when internal storage is filled up\nwhen the install location is set to internal only. Similary if install\nlocation is set to external only(via adb), dont fall back to installing on\ninternal storage if sdcard is filled up.\nIf nothing is specified ie install location is set to let system decide,\nwe just check on internal storage.\nFix tests\n\nChange-Id: I7400ccc131782d9c45284bd9ebd0dee43a3b412b\n"
    },
    {
      "commit": "40e472521a544f26cb6956995788f7c36fff1404",
      "tree": "b579a480e80d8ac15128c31c142b22d0938a44f8",
      "parents": [
        "4b18ced6b5409bb9dd4013c06b9562b76a062939"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 07 16:15:50 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 07 20:43:54 2010 -0700"
      },
      "message": "Fix 2579461\nMove install location values to secure settings.\nDiable attribute for UI. Set default value to auto.\nAdd command line interface to set install location via pm.\n\nChange-Id: I80e97b3d24845adad7102f40dcbe238f00efa406\n"
    },
    {
      "commit": "ea3e8e0758b6561917ba35baf934ccbf414144b9",
      "tree": "740c92aa877dcb2dd42f62eedeb12c52c2927d4d",
      "parents": [
        "faf535ea36381286f11cbf1f7c392aeb7a45d003",
        "35f480eb06b12e4636fd84ad8cfc38c49cd9e46a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 18 10:25:37 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 18 10:25:37 2010 -0700"
      },
      "message": "Merge \"Import revised translations\""
    },
    {
      "commit": "14b6abda1309631d49d4bebbb0317a7e1dfc0a50",
      "tree": "bee361e635743a09bb7253fef333d6fb94df6322",
      "parents": [
        "d246ca811575eee9122070648e93b7484f6edd81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 08:37:04 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 18:43:31 2010 -0700"
      },
      "message": "Add new install flag to install on internal flash only\nChange default install location policy for new flag.\nNew error code for media unavailable.\n\nChange-Id: I5a5d0828b067692b2b94a15a2bcc7534f796c1a2\n"
    },
    {
      "commit": "35f480eb06b12e4636fd84ad8cfc38c49cd9e46a",
      "tree": "8235adf0f51b2131a9b273f155c29b4bb7fb59c1",
      "parents": [
        "3be0b0a15d9e250e45f01a2127b41b20d0b1b635"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 17 18:29:29 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 17 18:30:12 2010 -0700"
      },
      "message": "Import revised translations\n\nChange-Id: Id1a0d62dc917937fc14ccab26eb7bd2c2148137e\n"
    },
    {
      "commit": "8a9ab24a5c9b595ac0268fcade4b5bbfe7c45c2d",
      "tree": "f445dbf1504f02783b550a80a01ee06d45fbcb4a",
      "parents": [
        "50fdbef2fbcd390035517090bc54220c265f5c75"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 11 16:49:16 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Mar 16 16:36:26 2010 -0700"
      },
      "message": "Do storage checks before initiating a move.\nAdd new remote method to check for insufficient error conditions.\nSome fixes in MountService when updating media status on PackageManagerService\nFix size calculation condition in installd.\n\nAdd new error code if media is unavailable.\nNew tests for testing error codes.\nSome additional debugging statements in MountService.\n\nChange-Id: Ibfe90d5ed6c71d57f9c1c67806f38b5ae9ecdfbf\n"
    },
    {
      "commit": "15a4d2ffd04dc6c70f2cd17dae12ac6bc14c69ab",
      "tree": "2dbbf0c31082373354fb17308de3681e22c66169",
      "parents": [
        "8abb26ee6c77e01a23d26c305a65b25a33710024"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:20:12 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:22:10 2010 -0800"
      },
      "message": "Add correct copyright headers to multiple files\n\nFormat for the list of changes shows the origin commit reference followed\nby the file name.\n\n33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java\n33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java\n133776-p9 core/java/android/app/IntentService.java\n127013-p9 core/java/android/appwidget/AppWidgetHost.java\n27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java\n60765-p9 core/java/android/content/SyncResult.java\n43920-p9 core/java/android/content/pm/ActivityInfo.java\n43920-p9 core/java/android/content/pm/ApplicationInfo.java\n43920-p9 core/java/android/content/pm/InstrumentationInfo.java\n43920-p9 core/java/android/content/pm/PackageInfo.java\n44103-p9 core/java/android/content/pm/PackageItemInfo.java\n68960-p9 core/java/android/content/pm/PackageStats.java\n43920-p9 core/java/android/content/pm/ResolveInfo.java\n43920-p9 core/java/android/content/pm/ServiceInfo.java\n60641-p9 core/java/android/content/res/Configuration.java\n60734-p9 core/java/android/content/res/TypedArray.java\n137672-p9 core/java/android/inputmethodservice/ExtractButton.java\n123112-p9 core/java/android/inputmethodservice/ExtractEditText.java\n119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java\n112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java\n115078-p9 core/java/android/os/BatteryStats.java\n124790-p9 core/java/android/text/style/UpdateAppearance.java\n45083-p9 core/java/android/view/RawInputEvent.java\n101491-p9 core/java/android/view/inputmethod/EditorInfo.java\n114701-p9 core/java/android/view/inputmethod/ExtractedText.java\n123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java\n119291-p9 core/java/com/android/internal/os/HandlerCaller.java\n129279-p9 core/java/com/android/internal/os/PkgUsageStats.java\n114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java\n114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java\n84364-p9 opengl/java/android/opengl/EGLLogWrapper.java\n11355-p9 opengl/tools/glgen/src/CFunc.java\n11355-p9 opengl/tools/glgen/src/CType.java\n11355-p9 opengl/tools/glgen/src/CodeEmitter.java\n11355-p9 opengl/tools/glgen/src/GenerateGL.java\n11355-p9 opengl/tools/glgen/src/JFunc.java\n11355-p9 opengl/tools/glgen/src/JType.java\n11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java\n11355-p9 opengl/tools/glgen/src/ParameterChecker.java\n57236-p9 services/java/com/android/server/status/AnimatedImageView.java\n66754-p9 services/java/com/android/server/status/CloseDragHandle.java\n57188-p9 services/java/com/android/server/status/DateView.java\n46928-p9 services/java/com/android/server/status/ExpandedView.java\n70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java\n45968-p9 services/java/com/android/server/status/IconData.java\n57470-p9 services/java/com/android/server/status/IconMerger.java\n82719-p9 services/java/com/android/server/status/LatestItemView.java\n45968-p9 services/java/com/android/server/status/NotificationData.java\n66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java\n57458-p9 services/java/com/android/server/status/NotificationViewList.java\n45968-p9 services/java/com/android/server/status/StatusBarException.java\n45968-p9 services/java/com/android/server/status/StatusBarIcon.java\n46130-p9 services/java/com/android/server/status/StatusBarNotification.java\n45968-p9 services/java/com/android/server/status/StatusBarView.java\n46199-p9 services/java/com/android/server/status/Ticker.java\n62286-p9 services/java/com/android/server/status/TickerView.java\n57188-p9 services/java/com/android/server/status/TrackingView.java\n86041-p9 telephony/java/android/telephony/PhoneStateListener.java\n87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java\n136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java\n34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java\n55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java\n127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java\n129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java\n25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java\n46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java\n77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java\n9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java\n53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java\n93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java\n328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java\neb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java\n49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java\na2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java\n3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java\n5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java\nc4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java\n9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java\n21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java\ne540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java\n192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java\n1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java\n27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java\n69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java\nc028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java\ndf8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java\n\nCopyright header moved to top in following file:\n\ncore/tests/coretests/src/android/widget/ListViewTest.java\n\nChange-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418\n"
    },
    {
      "commit": "089262dc022d87e31eefc536025be6c015c7ebde",
      "tree": "2c4706dc952c2c3a4407427579a01057564fab52",
      "parents": [
        "e182a92ae408f27f46d15de01c8a263cfe6f9246"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 14:19:21 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 16:08:51 2010 -0800"
      },
      "message": "Dont include code size for apps on sdcard.\nUse constants defined in PackageHelper for user preferences\nto install auto, internal, external.\nSet default install location to external.\nUpdate settings db version number\n\nChange-Id: Ib5110c9377990e20a48cee923e55898dfddfd1e6\n"
    },
    {
      "commit": "a2b6c3775ed6b8924232d6a01bae4a19740a15f8",
      "tree": "f78953add86351bd04f2788c712b1285497e2016",
      "parents": [
        "a9fb0a2497e563c2066e10a816ff1f7baaf8aa9b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 05 17:40:11 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Mar 09 09:24:35 2010 -0800"
      },
      "message": "Add conditions to check for updated system applications. Restrict them\nto internal flash only even before we copy.\n\nReturn error codes when install flag options mismatch.\nSome conditions for existings apps\n - install flags override existing location\n - explicity manifest option install location overrides previous location\n - if upgraded package\u0027s install location is unspecified or auto, fall\n   back to recommended install policy which considers user setting as well.\n\nCheck for sdcard status before finding available size on sdcard\nAdd light weight parsing for manifest attributes including package name and\ninstall location only\n\nChange-Id: I5143dda87c88c595f564b317326c926d0ec3ceb8\n"
    },
    {
      "commit": "3602f76d417b0940a26f28b7ad892abcfe03ef7c",
      "tree": "07859c25cd8a91092da0fa3d023f90795501af3d",
      "parents": [
        "01f4385d86537cf656cfc70ea075177d50619206"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 17:29:33 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 18:21:07 2010 -0800"
      },
      "message": "Null check for scheme.\nIf scheme is unspecified let package parse continue. We will return\nerrors if parsing fails anyway.\nIf scheme is not null, restrict it to being a file uri.\n"
    },
    {
      "commit": "9b10ef5fe85e9d29721ff0cd15161f960d38a8db",
      "tree": "a6830aad34d62273b02f0e3dbaa054dd7ec7c270",
      "parents": [
        "a034cd3e15b6626be03e60f2d6a0f929dcb950d9"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 09:45:24 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 14:06:10 2010 -0800"
      },
      "message": "Rework the way PackageManager binds to default container service.\n\nClean up stale containers when enabling/disabling packages on sdcard.\nCheck the path of packages which are being enabled.\nMake sure gc\u0027s are done prior to destroying containers when moving applicati\nas well as enabling/disabling packages for sdcard mount status changes.\n\nSome miscellaneous issues\n   Remove hack to avoid renaming containers.\n   Fix test with forward locked apps\n   Remove adding container id to asec list when renaming\n   Some cosmetic changes to DefaultContainerService\n"
    },
    {
      "commit": "cf6eaeaae9e6745dd6e07540812c79821d7043c2",
      "tree": "fe1224c5b492a8ad09d00e167b66a45413fb3d73",
      "parents": [
        "2a399f066d4f3870385002cdcda8082a0eeeb770"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 23 19:37:45 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 24 11:31:36 2010 -0800"
      },
      "message": "Some framework fixes for apps on sd\nchange hard coded path in installd\nfix tests\nWork around for renaming containers.\nDo forced unmount when destroying containers.\nForce a gc in default container service to release handle to parsed package\nand thus avoid getting killed by vold\nSome cosmetic changes to PackageManager api.\nUnit tests for renaming container for MountService\nRemove internal size limit on app to be installed.\n"
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "679bba339ef6948091180c776d6a284cddd812f5",
      "tree": "03c629b1f8bd427a3917efd3fa9a61c6ee9930e7",
      "parents": [
        "642b7c0f1964389ed0b049df275c7b4daaf35b7a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 11:52:44 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 15:11:04 2010 -0800"
      },
      "message": "Move mount service wrapper calls to PackageHelper\n\nFix bug related to forward locked apps.\n"
    },
    {
      "commit": "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2",
      "tree": "fc25f9f6adee005c287454a74837f6cbc1a072a0",
      "parents": [
        "70251b1704b9bb81443e7533d365400645dd5eaa"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 09:43:29 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 18:50:47 2010 -0800"
      },
      "message": "Include install location preference when installing packages.\nChanges include\nAdd new remote call in default container service to determine\ninstall location.\nRename INSTALL_ON_SDCARD\nRemove recommentAppInstall method\nAdd some additional flags used in remote stubs.\nMove check for protected apps prior to copy.\nUnit tests\n\nDefaultContainerService first parses the file uri(if content uri is specified\nit returns a default install internal only value) and returns\na recommended location. Based on which the temporary id is determined\neither a file name or a container id and the file is copied there.\nThis is then later renamed during install.\nTodo\u0027s light weight parsing of package when determining location since we\njust need the install location attribute only when finding out\nrecomended location. This will also enable to move the check for\nupdated system apps(cannot be on sdcard) prior to copying.\n"
    },
    {
      "commit": "e83cefcef07f9ac025642c1ffec76b4c7ab39cf2",
      "tree": "130696ee2a90150129c3ee98544c5814528c90f9",
      "parents": [
        "72e5a8820a996c547eacea534b11b6b8f6eca83b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 17:38:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 14:20:55 2010 -0800"
      },
      "message": "New external storage APIs.\n\nThis implements the spec for external storage organization, and\nproperly reflects how the media scanner organizes the files it finds.\n\nAlso includes package manager support for removing app private\nfiles from external storage when the application is uninstalled.\n\nFor the new APIs and paths, the main place to look is Environment\nand Context.\n"
    },
    {
      "commit": "b104340496e3a531e26c8f428c808eca0e039f50",
      "tree": "11247cb68359d43ca4871c0cb0165c9bec339a6f",
      "parents": [
        "3ee1317173260252d475772fec09d492f8fcfd33"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Feb 05 08:26:50 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 11:03:16 2010 -0800"
      },
      "message": "Framework: Clean up / Refactor Mount APIs\n\n - Move android.storage.* -\u003e android.os.storage.* and refactor users\n - Refactor generic shares back to explicit ums enable/disable/isEnabled\n - Remove media insert/removed event callbacks (not ready for Froyo)\n - Remove \u0027label\u0027 from volume state change callbacks\n - Add public API functions for enabling/disabling USB mass storage (permissions enforced\n   in MountSevice)\n - Remove some stray un-needed import lines\n - Move android.os.IMountService / android.os.IMountServiceListener -\u003e android.os.storage\n - Improve code comments\n\nUpdated:\n  MountService: Add dup state check and move debugging behind a conditional\n  UsbStorageActivity: Fix review comments + a TODO\n  StorageNotification: Add @Override tags\n  StorageManager: Don\u0027t use a static Listener list\n  MountService: Reduce bloat and fix \u003d\u003d where I meant .equals()\n  PackageManagerTests: Update for new API\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "08675a3376819a82aa5ab344bc3e7b1635c30b05",
      "tree": "9a16e6be377fe367639ef9e02c5421e0ce9b9044",
      "parents": [
        "57405b93f194851eb2187a8ed3362be18a483a17"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Jan 28 09:57:30 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 02 18:33:29 2010 -0800"
      },
      "message": "Apps on sdcard: Add new broadcasts\n\nAdd new broadcasts ACTION_MEDIA_RESOURCES_AVAILABLE and\nACTION_MEDIA_RESOURCES_UNAVAILABLE that get broadcast by\nPackageManagerService when sdcard gets mounted/unmounted\nby MountService so that packages on sdcard get recognized by\nvarious system services as being installed/available or\nremoved/unavailable by the system.\nThe broadcasts are sent before the actual package cleanup which includes\nmounting/unmounting the packages and we force a gc right after so\nthat any lingering file references to resources on sdcard get\nreleased.\n"
    },
    {
      "commit": "63d15ee6ae4ff5079c7551ca4131c6d7f23ad91c",
      "tree": "4adae3b65891dc1455a6be9539d60c265e99300b",
      "parents": [
        "be16cb15b39f5140b764854bc78c139bfa9fbe8b"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 29 05:35:53 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 02 11:17:47 2010 -0800"
      },
      "message": "DefaultContainerService: Refactor MountService calls (new api)\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "a8eed0d3b698700f7af3230a985f5d0cd436f4c2",
      "tree": "0d24b78296cdf1538139d8c34ef908e909c86400",
      "parents": [
        "0ebff76e95aab7f6827ce1a8c25f1b4ad87a9029"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 15:02:41 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 15:02:41 2010 -0800"
      },
      "message": "Add asec permission  to DefaultContainerService\n"
    },
    {
      "commit": "c028be4f3b8c7476b46859f66c3f33d528adf181",
      "tree": "8a740e6207e958572706a636fcb92425dbf13a6e",
      "parents": [
        "aeb4126736c1b93abe5252e1723c568a13da7c81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jan 25 12:19:12 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 10:26:43 2010 -0800"
      },
      "message": "AppsOnSd feature - Add default container\n\nAdd new remote interface to do temporary copies. The new\nremote stub handling is done on mHandler thread and doesn\u0027t need locking\nfor now.\nAdd new InstallArgs class and subclasses to isolate cases for installation.\nMove resource deletion for failed installs/upgrades to later on in installation\ncycle.\nFix code path for forward locked apps when using scanPackageLI\n\nTODO\u0027s\nFix installation paths to completely use InstallArgs based design later on.\nGet rid of using flags in various install/uninstall code paths.\nIdeally InstallArgs should be created using these flags and used in the\nrest of the code.\nFunction renames.\nRevisit mount api\u0027s.\n"
    }
  ]
}
