)]}'
{
  "log": [
    {
      "commit": "4f05220d10338b6ad668c87e70cbe7b9914a9047",
      "tree": "fe400e54a2fa2ad9dfd09a4f09f8255f22df1171",
      "parents": [
        "bdd8d17d81c4ef41a2ae82c7f73ecff6b48f493e",
        "690d20bb53ba2485f59d128b365eff991d5cc3e6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 09 11:59:12 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 09 11:59:12 2011 -0800"
      },
      "message": "Merge commit \u0027690d20bb53ba2485f59d128b365eff991d5cc3e6\u0027 into manualmerge\n"
    },
    {
      "commit": "690d20bb53ba2485f59d128b365eff991d5cc3e6",
      "tree": "dc9e90632571711a17a963e39d04fa85613cdc11",
      "parents": [
        "3ce86481cbde92e2cb6fe3a46cbedd8b2a5c4b48"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 22 14:03:29 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 22 16:31:44 2010 -0800"
      },
      "message": "Fix issue # 3227963: SecurityException: Neither user 10023 nor...\n\n...current process has android.permission.WAKE_LOCK\n\nWhen updating a system app, we would actually uninstall the package\nof the system app, which also meant removing its uid...!  It was just\nluck that we would get the same uid when installing the update after\nthat.  During that time, if anyone tried to do anything related to\nthat uid, it would be unknown.\n\nThis change tweaks how we go about replacing system apps by making\nit more like normal apps -- to make this work, if we need to disable\nthe system app, we generate a new PackageSetting from the current\nsystem app and replace it into our data structures, so we can update\nthat without trashing the current correct information about the (still\nactually there) system app.\n\nAlso fixed a problem where we were not killing the currently running\napp before installing, like we do when updating a normal application.\n\nAnd fixed a problem where we were not deleting the /data .apk when\nuninstalling a system app update.\n\nAnd added a new option to the \"pm\" command to clear the data associated\nwith an app.\n\nChange-Id: I0e879677849aa42950a3c360bf78ad820e87674b\n"
    },
    {
      "commit": "ccc714131359eb1022d8c6702b7d82ab9e93f27c",
      "tree": "150c9798fc3d0d5dfee9c83d75845014a5edf983",
      "parents": [
        "ffdd591a829af7fddd36a7b80d2a3b8188c871a6",
        "78e9f4cbaece783b7b87ce3fb0a157dae766012a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:55:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:55:25 2010 -0800"
      },
      "message": "resolved conflicts for merge of 78e9f4cb to master\n\nChange-Id: I1135361e6d66f524c3f349e2bf1f31bd4191c634\n"
    },
    {
      "commit": "78e9f4cbaece783b7b87ce3fb0a157dae766012a",
      "tree": "92ab76a16e62d5284f826fa58499bae963245b84",
      "parents": [
        "6d13b146e0444f40f45b9fe5812093c5e611b68e",
        "e4a5951925f16f18dae91ed65567e96528f17fee"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:37:09 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 13 14:37:09 2010 -0800"
      },
      "message": "am e4a59519: Fix issue #3154576: battery stats checkin should include UID -\u003e packages+ map\n\n* commit \u0027e4a5951925f16f18dae91ed65567e96528f17fee\u0027:\n  Fix issue #3154576: battery stats checkin should include UID -\u003e packages+ map\n"
    },
    {
      "commit": "e4a5951925f16f18dae91ed65567e96528f17fee",
      "tree": "b96636542b481ce23865326f49c5ddff934e71cd",
      "parents": [
        "e3f6336bcffc250da90ec864bccfa73ad1d016b9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 07 11:08:07 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:31:40 2010 -0800"
      },
      "message": "Fix issue #3154576: battery stats checkin should include UID -\u003e packages+ map\n\nIncludes some other small fixes to battery collection and a few\nother things.\n\nOutput of package info looks like this:\n\n5,0,i,uid,1000,com.android.settings\n5,0,i,uid,1000,com.android.providers.subscribedfeeds\n5,0,i,uid,1000,com.android.providers.settings\n5,0,i,uid,1000,com.android.server.vpn\n5,0,i,uid,1000,android\n5,0,i,uid,1000,com.android.systemui\n5,0,i,uid,1000,com.google.android.backup\n5,0,i,uid,1001,com.android.phone\n5,0,i,uid,1001,com.android.providers.telephony\n5,0,i,uid,1022,com.android.nfc\n5,0,i,uid,10021,com.google.android.location\n5,0,i,uid,10021,com.google.android.syncadapters.calendar\n5,0,i,uid,10021,com.google.android.gsf\n5,0,i,uid,10021,com.google.android.syncadapters.contacts\n5,0,i,uid,10026,com.android.providers.downloads.ui\n5,0,i,uid,10026,com.android.providers.media\n5,0,i,uid,10026,com.android.providers.drm\n5,0,i,uid,10026,com.android.providers.downloads\n5,0,i,uid,10032,com.android.launcher\n5,0,i,uid,10039,com.google.android.gm\n5,0,i,uid,10041,com.google.android.gallery3d\n5,0,i,uid,10049,com.android.providers.calendar\n\nChange-Id: I9e38f254eef146339113ad270f5c6e8b60fb7a1d\n"
    },
    {
      "commit": "edebb2fe1d1c4d3ad17db91cd7e2bfe8feafd0b7",
      "tree": "763749fe5178479da84f47bc75e5d4f9607fdff7",
      "parents": [
        "0d76ca7a979b8e7cdf27a619a2a6df8b331a0d31",
        "b087ceead79bcb304e5793c6ae9109ce590847dc"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Dec 02 08:03:25 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 02 08:03:25 2010 -0800"
      },
      "message": "am b087ceea: am 40eade14: Merge from open-source master\n\n* commit \u0027b087ceead79bcb304e5793c6ae9109ce590847dc\u0027:\n  Fix crash by \"adb shell pm list permissions -f|-s\"\n"
    },
    {
      "commit": "1c3274ca12a6931568693b897c269107f0346eab",
      "tree": "f16be948fd0c11f124c2e8b402b1f290c1956879",
      "parents": [
        "f0f6c54b13831b11bd7a3bd7a01dc49b7505e56e"
      ],
      "author": {
        "name": "Ali Utku Selen",
        "email": "aliutku.selen@sonyericsson.com",
        "time": "Tue Nov 30 10:37:10 2010 +0100"
      },
      "committer": {
        "name": "Kenneth Andersson",
        "email": "kenneth.andersson@sonyericsson.com",
        "time": "Tue Nov 30 16:22:56 2010 +0100"
      },
      "message": "Fix crash by \"adb shell pm list permissions -f|-s\"\n\npm command makes the assumption that every permission should\ncontain android:description and android:label attributes while\nthey are not mandatory. If a permission does not contain these\ntwo attributes, we get \"android.content.res.\nResources$NotFoundException: String resource ID #0x0\"\nfollowed by a NPE when using -f or -s options.\n\nWith the following change, users will get \"null\" in output for\nrespective fields.\n\nChange-Id: I4e7f407592fa071abdab1d979775f46ec27dc9d2\n"
    },
    {
      "commit": "babe28e01c6e845e41f8a7d23ab0b2a2c93a2e6b",
      "tree": "acf55cad9d5266bcfe6a9a953b59dfe3f8401b0a",
      "parents": [
        "f827a0cf1d42e3f69050c2888221e901d7f80330"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon Aug 30 15:52:14 2010 -0700"
      },
      "committer": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Tue Aug 31 13:31:20 2010 -0700"
      },
      "message": "Doc change: Update pm command usage for test packages\n\nChange-Id: If9c51e0265394538023a913fa271dfb80f14a92e\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": "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": "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": "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": "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": "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": "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": "039c68e75606e837cf021815a0210836724574ad",
      "tree": "c65d4f12f6401a113421e3d6b59601da3d7ea97d",
      "parents": [
        "075a18d607c3aa8386b4d06aea22f4bfacbe447b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 26 16:39:23 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 26 16:39:23 2009 -0700"
      },
      "message": "The touch screen is probably a feature.\n\nAlso extend the feature APIs a bit.\n\nChange-Id: I99e932d7f4e61edb0e20f75c55e9831e4b59a14d\n"
    },
    {
      "commit": "23b4faf69437b732d681d9bee5c9a84379d5ccad",
      "tree": "b2f7ef4edda01b216aa7ed2137e7296b9e080f50",
      "parents": [
        "a0cad2f5d19d95cfe496ebb82f3227dd4ed7c169"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Sep 24 17:41:13 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Sep 25 11:57:44 2009 -0700"
      },
      "message": "Use reflection to figure out a readable string from install error code.\n\nInstead of a switch that needs to be maintained, the code now\nlook for public static final int fields in PackageManager\nwhose names start with INSTALL_FAILED or INSTALL_PARSE_FAILED.\n\nIf their int value match the error code, the name of the field\nis used as a human readable error string.\n\nChange-Id: If58ddc4d9ccc40a9a8aaec9de4cc7e4931db0292\n"
    },
    {
      "commit": "f03fb486ac089bf68ae3bfe7b6687dd4b928a340",
      "tree": "f6c8348268a6a80175d4dd42f90398cfd6a637a5",
      "parents": [
        "550d48f3342f01ccf6c310845e8c0b986ab7b506"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 31 16:40:30 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 31 16:42:12 2009 -0700"
      },
      "message": "Add error output to pm for FAILED_MISSING_FEATURE\n\nChange-Id: Ib9955b69b69db7d442402ab33e148cb40dec3d40\n"
    },
    {
      "commit": "b181118b6e58c0014da4e9d52bf38548adc73a8a",
      "tree": "4f62cb71cacc03d25935e5430d8aa431dbeef854",
      "parents": [
        "5b6a5cee4c48fd2ffc35f07ebe9f24eb53086b9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 21 15:45:42 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 22 18:45:25 2009 -0700"
      },
      "message": "Define TARGET_CPU_ABI for finding native code in .apks\n"
    },
    {
      "commit": "ade3ecad94d1f4431576f53bae26c35efbf7a2c9",
      "tree": "066fc83ddeb6c52011e13744152b594911895094",
      "parents": [
        "807f23b2d8c7148cf6fc95bb88cfc2f78e4be66a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 11 18:54:45 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 12 16:09:43 2009 -0700"
      },
      "message": "Implement issue #1783881 (manifest option for adb-install-only apps)\n\nYou can now use android:testOnly\u003d\"true\" to not allow your .apk to be installed\nas a normal app.  The only way to do so is with the pm command and giving the\n-t option, which sets a new INSTALL_ALLOW_TEST flag when installing.\n\nI also used this to clean up the install API...  actually, mostly to hide\nit, since it is not accessible to apps so shouldn\u0027t be in the SDK.  We\nwill be doing some more work on it, so this will prevent adding yet\nanother backwards-compatibility-for-no-reason version.\n"
    },
    {
      "commit": "c64322c35212e919906ffd66118c7d5d3ad36636",
      "tree": "846d1a95480c87f18975245ceea201535e23c553",
      "parents": [
        "3e3439d5ba0cf5eda060c4991219c32af917fc5b"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue Apr 28 15:26:38 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue May 12 23:16:20 2009 +0200"
      },
      "message": "PackageManager keeps track of who installed what.\n\nStores the package name of the installer app in packages.xml\n"
    },
    {
      "commit": "851a54143c15a1c33361efae2db3f7f45059b472",
      "tree": "c9e6ced5424530ff9a40f5471afb969e15cac35e",
      "parents": [
        "ed3b804f2cc61029cf2969cbfa499ea230c22bb0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 12:06:44 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 15:15:36 2009 -0700"
      },
      "message": "Implement targetSdkVersion and maxSdkVersion, plus version code names.\n\nThis adds new attributes for specifying a targetSdkVersion and maxSdkVersion.\nThere is a new ApplicationInfo flag that is set if the application has set\nits targetSdkVersion to the current platform or later.  Also you can now\nuse a string for minSdkVersion and targetSdkVerion, to indicate you are\nbuilding against a development tree instead of an official platform.\n"
    },
    {
      "commit": "105925376f8d0f6b318c9938c7b83ef7fef094da",
      "tree": "3b19ee2bd8704cb9c6a0da7e42dec6759183de6d",
      "parents": [
        "ba87e3e6c985e7175152993b5efcc7dd2f0e1c93"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@140373\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "b798689749c64baba81f02e10cf2157c747d6b46",
      "tree": "da394a395ddb1a6cf69193314846b03fe47a397e",
      "parents": [
        "f013e1afd1e68af5e3b868c26a653bbfb39538f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "f013e1afd1e68af5e3b868c26a653bbfb39538f8",
      "tree": "7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf",
      "parents": [
        "e70cfafe580c6f2994c4827cd8a534aabf3eb05c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
