)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "c11f46259a1e8f4e7e58925aefd1ed9eaf57a7fc",
      "tree": "54c99680c61b4e33b05d3278882f84bdf27da892",
      "parents": [
        "0f0dd448ea54ddb760ed77e7d9167b7d7ad1b916"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Tue Aug 10 03:12:15 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Tue Aug 10 03:12:15 2010 +0800"
      },
      "message": "bootanimation: Don\u0027t open non-existing bootanimation.zip\n\nWhile booting from AOSP image, logcat always complains as following:\nW/zipro   ( 1001): Unable to open zip \u0027/data/local/bootanimation.zip\u0027:\nNo such file or directory\nW/zipro   ( 1001): Unable to open zip \u0027/system/media/bootanimation.zip\u0027:\nNo such file or directory\n\nThis patch avoids opening non-existing files.\n\nChange-Id: I54cc03f125a5e16dbc930515bd2e43c623b63f8f\n"
    },
    {
      "commit": "6d6b749b24fccfbbab41567fcf1eba1f14f5ad21",
      "tree": "c4068f3bca655fb0a5ed30b8fc80f71462c31ae5",
      "parents": [
        "e7486695ced2dd135f6e2223b582adde4155b917"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 22 15:27:48 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 22 15:28:19 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Icd7336f7289db35df9c8c1857a5122bb8a6f1c86\n"
    },
    {
      "commit": "3c16154a3309fe250177d69f3fcd5b6e9a82d1b3",
      "tree": "e731510c4a2a0d1f008f13032847f6027cab50ed",
      "parents": [
        "3716ea04d9fd59ff95bacdf6efac4ab5583e13fc",
        "2723e09229ce916724861ab90b6b8fc7c9ea9f2e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 11:13:20 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 20 11:13:20 2010 -0700"
      },
      "message": "am 2723e092: Merge \"Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\" into froyo\n\nMerge commit \u00272723e09229ce916724861ab90b6b8fc7c9ea9f2e\u0027 into froyo-plus-aosp\n\n* commit \u00272723e09229ce916724861ab90b6b8fc7c9ea9f2e\u0027:\n  Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\n"
    },
    {
      "commit": "1919e5af3d8eb8bcf08e50efae2e79eaf065cf6b",
      "tree": "45b94c851309676baddec07b7879f97b59d024c7",
      "parents": [
        "dc737ca986ed9055b4bb39c67d470b6886522ca6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 10:37:06 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 10:37:06 2010 -0700"
      },
      "message": "Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\n\nChange-Id: I5cba02ee85a41e43c2623053de40f26e2cf2efe4\nrelated-to-bug: 2699505\n"
    },
    {
      "commit": "d6c0bb0f0f3827f1c336db20ac9dc0eb90cd46fa",
      "tree": "8409eea06150b5892a243b80d7ea407e63310133",
      "parents": [
        "aa2fe148496858e17d0ffd2b8d5d29b89d400934",
        "2b9a49a30d2ce1176cbd90741897705bec32d0bd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 19 08:28:32 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 19 08:28:32 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I0598edad283a177a5ddcc30e20d2284503e6038e\n"
    },
    {
      "commit": "746a95ab7145a1c7583d1f2d6004a508cd7a31dc",
      "tree": "067e8da2b4c6ecdd5d4f6327ee0aa36387285490",
      "parents": [
        "1152df7e82f1501e72aee1641d028bd7201f6d0b"
      ],
      "author": {
        "name": "Christian Mehlmauer",
        "email": "FireFart@gmail.com",
        "time": "Mon May 17 21:16:20 2010 +0200"
      },
      "committer": {
        "name": "Christian Mehlmauer",
        "email": "FireFart@gmail.com",
        "time": "Mon May 17 21:16:20 2010 +0200"
      },
      "message": "Removed Calls to deprecated APIs\n\nChange-Id: I3f9b6a8d3c8a050156a6cc7ea0eb9de33b82f79a\n"
    },
    {
      "commit": "57fff78a70c82ca09beb91c4f92d97b6f0b897e4",
      "tree": "2ee1dffe8135c478ff6bd1f60c8539eacff1bf01",
      "parents": [
        "2e4b98dcd88f14fdb35e46236ec916493c570f28"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Apr 27 10:53:35 2010 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Apr 27 10:53:35 2010 -0700"
      },
      "message": "dumpstate: Add blocked process wait-channel info to bugreport\n\nFix for http://b/2630027\n\nChange-Id: I3606d8bf95c58df2b290dbd13f48538d82f16088\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "69acb6b746c82f88607b3365795ebb3279188eed",
      "tree": "cd36e73daeba0b2f24ba77fde8643e98c866eeca",
      "parents": [
        "d4dd85d532dcd383a2f6b421e747b5ab07246d19"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Apr 16 12:52:47 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Apr 16 12:55:48 2010 -0700"
      },
      "message": "Unify am startservice commands.\n\nThis replaces the implementation with an equivalent one.\n\nChange-Id: I1343ddee9414a67906cd426b8381ddbace873894\n"
    },
    {
      "commit": "d4dd85d532dcd383a2f6b421e747b5ab07246d19",
      "tree": "2bcf1bde78fe3c0f2c470da8779653512539dc7a",
      "parents": [
        "69e398bd14fc909bb5f854c435fd210ae0974748"
      ],
      "author": {
        "name": "Anthony Newnam",
        "email": "anthony.newnam@garmin.com",
        "time": "Wed Apr 14 14:34:41 2010 -0500"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Wed Apr 14 14:35:11 2010 -0500"
      },
      "message": "Allow Am to start services\n\nChange-Id: I31d066ae2c980cc293e55034446a63a0f42088ad\n"
    },
    {
      "commit": "662292ae2d4f50990d3f2a944b9d9059775b3cc0",
      "tree": "032b484910bb96022421dae5e4565a89ee630f78",
      "parents": [
        "15683534d1f1ca76a9a59ed921219db46ff5f800"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 09:58:39 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 12:04:05 2010 -0700"
      },
      "message": "Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition to \"-a\".\n\nrelated-to-bug: 2553359\nChange-Id: Ic49eb89feb62474d9513bc21571e0e8fe3a15e0b\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": "1398e27bb0f5768cbbd5b9d9fd7c8675da63ccb0",
      "tree": "91eea1fbb15f2e7a96df53d2268aa62867a81039",
      "parents": [
        "fede9aed2b1f0b6316e18cbfa58be593fa7eb14c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Apr 06 12:17:12 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Apr 06 12:17:46 2010 -0700"
      },
      "message": "Fix \u0027bmgr restore\u0027\n\nZero means success.  Fixes bug #2573785\n\nChange-Id: I11bd4d85aa2b3a061aa37e085790ee8cd52d50a2\n"
    },
    {
      "commit": "a4357addf609c4a88867c93db135d531b2c40352",
      "tree": "98c7ac87bf0ce88999a044ffcbfd848690733471",
      "parents": [
        "d9c16c37ea28933973f32cb434f770226266b675"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 12:49:54 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 12:55:31 2010 -0700"
      },
      "message": "Coalesce multiple encoded AAC frames into a single input buffer on this particular OMX codec to increase throughput significantly.\n\nChange-Id: I90c7db6656a53339c5d454336548c4f00d0d9064\nrelated-to-bug: 2548426\n"
    },
    {
      "commit": "2d449afe3d075020bdd1115bcc15c9383cbce122",
      "tree": "d7c71c9a74e317319de947f3e3fe3ee673f0c559",
      "parents": [
        "ae405d56215e4ab43e8210b66e741a0bf9d5edcf"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 29 19:14:24 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 30 12:42:35 2010 -0700"
      },
      "message": "Make RestoreSession.getAvailableRestoreSets() asynchronous\n\nThis transaction can involve the transport having to query a remote backend\nover the wire, so it can take a Long Time(tm).  Make it main-thread-safe by\nmaking it asynchronous, with the results passed as a callback to the invoker\u0027s\nRestoreObserver.  We also make the IRestoreObserver callback interface\nproperly oneway.\n\nBug #2550665\nBug #2549422\n\nChange-Id: If18a233a0a3d54c7b55101715c9e6195b762c5a0\n"
    },
    {
      "commit": "1f4df90bfab8ca42eabe95f19eadff3432eee7fd",
      "tree": "13d9bc806e8850259b2b939d7ee9cf02651bf9d7",
      "parents": [
        "59fc58dc3f164e33a96aee09505fac5818747cb6"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Fri Mar 26 18:44:14 2010 -0700"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Mar 29 18:12:24 2010 -0700"
      },
      "message": "DO NOT MERGE\nRemoving unused features from source tree.\nPlease refer to Bug#2502219.\n\nChange-Id: I879c29bfd5ffe933f64bb1082aaae7c956450a5a\n"
    },
    {
      "commit": "5ef402baafc4818ccdf2aaec5da9cf25dd1c0e12",
      "tree": "6678df993ee5d0af105bcb948472d747fd27059d",
      "parents": [
        "9c3cee9824026764275e4d84ba9b5d9fdc5da690"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 26 17:17:25 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 26 17:17:25 2010 -0700"
      },
      "message": "Fix issue #2538228: Intents targeting browsers constantly nagging\n\nSome applications are setting the MIME type field for an http:\nintent, which is technically wrong because the recipient opening\nthe URI will get the MIME type from the header.  This was hitting\na bug when we compute the intent filter when setting the\npreferred activity, where we have to set both the MIME type and\ndata URI for the intent filter.  (For file: and content: URIs\nonly the MIME type is needed, since these can be opened directly\nthrough ContentResolver so everyone is presumed to be able to\nhandle them.)\n\nChange-Id: Ia7025e6859e9c90997bf56c2c80f225fca7a2007\n"
    },
    {
      "commit": "9c3cee9824026764275e4d84ba9b5d9fdc5da690",
      "tree": "a68cba5a6d4dc4dc747c4089a2426dcfe5550b77",
      "parents": [
        "a3de74555120cc4dc205a3f93ef44c843b8d64a8"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 25 16:06:43 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 26 14:26:44 2010 -0700"
      },
      "message": "API CHANGE: Backup/restore API changes requested by the API Council\n\n* @hide the android.app.backup.RestoreSession class and functionality\n\n* Provide a public method on android.app.backup.BackupManager that apps\n  can use to request a restore pass of their last-known-good dataset.\n  The new method is called requestRestore().\n\n* Provide the name of the package being restored, not just its ordinal,\n  in the RestoreObserver\u0027s onUpdate() callback.\n\nPart of bug #2545514\n\nChange-Id: I9689bf8d6e2b808b4ee412424a36a835be0a5ca8\n"
    },
    {
      "commit": "1a189a8232d9765e184ba4eef72c651bc868814f",
      "tree": "541750cd9148693ad0732d8854ad9b3df22efbe0",
      "parents": [
        "b43bdf41f1adf34a05625b59d4bf8c8bc24f88df"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 24 13:49:20 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 24 13:49:20 2010 -0700"
      },
      "message": "QueryCodecs now returns the names of the software codecs (non-OpenMax) as well.\n\nChange-Id: Ic4cd61f4dd722fb0dda544ffaa5615e87e3a4d40\nrelated-to-bug: 2541647\n"
    },
    {
      "commit": "e99bb5f10b90736d10cee9729b56cba156fc0921",
      "tree": "2977919e3fb3e0fcfeb5954240a2ee37abb55617",
      "parents": [
        "cbf953ed09b036441d90e14b0723a2ea417b3f35"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 19 14:36:49 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Mar 22 10:49:49 2010 -0700"
      },
      "message": "Add new method call back in MountService.\nPackageManager invokes this call back when its done handling\nthe media status update.\nAdd new uid check for updateExternalMediaStatus\nChange killPids method in ActivityManager.\nRemove mountsd command in Pm.java We cannot arbitrarily enable/disable\npackages in PackageManager now.\n\nChange-Id: I28dcba4afd2b4486f68abdaa1628a31b66544c91\n"
    },
    {
      "commit": "19b9e2e839ba0a00d8b4076dbff181986200421d",
      "tree": "e5595aeb628830a5354ae191a675054da0e02fd7",
      "parents": [
        "f4418b0113ff63c82348844f4c945c81aa9157ad",
        "c277f2c43dfae5d28c345663fa7b970dd5bc383e"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Fri Mar 19 16:26:52 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 16:26:52 2010 -0700"
      },
      "message": "Merge \"Fix bcm4329 FW dump in bugreport for user-debug build\""
    },
    {
      "commit": "c277f2c43dfae5d28c345663fa7b970dd5bc383e",
      "tree": "52aefbd856cae4c4e8c52de8fabccee9416b2369",
      "parents": [
        "6d33c5adde49eabeb2c31996700d4cd4cf9e3e05"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Fri Mar 19 16:22:07 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Fri Mar 19 16:22:07 2010 -0700"
      },
      "message": "Fix bcm4329 FW dump in bugreport for user-debug build\n\nChange-Id: I56dfdc700db5704a91015ddcdc2adb0952b097ba\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\n"
    },
    {
      "commit": "738b75864123b85c0aec2433571d74ea09df9b02",
      "tree": "6e18f316ea12bbafa6306be505e8ecab7106e6d4",
      "parents": [
        "6d33c5adde49eabeb2c31996700d4cd4cf9e3e05"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 17:45:15 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 17:45:15 2010 -0700"
      },
      "message": "Only backup real files.\n\nFixes hang when backing up droid.\n\nChange-Id: Ie8b5c9f76c39c2e6c2cdf1e3b03f56ae37912bad\n"
    },
    {
      "commit": "d3dd518baf87f06a571e56d9a127b043cf719e23",
      "tree": "a268fe0a59afe5c4615423d9dd27ea13280cfb8f",
      "parents": [
        "f43eab142df7d3096f299d34c9e5713200332392",
        "14b6abda1309631d49d4bebbb0317a7e1dfc0a50"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 18:50:29 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 18:50:29 2010 -0700"
      },
      "message": "Merge \"Add new install flag to install on internal flash only Change default install location policy for new flag. New error code for media unavailable.\""
    },
    {
      "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": "9e3f8c631e8406d905e79523ab8853324cc02abc",
      "tree": "c80036f79e281aedc5c273f2d1be978ba2716705",
      "parents": [
        "4889fb75d463278241d5174baac05a41dbef25a8"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Mar 17 09:50:25 2010 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Mar 17 09:50:25 2010 -0700"
      },
      "message": "dumpstate: Remove df from bugreport and add vold system dump\n\nChange-Id: Ib5a7611019c13bae04f6bf099c4c598f1662890a\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "0df3c165b516f71d621e79b98bf731efa441dcd4",
      "tree": "b79363f98a77ad89ae574e837ebea011f75dca39",
      "parents": [
        "9ab518ad793385f8405edf19363fe825fb64f5f8"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Mar 17 16:31:20 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Mar 17 16:31:20 2010 +0800"
      },
      "message": "keystore: rephrase the comment to make the usage more clear.\n\nChange-Id: I529ca7ed443060089c95fe96dd230288be4b6c96\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": "d73a81c28b386b64b0fb68115b60b4a0abdbbfad",
      "tree": "db79c6916dd0f923a1958e0ba17dd00569cf68ba",
      "parents": [
        "4f33d80056dc8a185176085a211bd31f143686c4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 14:34:17 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 14:34:17 2010 -0700"
      },
      "message": "Properly use a long long literal to avoid under/overflow during fps computation.\n\nChange-Id: I04730c86d43d6192ded3e779631effda9dd06e63\n"
    },
    {
      "commit": "1af34becb11ecf339511e61b7860cc6a6de848ae",
      "tree": "b4ae8616e4c989e35ebcd05d9433461dd23b75a8",
      "parents": [
        "1a3786a3e34112e3e68e6a9b07ba72802867a002"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 09:05:38 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 09:05:38 2010 -0700"
      },
      "message": "HTTPDataSource must be connected before it is usable. Fix this in the stagefright tool.\n\nChange-Id: I5313b2cb7839233d51b2d37a03b6598b0760c2e0\n"
    },
    {
      "commit": "e4bfb78ae3c4738d21e5016a51844429c4647639",
      "tree": "e73f629a0ff61fb77393c30018332878f855e190",
      "parents": [
        "26b1ef95833665fb83195caad010566c8a9e0199"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 21:43:34 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 21:43:34 2010 -0800"
      },
      "message": "The return of rawbu.  For other nefarious purposes.\n\nChange-Id: I3e9c892cb6ee79e85bc4d9b817f4ad9942a73b4e\n"
    },
    {
      "commit": "5e1573601b1c216ac647d7f590fa57496db74adb",
      "tree": "32e69652e99a7fc9df7c56e9da1a07ab2a152f01",
      "parents": [
        "8af295af91d491876a816f489d4cad2cd89054ec",
        "089262dc022d87e31eefc536025be6c015c7ebde"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 16:15:35 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 16:15:35 2010 -0800"
      },
      "message": "Merge \"Dont include code size for apps on sdcard. Use constants defined in PackageHelper for user preferences to install auto, internal, external. Set default install location to external. Update settings db version number\""
    },
    {
      "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": "e38cd3926d445512f93958f5f1bcf90003055546",
      "tree": "e5ec8419c882b50e8023af9eaafa1ce736422815",
      "parents": [
        "e182a92ae408f27f46d15de01c8a263cfe6f9246",
        "edfeb1a3f5b62061cc628c6ebc38fb163e4a8151"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 13:33:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 13:33:51 2010 -0800"
      },
      "message": "Merge \"Extend stagefright tool to extract either album art or video frame.\""
    },
    {
      "commit": "edfeb1a3f5b62061cc628c6ebc38fb163e4a8151",
      "tree": "dd9474bcb42b02ff448cd8f45ff6c59421a88c23",
      "parents": [
        "1ce986767ae5998ece6810c2933d0b274c529744"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 11:07:12 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 11:07:12 2010 -0800"
      },
      "message": "Extend stagefright tool to extract either album art or video frame.\n\nChange-Id: Iab50924e37a1aad057470a349c8f1a81858424e9\n"
    },
    {
      "commit": "d951d88c17661cf95391ca3de2a72fbe8afedb69",
      "tree": "20d217517aacbf3a9f8373ec6dc4ba9e628febf5",
      "parents": [
        "fe62d04c30e7b3abe408b56c7744c7f547c57640"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 09 18:38:25 2010 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 09 18:38:25 2010 -0800"
      },
      "message": "Use proper config to enable LVMX.\n\nChange-Id: Ic8792e2b48110b2e91903e2e407b828a97d6e531\n"
    },
    {
      "commit": "871c16cec850c042c61aa06a7ffc0e1965867bcf",
      "tree": "4eb07e9acdcaa01d10d5d3458c2659f715379c34",
      "parents": [
        "c10275abd6a494c93a025f683dde104a5d4f2793"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 05 12:18:01 2010 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 09 14:16:01 2010 -0800"
      },
      "message": "Initial version of LifeVibes integration.\nAlso changed tabs to spaces in other audioflinger files.\n"
    },
    {
      "commit": "ca14320fa28b818d755cff8f0c2ff4c780d30105",
      "tree": "c12dc28487f09261933b9e7e9188914219e81a05",
      "parents": [
        "eb6a592a283012fa3a93aad4a137b93ab9aa07ee",
        "efd13938013099e58f4dcbf818f508c585547817"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Mar 08 19:23:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 19:23:01 2010 -0800"
      },
      "message": "Merge \"More consistent and clear traces.txt reporting.\""
    },
    {
      "commit": "efd13938013099e58f4dcbf818f508c585547817",
      "tree": "af0abf19e17bd334fdd2bf6a6a65110d4c403ade",
      "parents": [
        "823961a3191b365cabf3745ee2f5f0cff059cdff"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Mar 08 13:04:13 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Mar 08 19:21:32 2010 -0800"
      },
      "message": "More consistent and clear traces.txt reporting.\n\nPrint ANR traces.txt even if it\u0027s old.\nPrint more detailed error messages about VM trace dumps.\n\nChange-Id: I067c90b8f3b3647b6136528eff3120e6cfea5715\n"
    },
    {
      "commit": "3eeffc1857d4340f8f87ab57ede899b86cf11c54",
      "tree": "ea864671559527f15ae8faa82756ca10db50fa23",
      "parents": [
        "56ec3c888a19b16ef056c157ed63d94adef7f201",
        "4165dd21592c958bacc97043d56b1ea914ab94c9"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:50:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 17:50:56 2010 -0800"
      },
      "message": "Merge \"keystore: add AID_ROOT into the user table.\""
    },
    {
      "commit": "4165dd21592c958bacc97043d56b1ea914ab94c9",
      "tree": "a0be4daa704d767d32fe77e293479d96a009bbe8",
      "parents": [
        "c6120193efebf426186b24520d70ec3e4a4aeadf"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Mar 09 09:41:32 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Mar 09 09:44:07 2010 +0800"
      },
      "message": "keystore: add AID_ROOT into the user table.\n\nChange-Id: I4b9cf24d75ca79583d7913bbb2c33745a2316cde\n"
    },
    {
      "commit": "54aa577ea28999de2f30bc34daed0cc821934409",
      "tree": "c079066ec4cf29deb1707ed4b511ccef8d01a29f",
      "parents": [
        "239038094493b3b1ac262222d1f21254b48d4fc6"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Mar 08 08:58:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Mar 08 08:58:03 2010 -0800"
      },
      "message": "dumpstate: Add secure container + mounted filesystems to bugreport\n\nChange-Id: I0cb465da86976f5cce3594c4bb846aa6510c52d6\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "61b09cbc027bdfe478ac79c59494953b6cea27dc",
      "tree": "912198e5470e78af1dcdbcfbe1740fa59ef2f4f3",
      "parents": [
        "c6120193efebf426186b24520d70ec3e4a4aeadf"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:21:35 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:21:35 2010 +0800"
      },
      "message": "keystore: allow \u0027\\0\u0027s in keys and add guards for cplusplus.\n\nChange-Id: I0af6ed7c5d51ce4ca39cb837e475942800cf6e2d\n"
    },
    {
      "commit": "4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3",
      "tree": "3f1276aef1448aad75a0d44ad1abbbd1478a4937",
      "parents": [
        "931bf89d327ecf07301231fd86b17deac535feaa"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 15:46:30 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 16:27:15 2010 -0800"
      },
      "message": "Refactor android.backup \u003d\u003e android.app.backup\n\nChange-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8\n"
    },
    {
      "commit": "485c3a16cef38136a821e79a5fe37df4e1779d28",
      "tree": "b8c6d546e9bb365c347ffc0f936a1f18e5ab2f3a",
      "parents": [
        "4a3c3b23d0aa87a68088976b4f397be116cd2338"
      ],
      "author": {
        "name": "Christian Sonntag",
        "email": "cxs@google.com",
        "time": "Thu Mar 04 14:59:04 2010 -0800"
      },
      "committer": {
        "name": "Christian Sonntag",
        "email": "cxs@google.com",
        "time": "Thu Mar 04 14:59:04 2010 -0800"
      },
      "message": "fix hex parsing of bmgr\n"
    },
    {
      "commit": "c1552397be706c243338389c628a44eee6011eae",
      "tree": "a6854366e2a68e37400a22ab95c7d9496007a4fa",
      "parents": [
        "6be0fc100e46bc1cd4d9eda6c63a962d1c24dbd4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 16:19:01 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 16:26:26 2010 -0800"
      },
      "message": "Allow multiple original-package tags.\n\nAlso fix some issues with moving files from update commands.\n"
    },
    {
      "commit": "8f7f35e0ccd91c964b9d3eeef81ff829622dfa74",
      "tree": "f00fafb472259f5b1cfa416b54cf62a2c3bef735",
      "parents": [
        "59dc9ecec6e4f53a1a2934b08c7f779d2b0a0d9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 18:48:12 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 16:34:33 2010 -0800"
      },
      "message": "Add new -W option to Am to wait for the start to complete.\n"
    },
    {
      "commit": "7d411a3b947ba82d1d57f73c0fa698c3b9c95892",
      "tree": "9fae7c4860733aaa126af64ab433c98665ff2819",
      "parents": [
        "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 11:27:08 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 12:45:22 2010 -0800"
      },
      "message": "Add single-package restore to Bmgr feature set\n\nAlso sanity-check the package name on the Backup Manager side, failing gracefully\nif the given package is not a backup/restore participant.\n\nBug: 2293977\n\nChange-Id: I3575046ffcaa3cf45c1c602824baeadd64082f70\n"
    },
    {
      "commit": "8fe5c9e39def5a0a2139d902a09ae11414b90c92",
      "tree": "efb2e1d6acbd40dd85401ffc5ab7814047baa290",
      "parents": [
        "9d6e45ad9213b3cf85e3a4ad037b4e9b182a4cc7"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Thu Feb 25 00:06:41 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Thu Feb 25 00:06:41 2010 -0800"
      },
      "message": "Replacing hard-coded mount point for ASEC with a getenv() call.\n"
    },
    {
      "commit": "3963cca7ff69feab11ab57ed378bc40f737d0b61",
      "tree": "15ece74b6838a1f6cecf20e7b8756e7423ab687c",
      "parents": [
        "a141ecff2fa21263404f32114c7cd27f4191af01",
        "6fb35fe1accfbdcbf0252e55cf7ef823c12f4c05"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 24 11:38:08 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 11:38:08 2010 -0800"
      },
      "message": "Merge \"add \"startservice\" option to am command-line utility\""
    },
    {
      "commit": "6fb35fe1accfbdcbf0252e55cf7ef823c12f4c05",
      "tree": "9665f7db74016860efaf894244562c8f39d3f297",
      "parents": [
        "9ff1f96fdf1c88c55c45e0876b10a3a9686dc28a"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 24 11:13:26 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 24 11:37:35 2010 -0800"
      },
      "message": "add \"startservice\" option to am command-line utility\n\nAllows starting Services in addition to Activities.\n\nChange-Id: Ib078115f6200faa8907b35909af2f64b0c563b38\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": "875d259c9572b06faaa6095a996e2a2c27a337af",
      "tree": "8f57e2e30536925c70e6bec2836503a293d40280",
      "parents": [
        "681875642aa6c8af6b6dc0e00d1ce6bdfcab936d",
        "66961105e54e97e5c6e1ea239055b157b74e11bc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 24 09:12:03 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 09:12:03 2010 -0800"
      },
      "message": "Merge \"Tag stagefright development tools as \"debug-only\".\""
    },
    {
      "commit": "66961105e54e97e5c6e1ea239055b157b74e11bc",
      "tree": "22c53956eed26c2a14e05f61ebe345885bf5e358",
      "parents": [
        "2ca759dbf52d07fff880499c4ba13d6cc3961190"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 16:55:02 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 16:55:02 2010 -0800"
      },
      "message": "Tag stagefright development tools as \"debug-only\".\n"
    },
    {
      "commit": "5386b3f91ab15a96d33c5cd1deb74c1493c3b3ac",
      "tree": "53cb62e36b33976c285c5b47f19aa2e9ea033ba1",
      "parents": [
        "5900dc7c33a3ec0d639e5c4828c217827c94ef43",
        "84b72ec3b455a016fcb7a7c8d02959fc6b5b88d2"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Feb 23 15:25:46 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 15:25:46 2010 -0800"
      },
      "message": "Merge \"Add Arp Cache dump\""
    },
    {
      "commit": "84b72ec3b455a016fcb7a7c8d02959fc6b5b88d2",
      "tree": "54ded6c68b269d5afa15e3be07a647af54e306e3",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Feb 23 15:21:11 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Feb 23 15:21:11 2010 -0800"
      },
      "message": "Add Arp Cache dump\n\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\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": "1f13ceb6d241ca9cebebfa6c6b5853291c2c17d6",
      "tree": "5fba46123d798507522c6c069ccd5918ec3efdd6",
      "parents": [
        "2b95c2413838c2e2b127ebab8fb4fead7d52e460",
        "6c9bf1c1de7360d96c16c7ba27b600348737a08f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 17 15:06:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 17 15:06:44 2010 -0800"
      },
      "message": "Merge \"Better diagnostics for the stagefright tool and codec performance.\""
    },
    {
      "commit": "6c9bf1c1de7360d96c16c7ba27b600348737a08f",
      "tree": "44b47111521ddecba5f815526659c0847877f6db",
      "parents": [
        "0f5a434c5467ef300b7bb408d40aa763aecdb19f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 17 14:57:28 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 17 14:58:07 2010 -0800"
      },
      "message": "Better diagnostics for the stagefright tool and codec performance.\n\nrelated-to-bug: 2450938\n"
    },
    {
      "commit": "6a70d7d1e28bd0b98d03e7ecab3fd08ea5973e34",
      "tree": "e76ae4ea5cea4d0559b115d51ca10e1fc308255a",
      "parents": [
        "1168baae849f03ad655bff74360b286b2f10b4a8"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Feb 17 14:16:32 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Feb 17 14:25:03 2010 -0800"
      },
      "message": "Don\u0027t overwrite ANR traces.txt if it can\u0027t be renamed (usually\ndue to lack of permissions, usually due to an old adb running\n\"dumpstate\" directly rather than via bugreport).\n"
    },
    {
      "commit": "642b7c0f1964389ed0b049df275c7b4daaf35b7a",
      "tree": "0aedd2679bb469a8d491d7c59931dbbef1e741d9",
      "parents": [
        "241379081e046803b7f4cf4f07091b9de49abf31",
        "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "message": "Merge \"Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests\""
    },
    {
      "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": "d705fd2b0aca3f57168934f2ea8c351ef249f829",
      "tree": "1e9c2835b330f7c1a202abdc1a68cc8827424ef7",
      "parents": [
        "f5c6eff63d19a9f7a970a4f90619edac873c006d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 14:58:04 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 16:29:50 2010 -0800"
      },
      "message": "Tweak updatecmds to be able to move entire directories.\n"
    },
    {
      "commit": "6b03844b48c13c52d4c7ec4754d53501814098d8",
      "tree": "ca1551cdb85e05299d822e0d8213f510608d56e8",
      "parents": [
        "2870552b412cd8186c6605d108b736832b9b82da"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 14:41:20 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 14:41:20 2010 -0800"
      },
      "message": "Fix simulator build.\n"
    },
    {
      "commit": "000479f9e325b4e426a67033abd92d47da412725",
      "tree": "16b93ea777744aa24ffe7d3a191bb90529ad4ce5",
      "parents": [
        "28a5dc229ed25c771cde25668928edc788073029"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    },
    {
      "commit": "0dd50e61267818b4cba0453c2abe18a77d3f6f66",
      "tree": "f7246ab284e9c357889bc84a007390170366f556",
      "parents": [
        "b687581d4cf67fe8f25bac4333b513bcba2f3cb2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Feb 09 19:02:38 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Feb 09 19:02:38 2010 -0800"
      },
      "message": "Fix installd to create /data/data/\u003cpkgname\u003e with appropriate permissions.\n\nThe directory was created with read+exec rights for others.\nThe patch restricts it to only exec rights.\n"
    },
    {
      "commit": "9446c5046872e8ae44120d4057ae724875aba1a4",
      "tree": "58a95fe37adc5051fc967af6f2ca7b82f0319842",
      "parents": [
        "7722abe2591026e7db8910afa0431602723fc1e0",
        "e4cfcb82a86e1546474c3fd25101ab561063a1bd"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 05 12:05:42 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 05 12:05:42 2010 -0800"
      },
      "message": "Merge \"When the extractor is not able to be created successfully, don\u0027t crash\""
    },
    {
      "commit": "e4cfcb82a86e1546474c3fd25101ab561063a1bd",
      "tree": "66b79cca30bd18ba9e56648567d35b330e364db7",
      "parents": [
        "09922d855bd008f58214e4c1a905263129a924a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 04 18:08:06 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 04 18:11:32 2010 -0800"
      },
      "message": "When the extractor is not able to be created successfully, don\u0027t crash\n"
    },
    {
      "commit": "5c1779b8acbf570f66ed401e5a0daad56533305d",
      "tree": "be429117b89979822b6ec8c74ad8272cc87eaa40",
      "parents": [
        "64226a49b75b44da56740a21b38ce6cc710796d8",
        "8472581aa32eee1368de379c2c079ea0a66baa3c"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Thu Feb 04 16:27:42 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 04 16:27:42 2010 -0800"
      },
      "message": "Merge \"Add single-package restore from an app\u0027s most-recent data\""
    },
    {
      "commit": "8472581aa32eee1368de379c2c079ea0a66baa3c",
      "tree": "c7e71e08b7e465fa710c7e0903b8a2a74cce6fc4",
      "parents": [
        "348f7b904851e3edcf09b8362406ff2f4ae57db2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 04 15:52:40 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 04 16:01:09 2010 -0800"
      },
      "message": "Add single-package restore from an app\u0027s most-recent data\n\nRenamed the RestoreSession performRestore() method to restoreAll(), and\nadded a new restorePackage() method that only restores the single\nspecified app.  In order to restore an app other than itself, the\ncaller must hold the android.permission.BACKUP permission.\n\nThis change also introduces dataset tracking:  the Backup Manager\npersistently remembers both the current backup dataset\u0027s identity\nand that of the \"ancestral\" dataset, i.e. the one most recently used\nfor a whole-device restore such as performed by SetupWizard.  When a\nsingle package is restored via restorePackage(), the selection of\nmost-recent dataset to use is this:\n\n1. The data from the currently-active backup dataset, if such exists.\n   An app that has ever backed up data will therefore get its last-\n   known-good data.\n\n2. The app\u0027s data from the ancestral dataset, if such exists.  This\n   covers the case of a factory reset followed by reinstallation of\n   an app at a later time.  The app had not yet backed anything up\n   post-wipe, but the old data is in the ancestral dataset and should\n   be brought forward when the app reappears.\n\n3. If neither 1. nor 2. exist, there is no data to restore, so just\n   skip it and return failure.\n\nNote that the infrastructure to automatically attempt a restore after\nan application has been installed does not yet exist; that\u0027s coming.\n\nChange-Id: I0ba170df9885128000c46ed28d3dddda3a63a143\n"
    },
    {
      "commit": "b858dfda5012a1040927ed62c3bb856c3294d882",
      "tree": "d865e8580e15ecda54e4fd4e891c489eb222a8b1",
      "parents": [
        "70d10c0156f5d2d1c639d0ebe62de8ec950d4306"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 02 10:49:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 03 15:42:02 2010 -0800"
      },
      "message": "Implement system data migration support.\n\nThis adds three new features:\n\n- \u003coriginal-package android:name\u003d\"com.foo\" /\u003e manifest tag.\n  This allows an .apk to specify another package it originally came from,\n  propagating all state and data from the old to new package.\n\n- \u003cadopt-permissions android:name\u003d\"com.foo\" /\u003e manifest tag.\n  In some more complicated cases, a new .apk may be a combination\n  of multiple older .apks that each declared their own permissions.\n  This allows you to propagate the permissions from these other\n  .apks into the new one.\n\n- A new system/etc/updatecmds directory.\n  You can place files here which describe data files to move from\n  one package to another.  (See below for details.)\n\nAlso in this change: we now clean up the data directories of\n.apks that disappear from the system image, and some improvements\nto logging and reporting error messages.\n\nA typical file in the updatecmds directory looks like this:\n\n-------\ncom.google.android.gsf:com.google.android.providers.talk\n    databases/talk.db\ncom.google.android.gsf:com.google.android.googleapps\n    databases/gls.db\n-------\n\nThis says that for com.google.android.sfs, there are two packages to\nmove files from:\n\nFrom com.google.android.providers.talk, the file databases/talk.db.\nFrom com.google.android.googleapps, the file databases/gls.db\n\nAs part of moving the file, its owner will be changed from the old\npackage to whoever is the owner of the new package\u0027s data directory.\n\nIf those two files had existed, after booting you would now have the\nfiles:\n\n/data/data/com.google.android.gsf/databases/talk.db\n/data/data/com.google.android.gsf/databases/gls.db\n\nNote that all three of these facilities assume that the older .apk\nis completely removed from the newer system.  The WILL NOT work\ncorrectly if the older .apk still remains.\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"
    },
    {
      "commit": "ea11654e684cb91252487f697c72e76da507f7be",
      "tree": "30c53b6a29da941eee85b6fa1b99538216da66f4",
      "parents": [
        "2242da5a4fadbef936153b4e43218d73033a11cd"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 17:04:26 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 17:04:26 2010 -0800"
      },
      "message": "Use six dashes instead of five.\n"
    },
    {
      "commit": "07bf09da4a365282fc35f800b62a83e0fa5533e2",
      "tree": "378e1ba0004146ae514c29c2e0ed60ac1cef6af0",
      "parents": [
        "f1c934f2726a09f11a7126e2a889c97162a2a1e2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 14:27:12 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 16:17:40 2010 -0800"
      },
      "message": "Initial checkin of AudioSource and AMRWriter, a pair of classes supporting pure-audio recording in stagefright.\n\nrelated-to-bug: 2295449\n"
    },
    {
      "commit": "b49d9af7e1205312cc25e23636ef3980bee4c1b0",
      "tree": "d99571e6880423eb6f5a1c43e59f1fc5629e82a4",
      "parents": [
        "56d42582f20efce1ff46ea2b5fff60b26cf2c1f0",
        "fd3530f90562bb7e66edfee39d90fc8beda82f1d"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Jan 19 14:11:43 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 19 14:11:43 2010 -0800"
      },
      "message": "Merge \"Mount/Unmount secure containers Persist flags in PackageSetting. Flags are relevant to ApplicationInfo.FLAG_SYSTEM, Application.FLAG_ON_SDCARD, ApplicationInfo.FLAG_FORWARD_LOCK. New pm command to simulate mount/unmount in Pm. This will be removed when MountService/vold event generation gets fixed. Calls from MountService into PackageManager when media gets mounted/unmounted. Scan the packages and grant permissions when the sdcard gets mounted. This api might change again.\""
    },
    {
      "commit": "fd3530f90562bb7e66edfee39d90fc8beda82f1d",
      "tree": "3829a74034270ac5434a0863e5dd115172443dfc",
      "parents": [
        "97d1195832829905b07b7680b73bed8af959f430"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jan 18 00:15:59 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Jan 19 14:04:54 2010 -0800"
      },
      "message": "Mount/Unmount secure containers\nPersist flags in PackageSetting. Flags are relevant to ApplicationInfo.FLAG_SYSTEM, Application.FLAG_ON_SDCARD, ApplicationInfo.FLAG_FORWARD_LOCK.\nNew pm command to simulate mount/unmount in Pm. This will be removed\nwhen MountService/vold event generation gets fixed.\nCalls from MountService into PackageManager when media gets mounted/unmounted.\nScan the packages and grant permissions when the sdcard gets mounted.\nThis api might change again.\n"
    },
    {
      "commit": "3c79a4abf816f58956831d551b858642139a082b",
      "tree": "27e21d426e6036e2c720c0e409f4fa8167068627",
      "parents": [
        "5a12413331c8bf9ebb62f84771aaac36baa5fa95",
        "e42fdb5442d09ff6b8c82520b497f56cf14673ef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 19 10:25:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 19 10:25:13 2010 -0800"
      },
      "message": "Merge \"Upgrade for the stagefright commandline tool to support extracting thumbnails and to optionally prefer software codecs.\""
    },
    {
      "commit": "e42fdb5442d09ff6b8c82520b497f56cf14673ef",
      "tree": "d2a30ee3036df8ae20b9796043f8063591f756da",
      "parents": [
        "faddd5d7d63d217a3e5201b6e7f476f1a0152a94"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 14 11:31:22 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 14 14:09:17 2010 -0800"
      },
      "message": "Upgrade for the stagefright commandline tool to support extracting thumbnails and to optionally prefer software codecs.\n"
    },
    {
      "commit": "af8e9f4805643f90a9dc0ecfa119e0a860c12f8a",
      "tree": "a6ea88a10b61204a5256901dca8b958849e13dc4",
      "parents": [
        "f6fff20a96268b0b1136a2c44199ad8de46ced5d"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Jan 12 10:17:28 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Jan 14 14:02:39 2010 -0800"
      },
      "message": "app install on sdcard. provide skeleton implementation\nto install an app on sdcard, just resources.\nAdd new install path for /asec in installd.\nignore . when checking for apk path since the sdcard packages id\u0027ed\nby package name.\nAdd new -s option to adb shell pm\nRefactor fwd locked from scanMode to ApplicationInfo.\nAdd new flag for sd install\nAdd new parse flags for fwd locking and installing on sdcard\nNew mock api\u0027s in PackageManagerService to invoke MountService api\u0027s. These\nwill be refactored again and so have been wrapped internally.\nSome error codes in PackageManager\nChanges in PackageManagerService to use mPath and mScanPath during installation\nand switch to using PackageParser.Package.applicationInfo attributes for\nsource and public resource directories.\nSome known issues that will be addressed later\n using system_uid for now. needs some tinkering with uid and packagesetting creation to use the actual app uid\n error handling from vold not very robust. ignoring lot of things for now\n sending a delayed destroy to delete packages. will revisit later\n revisit temp file creation later. just copy for now\n"
    },
    {
      "commit": "52952b1bcab28f655775efbad8f2e2b41d06a34b",
      "tree": "e3a89be656d1a4c9a91585ce5a0e70b42c018203",
      "parents": [
        "96e40b4b3769a7880eca66d1955b5e5583e979c8"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jan 13 12:27:50 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jan 13 14:30:33 2010 -0800"
      },
      "message": "Overhaul of dumpstate (aka bugreport) with cleanups \u0026 enhancements:\n\n- include basic build \u0026 timestamp information in the header\n- collect stack traces immediately at bugreport time\n- *also* show stack traces from last ANR (as before), if in the last 15 minutes\n- alphabetize system properties dump\n- remove now-obsolete (and always questionable) \"dumpcrash\" functionality\n- write to a .tmp file first, then rename to the final filename\n- friendly usage message\n- output sections include the exact file/command run\n- source de-weirdification -- it\u0027s several hundred lines shorter now\n\nThe same data is present in the same order as before, and I\u0027ve tried\nto preserve all the grep/search targets people might use to find their\nway through the file.\n"
    },
    {
      "commit": "f5d95cbc1a6974afeb4d3155bdaa8dae55722a39",
      "tree": "a999860303c704ecfd8ac0848a005fc0b8447dc3",
      "parents": [
        "51d3e798985944a3be1aafb1e01216a6627625e0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jan 07 21:48:32 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jan 08 15:46:24 2010 -0500"
      },
      "message": "less log spew\n"
    },
    {
      "commit": "5fe8598f755bdfd15e96bb2ddcdbe9a41b8173a7",
      "tree": "068d29f2544fefc83fac083d6bb1579436f10b14",
      "parents": [
        "121ec7ff33b05227cf704ff1ff6313a38897cca7"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Dec 30 10:38:39 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Dec 30 10:38:39 2009 +0800"
      },
      "message": "keystore: compute the padding in an intuitive way.\n"
    },
    {
      "commit": "5038c78f1373bf97bcb8fd030928b3cde2051ac6",
      "tree": "4468c954d0637fc9999581a4bad6651e23d57418",
      "parents": [
        "233d316553837ef81fdf152432281d878dc8f773"
      ],
      "author": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Tue Dec 22 13:30:25 2009 -0800"
      },
      "committer": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Tue Dec 22 13:30:25 2009 -0800"
      },
      "message": "Add missing shared libraries in linker commands.  Currently these libraries are\nlinked implicitly via dependencies of other shared libraries.\n"
    },
    {
      "commit": "fddd8f96f34b622cbdd0d891f8a7f5b7e18fdbf8",
      "tree": "2d7fc8ab1a11056564ed3886b93cc2118fd6a69e",
      "parents": [
        "2d49b7229a5ec98082c7cd173d326b65ad514791",
        "fa4ae74ef7db34ec5efe86e7606271928a876c1c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 22 01:39:14 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 22 01:39:14 2009 -0800"
      },
      "message": "Merge change I70f91838\n\n* changes:\n  keystore: Add paddings before checksumming.\n"
    },
    {
      "commit": "fa4ae74ef7db34ec5efe86e7606271928a876c1c",
      "tree": "7a6cc039c0d9af85c53e5a9eb6a704a87a0e74ea",
      "parents": [
        "e3b30e6950c039744674e53e80852fbe4d3fb864"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Dec 22 17:02:45 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Dec 22 17:26:42 2009 +0800"
      },
      "message": "keystore: Add paddings before checksumming.\n\nAlso fix a file descriptor leak when file system is nearly full.\n\nBug: 2339184\n"
    },
    {
      "commit": "c59411b17670ae9b5a6eb33e0fd62ca0e80d1578",
      "tree": "0c43e3a55cba905d2fe343773590646c470792d7",
      "parents": [
        "ee0511d76ce0ceae2f54782ca33e400e62d08137"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 21 20:10:14 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 21 20:20:59 2009 -0800"
      },
      "message": "Rework activity manager debug dumps.\n\nChange how we do debug dumps from the activity manager to make\neverything go through the activity manager interface (no more\nsecondary interfaces), and use the command line arguments to\ncontrol what gets dumped.\n\nThe output from dumpsys without args still dumps everything.\n\nWhen just dumping the activity service, we now dump a subset\nof all of the am state that is interesting without being\noverwhelming.\n\nYou can use \"dumpsys activity -h\" to get help with other things\nthat can be dumped.\n"
    },
    {
      "commit": "4f471648e976d4f0000bd0dbcd0b4ebc4e0b16dd",
      "tree": "b542dffb1f8c45a5a783a6d12e6b1e7295e19509",
      "parents": [
        "f7ed3a2b0fd00c517671cc986b4b44d29b60ac28",
        "b5c6be6db25d9e9405ea4cf20bbedd46a62dc0bb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 17 10:27:48 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 17 10:27:48 2009 -0800"
      },
      "message": "am b5c6be6d: am 082e5171: Merge change I895fb7d7 into eclair-mr2\n\nMerge commit \u0027b5c6be6db25d9e9405ea4cf20bbedd46a62dc0bb\u0027\n\n* commit \u0027b5c6be6db25d9e9405ea4cf20bbedd46a62dc0bb\u0027:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "2ea14e231945afb6581fa8f54015b33bc74a19e5",
      "tree": "966adffbd5960c907324a5a78dc91abf40ea8fb5",
      "parents": [
        "d980e656baa842592944c6fed371c9b37b2feea9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 16 09:30:55 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 17 09:28:15 2009 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 144b1c40e9cf08a584c50e1bef7ba3f287e81a4f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 16 09:28:23 2009 -0800\n\n    This H264 file shows a certain problem even better.\n\ncommit 3245f1f3b7471975aeeb824a756c987abd610f55\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 16 09:20:08 2009 -0800\n\n    Using only the QA testfiles now.\n\ncommit 074817eb3816c5dd70858a3594e3b92d799d873b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 15 16:17:39 2009 -0800\n\n    Yay, roles are back again now that the API is in place.\n\ncommit 6d847e4932cc38301ae27cb7283b7f1553a95457\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 15 13:01:20 2009 -0800\n\n    Added commandline option for specifying the random seed for reproducable tests.\n\ncommit 62ab37b26336eaa67e49791c41c996acb6acee3f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Dec 14 10:53:27 2009 -0800\n\n    When issuing a seek it is important that only the first MediaSource::read call has the seek option.\n\ncommit e77c46644b2fb6862bafa3569f7d304252074f1e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Dec 7 16:39:07 2009 -0800\n\n    Make sure the tests are actually built, sp\u003cOMXCodec\u003e becomes sp\u003cMediaSource\u003e\n\ncommit 6df56915bd55a9445b3c6f953d3cc251d81579b8\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 3 14:25:36 2009 -0800\n\n    Temporarily disable support for querying the roles of OMX components.\n\ncommit 31bb26930df9e3658dea684cedb4b0f1a06a4a88\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 1 13:36:52 2009 -0800\n\n    Disregard EOS events, slightly change the way the EOS flag on output buffers is handled.\n\ncommit 4c382fbc9aebee8197d5988d04378062809e7c48\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 1 09:37:24 2009 -0800\n\n    New random seek test for the codec tests. Fixed \"sticky\" end-of-output-buffers flag behaviour in OMXCodec.\n\ncommit c762eac3e44309592b61a168d66e091cf609fa03\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 3 14:13:43 2009 -0800\n\n    Fix a typo.\n\ncommit 50540a59b65c7d476b0193c7494cd75895e6ca6d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 3 09:48:35 2009 -0800\n\n    Some more fine tuning of the unit tests, make MPEG4Extractor less verbose.\n\ncommit 1157a7e52a0636706caa235abe16d2ff8a0b8140\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Oct 28 12:01:01 2009 -0700\n\n    Changes to the IOMX::listNodes API, this now returns the component\u0027s roles as well, unit tests now test all components in all supported roles by default.\n\ncommit 30fbf2d8c6cb927689f7ba75eb550a81e9df488a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Oct 26 09:45:26 2009 -0700\n\n    Initial check-in of unit tests for OMX components.\n"
    },
    {
      "commit": "64bf3d53d5ce62a786b270d1dd86d8eae723fea5",
      "tree": "fe9b0e9c6787bef527d484c7c74dbfcdc1409a7c",
      "parents": [
        "2786d21ddeeb2a46733fbac1afd6533b093d70ee"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Wed Dec 16 16:05:08 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Wed Dec 16 16:05:08 2009 -0800"
      },
      "message": "Add FW log dump for bcm4329\n\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\n"
    },
    {
      "commit": "772f8f4b3baa40193082a849fd2abcfa321018f8",
      "tree": "bd80a6130f5fdfafebdbcf39c3112ff1e2b84146",
      "parents": [
        "eab53392ae25be197283942934596500e4186d39",
        "23915ddde9ce3ed9f1ce50ea321c8fdce612faf0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 14:42:47 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 14:42:47 2009 -0800"
      },
      "message": "am 23915ddd: am eec100b2: Merge change If0d04246 into eclair-mr2\n\nMerge commit \u002723915ddde9ce3ed9f1ce50ea321c8fdce612faf0\u0027\n\n* commit \u002723915ddde9ce3ed9f1ce50ea321c8fdce612faf0\u0027:\n  Don\u0027t count empty buffers when computing the frame rate.\n"
    },
    {
      "commit": "f0d04246f40b3f87d361451f9ebc2feb7b5318de",
      "tree": "52da725d9613003613ca313a6ec0976ba513c619",
      "parents": [
        "159f0015418955501d8cf2744b0393db2e73f394"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 12:21:57 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 12:21:57 2009 -0800"
      },
      "message": "Don\u0027t count empty buffers when computing the frame rate.\n"
    },
    {
      "commit": "1d44bea4443050ef39604032dc88334f69e87aa7",
      "tree": "5128cc4f5119fd44b8aca675762415eb9cc20ca7",
      "parents": [
        "4454ac76572d79185f54f6f983c846ead7431b39",
        "f553a58425c66a990dbc5f4579c976a0636fc573"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 18:32:57 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 07 18:32:57 2009 -0800"
      },
      "message": "am f553a584: am 5921fb51: Merge change I91eb0354 into eclair-mr2\n\nMerge commit \u0027f553a58425c66a990dbc5f4579c976a0636fc573\u0027\n\n* commit \u0027f553a58425c66a990dbc5f4579c976a0636fc573\u0027:\n  Change OMXCodec::Create to return an sp\u003cMediaSource\u003e instead of an sp\u003cOMXCodec\u003e, this is more general and does not sacrifice any functionality as the remaining OMXCodec APIs are not meant to be public anyway.\n"
    },
    {
      "commit": "91eb0354043842d96bf3ef201ce68046db70df74",
      "tree": "b09f35a1f7887ef25af837d000bd041176368f3b",
      "parents": [
        "52f410e2ebba103220cffce05b895f0c38a56665"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 09:43:00 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 09:43:00 2009 -0800"
      },
      "message": "Change OMXCodec::Create to return an sp\u003cMediaSource\u003e instead of an sp\u003cOMXCodec\u003e, this is more general and does not sacrifice any functionality as the remaining OMXCodec APIs are not meant to be public anyway.\n"
    },
    {
      "commit": "4612a9c53c00943d9a8c2c2b95f4bdfcea17a011",
      "tree": "d6ad78cc98d385b63989cfd7aac043f76126526f",
      "parents": [
        "fe124cffd84be0ca57d1357c541c1e81205df40a",
        "ae34cf92db9c54ba72fdcac33a8ba855a2215e4e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 01 17:26:32 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 01 17:26:32 2009 -0800"
      },
      "message": "am ae34cf92: am 781ac162: Merge change I8768f2cc into eclair-mr2\n\nMerge commit \u0027ae34cf92db9c54ba72fdcac33a8ba855a2215e4e\u0027\n\n* commit \u0027ae34cf92db9c54ba72fdcac33a8ba855a2215e4e\u0027:\n  A small sample tool to encode pcm audio data to amr, decode it again and play it. Some changes to OMXCodec to properly configure the AMR decoder(s).\n"
    },
    {
      "commit": "8768f2ccefdd7862a248995055aa04fd2d5a4dfe",
      "tree": "889d228a9857efec02281f1536b11699dfa2a6f6",
      "parents": [
        "ed90811e711065bcc82a45f4173587cd95ef6b6f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 01 15:26:54 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 01 15:26:54 2009 -0800"
      },
      "message": "A small sample tool to encode pcm audio data to amr, decode it again and play it. Some changes to OMXCodec to properly configure the AMR decoder(s).\n"
    },
    {
      "commit": "1b3c375ce2f790f890f8efe7117040738035d6c5",
      "tree": "4014d2d13ecfc890e115437d69b10f2499b640b3",
      "parents": [
        "4cbe8ef11e4e913180133822da7e9b3ccc369569",
        "bf72820e7775748c7239287b49b81031167b3428"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Dec 01 09:12:22 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 01 09:12:22 2009 -0800"
      },
      "message": "am bf72820e: am b292461c: Merge change I305e1b8f into eclair-mr2\n\nMerge commit \u0027bf72820e7775748c7239287b49b81031167b3428\u0027\n\n* commit \u0027bf72820e7775748c7239287b49b81031167b3428\u0027:\n  add --esn option to am to allow adding extra with a null value\n"
    },
    {
      "commit": "305e1b8fe926430e63d167ebed0c1f4d191ebcdc",
      "tree": "1ce084ed7c14c9d8c0f9723dc65e26d16b9046a9",
      "parents": [
        "3766ae5551e6231c251b0af38206aea30a49df63"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Nov 30 16:15:15 2009 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Nov 30 16:15:15 2009 -0800"
      },
      "message": "add --esn option to am to allow adding extra with a null value\n"
    },
    {
      "commit": "84ba348474b63237c06c78e57ac25fd7ac01929a",
      "tree": "61ea8017cb9ac8b3554f2624e37ed3c699caacf1",
      "parents": [
        "0eaa19cf984120468c984219b43e3b967578a82a",
        "c92f3bcd556be6086aabcdcf437cc29c2ac605f6"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Sun Nov 29 14:01:14 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Nov 29 14:01:14 2009 -0800"
      },
      "message": "am c92f3bcd: am e11a1b4d: am f817218e: dumpstate: Pick up the last kernel log from /proc\n\nMerge commit \u0027c92f3bcd556be6086aabcdcf437cc29c2ac605f6\u0027\n\n* commit \u0027c92f3bcd556be6086aabcdcf437cc29c2ac605f6\u0027:\n  dumpstate: Pick up the last kernel log from /proc\n"
    },
    {
      "commit": "e11a1b4d1a57dd6f42171aca3a4edb71438cbad1",
      "tree": "19d13bbb4f48e76c652b572dab37e37081f4902a",
      "parents": [
        "331c7788a84fc6f625ac1bafbb33cf7da1116407",
        "f817218e09a556f20efc81309ba2cdb3475a370b"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Sun Nov 29 13:51:14 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Nov 29 13:51:14 2009 -0800"
      },
      "message": "am f817218e: dumpstate: Pick up the last kernel log from /proc\n\nMerge commit \u0027f817218e09a556f20efc81309ba2cdb3475a370b\u0027 into eclair-mr2\n\n* commit \u0027f817218e09a556f20efc81309ba2cdb3475a370b\u0027:\n  dumpstate: Pick up the last kernel log from /proc\n"
    },
    {
      "commit": "f817218e09a556f20efc81309ba2cdb3475a370b",
      "tree": "3e5886906ffc5dabc3b3b423a2438055061b4b2a",
      "parents": [
        "bcab01f6d0158c4d928f42b034949dc9608665a6"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Nov 25 23:31:48 2009 -0800"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Nov 25 23:34:19 2009 -0800"
      },
      "message": "dumpstate: Pick up the last kernel log from /proc\n\nThis is needed since its no longer copied to /data/dontpanic by init.\n\nChange-Id: I5217da73ec470653824b7fb9a31e093e263a8dc9\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    }
  ],
  "next": "a8529f68671a8a118751cb6ad577f44eaf076b96"
}
