)]}'
{
  "log": [
    {
      "commit": "9f777008eaead3cb9cee80d0c00e5a3d55de9de7",
      "tree": "95241374d0e30c18b265fb376a65ca3ec84d8a70",
      "parents": [
        "97175deb446cdaca7f3910b71940cb443bda3cc4",
        "05f980d42d4926ab2130cdcf9e646eb610a7080b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 09 14:02:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 09 14:02:18 2014 +0000"
      },
      "message": "am 05f980d4: am d4b64409: Merge \"Make zygotes aware of their supported ABIs.\"\n\n* commit \u002705f980d42d4926ab2130cdcf9e646eb610a7080b\u0027:\n  Make zygotes aware of their supported ABIs.\n"
    },
    {
      "commit": "97175deb446cdaca7f3910b71940cb443bda3cc4",
      "tree": "7f316f4f074f8427d3046f99b683b97136cc3b14",
      "parents": [
        "dc7eb9c947f36cbd34021663845bcbb090c3169d",
        "3856a219fa414ee53c5ef3a0c35dae35e2ca80b1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 09 14:02:08 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 09 14:02:08 2014 +0000"
      },
      "message": "am 3856a219: am cecfb94f: Merge \"Clean up argc / argv processing for runtime args.\"\n\n* commit \u00273856a219fa414ee53c5ef3a0c35dae35e2ca80b1\u0027:\n  Clean up argc / argv processing for runtime args.\n"
    },
    {
      "commit": "c41638cb759ce569630ffae4c5c4cdee1b0f3b82",
      "tree": "06f51dec3427c6e8322816b2e43f2bb784f28fe0",
      "parents": [
        "22ec1eefa4dc8e12f7da8e8750d4770144941526"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Apr 07 13:56:15 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 09 13:41:15 2014 +0100"
      },
      "message": "Make zygotes aware of their supported ABIs.\n\nQuery system properties for the list of ABIs and pass\nit as a command line argument to ZygoteInit.\n\nAlso add a new Zygote command that returns this list of\nABIs to peers.\n\nChange-Id: I68034c6f63fa626911122579a011a0a25a8cda94\n"
    },
    {
      "commit": "22ec1eefa4dc8e12f7da8e8750d4770144941526",
      "tree": "f5ca6c4f0055e8c4ef01cf484abc65d983ec990b",
      "parents": [
        "a5608acbd7647e0fd9aa87e5319715b0cbd6b0c0"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Apr 07 12:44:58 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 09 13:39:41 2014 +0100"
      },
      "message": "Clean up argc / argv processing for runtime args.\n\n- Make copies of argc, argv before argv is potentially\n  overwritten with the process name.\n- Allow multiple command line arguments to be passed to\n  ZygoteInit (this is required for some of the 64 bit\n  zygote work).\n- Add an explanatory comment about how these argments\n  are processed.\n\nChange-Id: I752be69c5c0f97ed17d1a3dded19f46ee00929b0\n"
    },
    {
      "commit": "71ae2bd42be21de6d25d1f8c52e3973c172462df",
      "tree": "16ce2ca454184f06841a1da827623adeeb1a5b2a",
      "parents": [
        "55da62288dcec75c34721a59d71f917dcb8a62b4",
        "f87b3a25b928f145558f6f60183944f513878b63"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 03 14:11:34 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 03 14:11:34 2014 +0000"
      },
      "message": "am f87b3a25: am 374db6c3: Merge \"Remove ProcessState::mArgc,mArgV,mArgLen\"\n\n* commit \u0027f87b3a25b928f145558f6f60183944f513878b63\u0027:\n  Remove ProcessState::mArgc,mArgV,mArgLen\n"
    },
    {
      "commit": "a23fcd7be8e40078a913b1a99222cdd89229e67b",
      "tree": "9580df860d196b7b1edab40837c0c08fbc4ff6da",
      "parents": [
        "369a00574da218975718ce07ffe6abba5c17bf92"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 28 13:39:21 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 03 12:29:07 2014 +0000"
      },
      "message": "Remove ProcessState::mArgc,mArgV,mArgLen\n\nThese look like historical oddities, and weren\u0027t really being\nused for anything useful.\n\nProcess:setArgV0 was being called by android.util.Process, but\nthat functionality can be moved directly into the implementation\nof that class.\n\nbug: 13647418\n\nChange-Id: I216c8f8a4c065f0cf3a61f19f9e32decd26f93f6"
    },
    {
      "commit": "c1a7d0758de065da80129baa85f1471e67c7fe21",
      "tree": "31e0a53c9339da4782e84f666f71d0f951423126",
      "parents": [
        "6984e4f9bbeb48fb7437183ed2aeb06661bbc228",
        "232d422405d686eb493b48370a2b2f7c35fe96fb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 27 17:36:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 27 17:36:27 2014 +0000"
      },
      "message": "am 232d4224: am f0ffa8a3: Merge \"app_process: use LOCAL_MULTILIB :\u003d both\"\n\n* commit \u0027232d422405d686eb493b48370a2b2f7c35fe96fb\u0027:\n  app_process: use LOCAL_MULTILIB :\u003d both\n"
    },
    {
      "commit": "f130f0aaea58358dafbe83ccec2b5163b5bed1fb",
      "tree": "06be6d4b9de8764d34ef29e7dc2eca085833c2c4",
      "parents": [
        "5daf51c0fe6d5bea858c37291fed88bd3094d3ec"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 27 10:20:29 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 27 10:20:29 2014 -0700"
      },
      "message": "app_process: use LOCAL_MULTILIB :\u003d both\n\nUse LOCAL_MULTILIB :\u003d both to build app_process64 instead of\nduplicating the build rule.\n\nAlso causes PRODUCT_PACKAGES :\u003d app_process to install both\nversions on 64-bit platforms, as the module names for both\napp_process and app_process64 are now app_process.\n\nChange-Id: Ia3c3265d15475771b0cae8bace53b8fbf351c186\n"
    },
    {
      "commit": "71a3d40d20c9507efab94260431e330558b90cd0",
      "tree": "f6a131aec0ca2e6c5714e4a5971403dd3f99dbea",
      "parents": [
        "065b8fd1c388812a789be48aaa0a0f7918d2755d",
        "e4360c8e14d1ea362fb1d13b7a5c9bf003f3be00"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 20 17:46:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 17:46:50 2014 +0000"
      },
      "message": "am e4360c8e: am 4308a523: Merge \"bootanimation: build 32-bit if 64-bit gl libraries are not available\"\n\n* commit \u0027e4360c8e14d1ea362fb1d13b7a5c9bf003f3be00\u0027:\n  bootanimation: build 32-bit if 64-bit gl libraries are not available\n"
    },
    {
      "commit": "49fca697470b8321a02bdd2a828e9beec1ef1182",
      "tree": "ea9e5d4620c179c1c3606f8ec041e0f162c8d714",
      "parents": [
        "c60ac2b825459165b7e708fc2049d04d6f5c3fb2",
        "0dccb02b9fd714af1db91e4ba3ca0b0da4e563c1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 20 01:23:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 01:23:28 2014 +0000"
      },
      "message": "am 0dccb02b: am 19fc55e1: Merge \"build app_process64 on 64-bit targets\"\n\n* commit \u00270dccb02b9fd714af1db91e4ba3ca0b0da4e563c1\u0027:\n  build app_process64 on 64-bit targets\n"
    },
    {
      "commit": "31d16e5bf9e4edc8c3af08d8405ebe90bde99220",
      "tree": "52893a54e874aafbaf39bb0e9ffd3eaed7cce6fe",
      "parents": [
        "2764fce3a1119599cd231545b16e6a16286e482d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 19 18:09:01 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 19 18:10:31 2014 -0700"
      },
      "message": "bootanimation: build 32-bit if 64-bit gl libraries are not available\n\nSet LOCAL_32_BIT_ONLY if TARGET_32_BIT_SURFACEFLINGER is set.\n\nChange-Id: I76396cc9fe3fe45d1e98a44bf911d6e70922555a\n"
    },
    {
      "commit": "2764fce3a1119599cd231545b16e6a16286e482d",
      "tree": "10afd1b4914b8e5eb448f94514221e93a2167179",
      "parents": [
        "bfc440923ecb8f32448c675095a2096049fe7ebe"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 19 17:47:39 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 19 17:49:47 2014 -0700"
      },
      "message": "build app_process64 on 64-bit targets\n\nOn 64-bit platforms builds two copies of app_process, the 32-bit\napp_process and 64-bit app_process64.\n\nChange-Id: I59d739b5df398ad0bd040c954c57640ff7ab3e72\n"
    },
    {
      "commit": "dc3561df118a17a099285c9be312fb66f91314ec",
      "tree": "aaa4dfc755da057f36c03acd2dd2658c7793bf1e",
      "parents": [
        "e574f7decf7bc2c6861aff2fd4458b9f96a08a28",
        "01de243263d347f2ac13a239d67d41817e34df33"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Fri Feb 14 01:54:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 14 01:54:49 2014 +0000"
      },
      "message": "am 01de2432: am 24d8fa73: Merge \"frameworks/base: move idmap from frameworks/native\"\n\n* commit \u002701de243263d347f2ac13a239d67d41817e34df33\u0027:\n  frameworks/base: move idmap from frameworks/native\n"
    },
    {
      "commit": "13221c9cffdb289851411bdc73a9a5236fcb9291",
      "tree": "838dc670e5df43923b5bb980b0b515cf3cb432cf",
      "parents": [
        "ecbeae74f299f44f9ec4c79ddd885e999d4e1b64"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 11 18:04:44 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 11 18:11:36 2014 -0800"
      },
      "message": "frameworks/base: move idmap from frameworks/native\n\nidmap depends on libandroidfw, so it should go in frameworks/base.\n\nChange-Id: I3c1db3baa355f53d6b523d60f4377e63eff00c30\n"
    },
    {
      "commit": "e0a3884cb627efc650e19fbe76b1b3343468cf57",
      "tree": "5cdfc0e202bb18c314138dea3f1328c3f6e55ba0",
      "parents": [
        "02d5df1066c07972e1169a338e5fba16c86cc51b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Dec 16 16:14:02 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jan 06 08:51:21 2014 -0800"
      },
      "message": "Extend stack management to other displays.\n\n- Abandon ActivityContainer.startActivity() in favor of\nIActivityManager.startActivityAsUserInContainer().\n- Modify Am to test starting an activity on a container.\n- Create a DisplayContext as the base context if the activity token\nis on a different display.\n- Test for home display in more cases when manipulating home stack.\n- Rename mDisplayInfos \u003d\u003e mActivityDisplays.\n- Create new method for moving task to front of stack regardless of\nwhich display it is on.\n\nChange-Id: I4fcb83ae844c5839ee3e2722229623d1a80ed921\n"
    },
    {
      "commit": "4a1cb22056112f7ffd5f4fad8b7a092b96e7cc7b",
      "tree": "2a30eb0760369a59905895e88f8325fbf9934414",
      "parents": [
        "3bcdbd6b2d96427d7cee835e9ed79aeed51de267"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 04 16:14:06 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 18 15:08:15 2013 -0800"
      },
      "message": "Pair ActivityStacks with Displays\n\n- Introduce concept of ActivityStacks residing on Displays and able\nto be decoupled and moved around.\n- Add a new interface, IActivityContainer for clients to handle\nActivityStacks.\n- Abandon ordering of stacks based on mStackState and instead use\nActivityDisplayInfo.stacks\u003cActivityStack\u003e ordering.\n\nProgress towards closing bug 12078972.\n\nChange-Id: I7785b61c26dc17f432a4803eebee07c7415fcc1f\n"
    },
    {
      "commit": "fc800d407d695926ba07299c4e27d1e06284098f",
      "tree": "c757c3f9d7830cc3d1faf8499620ebd6a0bf757b",
      "parents": [
        "0f3390f846ed5ee63e3926b78878c7b75ee2f0c0",
        "fbd6d5a8f8f242ab5a079cc6ed12e2ebaa8bb226"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Dec 16 18:44:04 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 16 18:44:04 2013 +0000"
      },
      "message": "am fbd6d5a8: am 09fdc159: am 3ddee4de: Merge \"[bootanimation] Drop user loadable bootanimation.zip abiltiy.\"\n\n* commit \u0027fbd6d5a8f8f242ab5a079cc6ed12e2ebaa8bb226\u0027:\n  [bootanimation] Drop user loadable bootanimation.zip abiltiy.\n"
    },
    {
      "commit": "09fdc159552c85032ce9860fc0d63b6eebeca82a",
      "tree": "1f4926998feab8a79f3676fea0c4d8ebf34085d3",
      "parents": [
        "1e609ac45df13fed93df81e805ea6d6485da3aa0",
        "3ddee4dec9b7ae2265c356f5809eae73e1ef8796"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Dec 16 10:36:39 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 16 10:36:39 2013 -0800"
      },
      "message": "am 3ddee4de: Merge \"[bootanimation] Drop user loadable bootanimation.zip abiltiy.\"\n\n* commit \u00273ddee4dec9b7ae2265c356f5809eae73e1ef8796\u0027:\n  [bootanimation] Drop user loadable bootanimation.zip abiltiy.\n"
    },
    {
      "commit": "cee6a096b155582211f58bb3e541cf431c6ac3dc",
      "tree": "699911902474463f4f5e6c1f93c20f52f296e919",
      "parents": [
        "a0ab49bb52f44eac97f81117d6864edd6a2e0487"
      ],
      "author": {
        "name": "Robert Craig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Mon Dec 16 09:42:51 2013 -0500"
      },
      "committer": {
        "name": "Robert Craig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Mon Dec 16 09:42:51 2013 -0500"
      },
      "message": "[bootanimation] Drop user loadable bootanimation.zip abiltiy.\n\nA prior change removed the ability of\nthe shell to push to /data/local. Because\nof this, the bootanimation code no longer\nsupports users loading custom bootanimation.zip\nfiles. This patch drops the access attempt\nfrom the code.\n\nChange-Id: Ie30dd73699c8296be00dc6fbf14691e08baa6410\nSigned-off-by: rpcraig \u003crpcraig@tycho.ncsc.mil\u003e\n"
    },
    {
      "commit": "411954aef072574676462f579847a01af0aed728",
      "tree": "c21a4f7a2f671350a49ca2dce27927cf3458ec65",
      "parents": [
        "851138fcee54877c9a2cc4102427a3ecc126bbea",
        "a64163093e6e55f8bbb0153e783fb0ab635e9e60"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Dec 11 22:08:05 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 11 22:08:05 2013 +0000"
      },
      "message": "am a6416309: am 1e137549: am efa5c88f: Merge \"Don\\\u0027t try to set service.bootanim.exit\"\n\n* commit \u0027a64163093e6e55f8bbb0153e783fb0ab635e9e60\u0027:\n  Don\u0027t try to set service.bootanim.exit\n"
    },
    {
      "commit": "0bc3607c2823752ae68fe9a2f45803ecc7895a84",
      "tree": "10c1cf6220d56b5516991a0bbcf24e26524ec612",
      "parents": [
        "e2fbb2ac6802e54d67a910da790711fbb2f09201",
        "9f09408e3939c5afdb3f9dafc41afd249303ed7f"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 22:02:25 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 11 22:02:25 2013 +0000"
      },
      "message": "am 9f09408e: am 336bf2fb: am d21752df: Merge \"Reimplement ZipFileRO in terms of libziparchive.\"\n\n* commit \u00279f09408e3939c5afdb3f9dafc41afd249303ed7f\u0027:\n  Reimplement ZipFileRO in terms of libziparchive.\n"
    },
    {
      "commit": "1e137549fea552377b53c642518af0201e85cafe",
      "tree": "11679069194396503b35e299a58736c039e0781a",
      "parents": [
        "5d819bef3f4bf97c87032cc403e859b1d0d6797a",
        "efa5c88f37165d02e3e11882026c7660c879ff61"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Dec 11 13:53:29 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 11 13:53:29 2013 -0800"
      },
      "message": "am efa5c88f: Merge \"Don\\\u0027t try to set service.bootanim.exit\"\n\n* commit \u0027efa5c88f37165d02e3e11882026c7660c879ff61\u0027:\n  Don\u0027t try to set service.bootanim.exit\n"
    },
    {
      "commit": "e58d09a5526338aa1f550a1c4111fe4d5028554d",
      "tree": "243a0d478a0cd7d28792c3ce879dbf0b200833b1",
      "parents": [
        "ce3bd309b12e9552c05d5a59a06d7883618c5ca0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Dec 11 13:10:55 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Dec 11 13:10:55 2013 -0800"
      },
      "message": "Don\u0027t try to set service.bootanim.exit\n\ninit has never allowed the bootanimation code to\nset service.bootanim.exit, and has always generated the\ndmesg error message\n\n  \u003c3\u003e[   17.644615] init: sys_prop: permission denied uid:1003  name:service.bootanim.exit\n\nSince setting this property has no effect and never worked, delete\nthe code which tries to do it.\n\nChange-Id: Idacc5467d85479a8cf974702af8895011be585ea\n"
    },
    {
      "commit": "336bf2fb497fece49a874da2ca2e11572446d1d1",
      "tree": "bcec014216dfef6a44852595a3f88834cf064540",
      "parents": [
        "5b9437df99b0351d7e94a61c9f599d9031f24c08",
        "d21752dff45c7d8856e63026cfddc303a302df14"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 03:45:58 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 11 03:45:58 2013 -0800"
      },
      "message": "am d21752df: Merge \"Reimplement ZipFileRO in terms of libziparchive.\"\n\n* commit \u0027d21752dff45c7d8856e63026cfddc303a302df14\u0027:\n  Reimplement ZipFileRO in terms of libziparchive.\n"
    },
    {
      "commit": "d21752dff45c7d8856e63026cfddc303a302df14",
      "tree": "2aa3f04db9bea55993977f156c4e750a063bcb75",
      "parents": [
        "4a72b3064cecc85c56b8d75bb4a2d9fedbf76ec8",
        "afd31e08299008fdc5c2813f21b2573f29dc53df"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 11:41:10 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 11:41:10 2013 +0000"
      },
      "message": "Merge \"Reimplement ZipFileRO in terms of libziparchive.\""
    },
    {
      "commit": "bdc748af8ce62778d2ad15040ecdfada6e4635fd",
      "tree": "fbe9925fbb945d4435a8e2aa5aa8ab0844ceab48",
      "parents": [
        "09e9cdceceb722643e2c80c6544d44a43d7f95f0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Dec 02 14:08:25 2013 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Dec 09 15:15:34 2013 -0800"
      },
      "message": "DO NOT MERGE: Eliminate StackBox.\n\nStackBox is too constraining. Adding size and position to TaskStacks\ndirectly makes stack positioning and management more flexible and\nprepares for ActivityView.\n\nChange-Id: I33c6b4e1c23a5a8069fd507c160bcb34e4d287b2\n"
    },
    {
      "commit": "afd31e08299008fdc5c2813f21b2573f29dc53df",
      "tree": "7f83dd8f1e7ed71d4fe8ce280841e43ce275ac6d",
      "parents": [
        "6e2d0c1d91f644ab50e0c0b7cae4306262a4ca41"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 03 13:16:03 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Dec 09 16:23:16 2013 +0000"
      },
      "message": "Reimplement ZipFileRO in terms of libziparchive.\n\nThis lets us share zip archive processing code with both\nthe runtime (Art, dalvik) and critical java code\n(StrictJarFile).\n\nThis change also moves several utility methods to ZipUtils\nand dedups code across several zip inflation methods.\n\nOne of the side effects of this change is that several\nprocessing loops are now O(n) instead of O(n^2).\n\nbug: 10193060\n\nChange-Id: I3c7188496837a47246c4f342e45485a70fef3169\n"
    },
    {
      "commit": "dbccd44a638ae8705a5b14bff8b2dd74abc26045",
      "tree": "14bfabaf3f3c7be86dfc064e919e00433a0cf2bb",
      "parents": [
        "ecfae4f899873f224e1aeed076dc8a41f8884487",
        "b873a17ce7be0a9771c24999adca6964431728f6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "message": "Merge commit \u0027b873a17ce7be0a9771c24999adca6964431728f6\u0027 into HEAD\n\nChange-Id: I938755073e70602cc8f51ce9bd420fdcf870cecd\n"
    },
    {
      "commit": "c8ea38fe18efb447a0f87aed60f511d14d2389fa",
      "tree": "299081efc8262c0960be6ae67ab236dc37365db1",
      "parents": [
        "f52450b1f174eac239ffac67774960d547e295c8",
        "e3705342671d08b5cd94a0d69ef8099a2c3211f8"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Nov 19 11:48:50 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 19 11:48:50 2013 -0800"
      },
      "message": "am e3705342: am b0183f0a: Harden against transiently unavailable backup transports\n\n* commit \u0027e3705342671d08b5cd94a0d69ef8099a2c3211f8\u0027:\n  Harden against transiently unavailable backup transports\n"
    },
    {
      "commit": "b0183f0ae311966cff0e10e8139c56f97288d1f2",
      "tree": "6bd0662fd8d6b0640b2da0c293882b47ff9480e6",
      "parents": [
        "c04aa87e4ac41b6c65dceb7b20d7a7f92c2efec1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Nov 18 14:20:36 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Nov 19 11:24:46 2013 -0800"
      },
      "message": "Harden against transiently unavailable backup transports\n\nThe init \u0026 clear operations are particularly important to ensure\ndelivery when at all possible, so we retry those periodically\nif the transport is unavailable when we first attempt them.\n\nNow with 100% less build break.\n\nBug 11716868\n\nChange-Id: I2af4e93788068cfac97c0a48d3568c561eefa23d\n"
    },
    {
      "commit": "a9249322d554fa13eb9c2662d39be256f833404f",
      "tree": "313faa1acf933a504d2a90e5152bfdcd7beb7f13",
      "parents": [
        "fa331b1dfbf3e071e2ff48dbe21727452bfb8042",
        "c7f7d1bf18dded61bcbf4015a4cfc9cf1ee45bd4"
      ],
      "author": {
        "name": "Sascha Prueter",
        "email": "saschap@google.com",
        "time": "Mon Nov 18 23:31:11 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 18 23:31:11 2013 -0800"
      },
      "message": "am c7f7d1bf: am f7044fec: Merge \"Trying to unbreak build...\" into klp-dev\n\n* commit \u0027c7f7d1bf18dded61bcbf4015a4cfc9cf1ee45bd4\u0027:\n  Trying to unbreak build...\n"
    },
    {
      "commit": "d5965cb506bde84612109bf26c3fcc6712ca91e5",
      "tree": "a679a23ee7ab71d8e14aac8edcc99cb08defc408",
      "parents": [
        "8f98252afea3fd0e68693635ec21b6004a52fa69"
      ],
      "author": {
        "name": "Sascha Prueter",
        "email": "saschap@google.com",
        "time": "Tue Nov 19 06:51:21 2013 +0000"
      },
      "committer": {
        "name": "Sascha Prueter",
        "email": "saschap@google.com",
        "time": "Tue Nov 19 06:51:21 2013 +0000"
      },
      "message": "Trying to unbreak build...\n\nRevert \"Harden against transiently unavailable backup transports\"\n\nThis reverts commit 8f98252afea3fd0e68693635ec21b6004a52fa69.\n\nChange-Id: I3aabb80f1a5932d530bce6b82d4b30c6cd1cdd5a\n"
    },
    {
      "commit": "fa331b1dfbf3e071e2ff48dbe21727452bfb8042",
      "tree": "b6ce04ec9b728796470ea82de2c83029a2fddb59",
      "parents": [
        "27927d5d55eb4bd9087bdeba7df1e98f280177bd",
        "1e964ed808798a56664853e2aeffdc47c676ac5a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Nov 18 18:48:29 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 18 18:48:29 2013 -0800"
      },
      "message": "am 1e964ed8: am d6bbc544: Merge \"Harden against transiently unavailable backup transports\" into klp-dev\n\n* commit \u00271e964ed808798a56664853e2aeffdc47c676ac5a\u0027:\n  Harden against transiently unavailable backup transports\n"
    },
    {
      "commit": "8f98252afea3fd0e68693635ec21b6004a52fa69",
      "tree": "ae1c473590c0a9d1c2022376f047f88151e3db7a",
      "parents": [
        "245408d29018fee4b1231e52f5da1edcc3283c4a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Nov 18 14:20:36 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Nov 18 16:12:38 2013 -0800"
      },
      "message": "Harden against transiently unavailable backup transports\n\nThe init \u0026 clear operations are particularly important to ensure\ndelivery when at all possible, so we retry those periodically\nif the transport is unavailable when we first attempt them.\n\nBug 11716868\n\nChange-Id: I4860fe3d4e99618b2cd194c83162bd7cbd5a83a9\n"
    },
    {
      "commit": "be20c89731b5172ccc353c0ae570adcafbf8ca94",
      "tree": "af88e095a9aeb6cbb0476babd942385db01e1170",
      "parents": [
        "8c5505565e4e0bb75039a148a58cf7fa4398f8ff",
        "601fbc7a82f325971905b6083e1c54776aa87a6d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Nov 14 11:08:19 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 14 11:08:19 2013 -0800"
      },
      "message": "am 601fbc7a: am 24fe066e: Merge \"Fix am argument ordering documentation.\" into klp-dev\n\n* commit \u0027601fbc7a82f325971905b6083e1c54776aa87a6d\u0027:\n  Fix am argument ordering documentation.\n"
    },
    {
      "commit": "7625c8404553fae274a1074388ca0458df32dce4",
      "tree": "89320646dd6a00eaf35bc57650e6f710001dd278",
      "parents": [
        "3b945405cf96eae8b882f87934222a453718a559"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Nov 14 10:03:32 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Nov 14 10:57:55 2013 -0800"
      },
      "message": "Fix am argument ordering documentation.\n\nBug: 11690520\nChange-Id: I84b10a6eb6e6404212ab9737e7cee1f1ad4d5309\n"
    },
    {
      "commit": "ed84dea928a5a830a19b5bcab7ad05a7e92f3279",
      "tree": "3433335ce3be3a69f12b957130e95b4d19f74e3f",
      "parents": [
        "2fcefe45718af44452b725b61f4051f507cb7e5d",
        "8f592378a1ea7f31d57253dc202f42707ef4da36"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:35:04 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 29 13:35:04 2013 -0700"
      },
      "message": "am 8f592378: am 69920427: Merge \"Fix a variety of small publicly-reported bugs.\"\n\n* commit \u00278f592378a1ea7f31d57253dc202f42707ef4da36\u0027:\n  Fix a variety of small publicly-reported bugs.\n"
    },
    {
      "commit": "c367d48c55e5a3fa0df14fd62889e4bb6b63cb01",
      "tree": "cc6a7e56e5c5e74d66603c8170660fd99c52bff3",
      "parents": [
        "b4cae4a955ebd91cf35aaeb00ab12ce6f1d5fc48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "message": "Fix a variety of small publicly-reported bugs.\n\nPossible NULL dereference in cmds/bootanimation/BootAnimation.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61556\n\nMissing fclose in core/jni/android_os_Debug.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61546\n\nBad loop guards in core/jni/android_util_Process.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61557\n\nAssignment to wrong variable in libs/androidfw/AssetManager.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61560\n\nMissing delete[]s in libs/androidfw/ObbFile.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61549\n\nLeaks on error in tools/aapt/Images.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61552\n\nTwo missing fclose calls in tools/aapt/Resource.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61553\n\nMissing fclose in tools/aidl/aidl.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61554\n\nChange-Id: I5820f3824e72d07a9acb776cf0af3e7443f5694a\n"
    },
    {
      "commit": "9633629b7916b5694ae1bd960b9c08610b47b7aa",
      "tree": "bc31673c75c20592a52afe75a0ed8ce1e413972a",
      "parents": [
        "4818db0fc5dec465a2cdb76c0faff4750a3a3fff",
        "65d577139c8093f2a601069bbe05d2e622e0d340"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Oct 07 10:10:08 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 07 10:10:08 2013 -0700"
      },
      "message": "am 65d57713: am bacb5422: Merge \"Also rely on enabled notification listeners for RemoteController registration\" into klp-dev\n\n* commit \u002765d577139c8093f2a601069bbe05d2e622e0d340\u0027:\n  Also rely on enabled notification listeners for RemoteController registration\n"
    },
    {
      "commit": "f108cdd9ee5efe354d87edd02a07b323298c116c",
      "tree": "02f05dca3512226d004ecccfc5f3c481a1d85154",
      "parents": [
        "a48ccdd6fb671435ed2583830b2828450bfc3cde"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 27 18:37:36 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Oct 04 17:50:44 2013 -0700"
      },
      "message": "Also rely on enabled notification listeners for RemoteController registration\n\nRegistration of a RemoteController may succeed only if:\n - the caller has the MEDIA_CONTENT_CONTROL permission,\n - or if the RemoteController.OnClientUpdateListener it\n   registers if one of the enabled notification listeners.\n\nFor using the \"enabled notification listener\" functionality,\n the CL involved:\n - making OnClientUpdateListener an interface so a 3rd-party\n   application may have its implementation extend\n   NotificationListenerService, which is required for a\n   listener to be enabled by the user.\n - add the concept of \"enabled\" status in an\n   IRemoteControlDisplay, so a RemoteController (which\n   encapsulates the IRemoteControlDisplay implementation)\n   may be registered, but later temporarily disabled by\n   the user, as a result of a user action in the security\n   settings, or a user switch.\n - making MediaFocusControl, the component tied to\n   AudioService, monitor changes in enabled notification\n   listeners, and act upon enable/disable changes.\n\nBug 8209392\n\nChange-Id: Ia8dfa2156c65668b2b0d4ae92048005912652d84\n"
    },
    {
      "commit": "b18e0d14334d5757b21e4f089706affe29822447",
      "tree": "e78863d3ca729075753fae42803ecf91a47542a4",
      "parents": [
        "2325fd5d1192553c7056eeec2e1e458886dd173f",
        "78466f3eb59e804f9a6e770dbc8d764faa91ccb8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Sep 18 16:04:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 18 16:04:24 2013 -0700"
      },
      "message": "am 78466f3e: am 69aa2f8a: Merge \"revert ADDR_COMPAT_LAYOUT workaround.\"\n\n* commit \u002778466f3eb59e804f9a6e770dbc8d764faa91ccb8\u0027:\n  revert ADDR_COMPAT_LAYOUT workaround.\n"
    },
    {
      "commit": "d53afd2b05f428fcce5695770c04d6cb6fba7aca",
      "tree": "343b43878bcad885afde9a87252e89f628a9c3e1",
      "parents": [
        "ac39c604d6df8631922c2295b3341cd561f172a5"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Sep 18 14:29:46 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Sep 18 14:29:46 2013 -0700"
      },
      "message": "revert ADDR_COMPAT_LAYOUT workaround.\n\nStop working around bad applications by setting ADDR_COMPAT_LAYOUT.\nADDR_COMPAT_LAYOUT is undesirable because it reduces the amount of\naddress space available to an application.\n\nThe Android emulator, in both 4.3 and 4.4, does not set\nADDR_COMPAT_LAYOUT. Anyone needing to test their application on a\nversion of Android without ADDR_COMPAT_LAYOUT can use the emulator\nand reproduce the failures.\n\nChange-Id: I8f753acc205798bd7f031026c7ece12d26de562c\n"
    },
    {
      "commit": "35f72be50b8a2d11bce591dcdac5dc3fa336dac0",
      "tree": "d6ababee2a2ac0c48a645e923c28e2d5d0842cbd",
      "parents": [
        "af672998af7fb0bba90f7d56504584a63ff189fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 10:57:39 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 16 14:05:34 2013 -0700"
      },
      "message": "Implement issue #10691359: Kill long-running processes\n\nWe now have the activity manager kill long-running processes\nduring idle maintanence.\n\nThis involved adding some more information to the activity manager\nabout the current memory state, so that it could know if it really\nshould bother killing anything.  While doing this, I also improved\nhow we determine when memory is getting low by better ignoring cases\nwhere processes are going away for other reasons (such as now idle\nmaintenance).  We now won\u0027t raise our memory state if either a process\nis going away because we wanted it gone for another reason or the\ntotal number of processes is not decreasing.\n\nThe idle maintanence killing also uses new per-process information\nabout whether the process has ever gone into the cached state since\nthe last idle maintenance, and the initial pss and current pss size\nover its run time.\n\nChange-Id: Iceaa7ffb2ad2015c33a64133a72a272b56dbad53\n"
    },
    {
      "commit": "c0046f216793a7bc0ea615333a200582b626e3ab",
      "tree": "be3cfc54b874a19e3884921ebfa38cb8b3e53965",
      "parents": [
        "96661c42d0643c129fed60678aa0b8f99d32b456"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Sep 04 15:39:51 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Sep 04 15:39:51 2013 -0700"
      },
      "message": "Add #! to \u0027am\u0027 shell script\n\nShell script needs to start with #! for exec().\n\nBug 10606037\n\nChange-Id: I594da6f0433e838dcf5b45b991188ceaa52d9bd1\n"
    },
    {
      "commit": "2132198d052ca68a6aa2433274f12203a71451df",
      "tree": "27d4417c33c161c41cfb09b0c24900a3507186ca",
      "parents": [
        "39c9c63295ad972a82076676a6cdaf34d9508f62"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Aug 22 15:01:15 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Aug 22 15:01:15 2013 -0700"
      },
      "message": "Fix check for default source in input command\n\nChange-Id: I30b062e78c7d4de59a5530999e6332ba3053f7c9\n"
    },
    {
      "commit": "5827cb5059ed0eec4c73adf1acbd7ee47b2c5c8f",
      "tree": "efcece724190c59e9123196c5b648d927701013f",
      "parents": [
        "3a6f25512c0a682b10961a5a7428e3393ffb0b75"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 26 14:58:06 2013 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Aug 01 12:52:21 2013 -0400"
      },
      "message": "Changes needed to support Skia at r10377.\n\nChange-Id: Id1e1c8c5938ee1a33c6fa3caabd2c28e89243eb4\n"
    },
    {
      "commit": "b251f3d0c619c37cc4e4b8d9f8b95eb377423190",
      "tree": "6d20a30329dde7d637fa75751c981a12c7f0f408",
      "parents": [
        "3f44fae1dd18aa3f57aed7cc5f1261d1713b0a89"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 14:49:41 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 14:58:00 2013 -0700"
      },
      "message": "get rid of HAL pixelformats 5551 and 4444\n\nChange-Id: I6a6c4c656d80280eb85f90f99f35721ffca285df\n"
    },
    {
      "commit": "6f7b58917104916ee6afd6f246c251c1d7a2102a",
      "tree": "e891b7ff6e9e0b591ecd8a9bbf0619dbf759d9cd",
      "parents": [
        "3de52c67e5fa0f2cc8ddfb4d0ab4f206274e0054"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 17:25:02 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 17:25:02 2013 -0700"
      },
      "message": "get rid of PIXEL_FORMAT_A_8\n\nChange-Id: Ia750811f08ddebdd5818da211fd03d61b75f8e97\n"
    },
    {
      "commit": "57a7f5954cf1f9cbe99c70133863049a4be2e983",
      "tree": "a657b5ca567729d7d2b94af792c6dc6540e522ed",
      "parents": [
        "5cf6663c80a9b6039cc70cc9b4041af64f671571"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 22 18:21:32 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 23 11:51:22 2013 -0700"
      },
      "message": "Add \"adb shell am restart\" command.\n\nSo you can restart the system without being root.\n\nChange-Id: I89770f497833ecbe2b69e3a0cfafae7ef472a9f5\n"
    },
    {
      "commit": "77a2dabf01039da8dfe0bf43d41b223d79a8c9d2",
      "tree": "f40e160b0b2e305e6c14fcb33993b633a018eb61",
      "parents": [
        "d55e18eceac46160440054c6725b3461a1ccc1dd"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Jul 22 13:58:45 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Jul 22 13:58:45 2013 -0700"
      },
      "message": "Fix swipe end location\n\nChange-Id: I997ca30dc5399b36e13516c4aeadbdf6fa357df7\n"
    },
    {
      "commit": "5712ca7f2e6ac0c7914875a580380fb363e86566",
      "tree": "9390575a9eccd35c6b1cb04efe2d3eac41e3c70a",
      "parents": [
        "a5bc070e9e7c802b32f0230c670838536a1612f4",
        "9d83b4783c33f1fafc43f367503e129e5a5047fa"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Jul 19 22:44:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 19 22:44:01 2013 +0000"
      },
      "message": "Merge \"Allow duration without source to be set for input commands\""
    },
    {
      "commit": "9d83b4783c33f1fafc43f367503e129e5a5047fa",
      "tree": "54cdb3d9f8528ad6e10329adb2c1d3c4d3ee8e2a",
      "parents": [
        "8f5e3d13e166e4873e130a5ef7c987333dbac917"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jun 20 21:14:58 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Jul 17 16:04:03 2013 -0700"
      },
      "message": "Allow duration without source to be set for input commands\n\nChange-Id: Ib04badeddf0e9d6ff1b275da34ad259f59c1cbbd\n"
    },
    {
      "commit": "ef691179799c11eceea0f118f79a32c47ca9ae96",
      "tree": "7461b46fcfaa60c0511bcf1cab267a8e72043596",
      "parents": [
        "6c1c0b6cbecf0cd0486a9a781da5e6f9bd2c0eaa"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 15 13:22:04 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 15 15:08:39 2013 -0700"
      },
      "message": "Remove dead code in system server initialization.\n\nSystem server always forks from Zygote so we no longer need\nthe system_server executable which was probably broken anyhow.\nThis makes the initialization sequence slightly more intelligible.\n\nLikewise, we don\u0027t need the GrimReaper anymore because init\nwill automatically take care of restarting the system when the\nservice manager dies.\n\nChange-Id: I02c88d9392f7c8133d9cde9d0d978da89ed80452\n"
    },
    {
      "commit": "f2ca6e271758e6f2b476ca909821e63e30c1c09b",
      "tree": "bb769f9afc10e6c82475646307d6ecf6d170c358",
      "parents": [
        "4a9095007ddf2ec763ad7133e9ac8c62c3f53a4e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jul 11 09:30:26 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jul 11 09:32:30 2013 -0700"
      },
      "message": "Add stopservice command to am\n\nChange-Id: I639ad418750c0e1825b330b3bd56e5628926e7f1\n"
    },
    {
      "commit": "5fa9f2b127c2d7c40da419540f3425ac45a89439",
      "tree": "bd89a1499b9b080938ce48420ceea7efdfefc4ab",
      "parents": [
        "57b867f3f568b026833c6208afdeff2168838ffd",
        "655d0e2029e6ae77a47e922dce4c4989818b8dd1"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 26 23:04:32 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 26 23:04:32 2013 +0000"
      },
      "message": "Merge \"Single-user restrictions\""
    },
    {
      "commit": "655d0e2029e6ae77a47e922dce4c4989818b8dd1",
      "tree": "67a9e2261c5e61f5a1b8f7f4f8cfcca5b433046c",
      "parents": [
        "bf991a8f426921c26e21e54e493781e1d5eb39ff"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 12 14:19:10 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jun 25 16:03:55 2013 -0700"
      },
      "message": "Single-user restrictions\n\nIntroduces a new \"blocked\" state for each package. This is used to temporarily\ndisable an app via Settings-\u003eRestrictions.\n\nPIN creation and challenge activities for use by Settings and other apps. PIN\nis stored by the User Manager and it manages the interval for retry attempts\nacross reboots.\n\nChange-Id: I4915329d1f72399bbcaf93a9ca9c0d2e69d098dd\n"
    },
    {
      "commit": "4d7dc1a2b1c70ba1837b22e01c5f468d1ad0adc2",
      "tree": "6f4018a7f321a828acaefffe7738bdc1340b8a5c",
      "parents": [
        "95e6aea3676b6b6a851ffc2ec7cd9fbc87b4fae7"
      ],
      "author": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Tue Jun 25 14:37:02 2013 -0700"
      },
      "committer": {
        "name": "Evan Charlton",
        "email": "evanc@google.com",
        "time": "Tue Jun 25 14:49:08 2013 -0700"
      },
      "message": "Fix a typo\n\ns/will/while/ for the --no-window-animation explanation.\n\nChange-Id: Ia068809d385cc4f54f9603a8713a581fd4f59440\n"
    },
    {
      "commit": "fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759",
      "tree": "dedf586add0c31549fc74e4caed43da92f784628",
      "parents": [
        "d213beae7539d8feb7cf1ba8f25f9769f5890e0b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 17 16:15:42 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jun 17 18:34:28 2013 -0700"
      },
      "message": "Add new API getStackBoxInfo\n\nChange-Id: Ie2861e5e31bb3876cfe2d5c3d04ff58bb3955634\n"
    },
    {
      "commit": "cbfd23ee6f14445c3e17c5169abbc80c216fa137",
      "tree": "9e5063fe418c4df345b371a0678faa4a1fcb0c48",
      "parents": [
        "be4e6aaa0252dd7da28b7aa85beba982538efa46"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 11 14:26:53 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 11 14:26:53 2013 -0700"
      },
      "message": "Add new API to retrieve a dumpsys of a single package.\n\nAdds a platform API, and pm command.  Fixes some issues with\ndumping per-package data in package manager, makes battery\nstats able to dump per-package state.\n\nChange-Id: I76ee6d059f0ba17f7a7061886792b1b716d46d2d\n"
    },
    {
      "commit": "5a449154d1795abe8e44b7bfe821d640b145e2c6",
      "tree": "e8a9936e1e39aa01b8d217ff36eab0e9e57715f6",
      "parents": [
        "5ff12101722874f5e7b0cadf06f4c53f4ec4b917"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri May 24 15:49:29 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri May 24 16:12:57 2013 -0700"
      },
      "message": "Convert API refs to StackBox from ActivityStack.\n\n- Removed IActivityManager.getStacks() since getStackBoxes() is better.\n- Made createStacks operate relative to StackBox instead of TaskStack.\n- Made resizeStack into resizeStackBox.\n\nChange-Id: I7a0e1f4e34f399b4fd1180c60cc3989f9c2433f3\n"
    },
    {
      "commit": "5ff12101722874f5e7b0cadf06f4c53f4ec4b917",
      "tree": "ad1a1d7af2e94046c486e3cca357a5be6ad3bf4f",
      "parents": [
        "6d90fed076fad7874e04833110bb1d63cdbc7eac"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri May 24 12:50:15 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri May 24 12:50:15 2013 -0700"
      },
      "message": "Add retrieval of StackBox info for more flexibility\n\nFirst step in permitting StackBoxes to be manipulated by user.\nNecessary for Configuration changes coming down.\n\nChange-Id: I4029926a35e4fdc59a5759fd9e4bae10bb308413\n"
    },
    {
      "commit": "1602ec21883f73c5eb2304cf69d2278f70b145ab",
      "tree": "c7a4728753d07f41ac00905d77965d566587cf78",
      "parents": [
        "a5ca95a889236e72f08033bab426c8acee35ce90"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun May 12 10:24:27 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon May 13 14:39:39 2013 -0700"
      },
      "message": "Log stack issues and start resize effort.\n\n- Modify Am.java to accept \u0027stack resize\u0027 command.\n\n- Add logging for assigning home stack to non-home task to track down\nbug. And maybe fix bug.\n\n- Add template parameter to ArrayList.\n\nChange-Id: Ia73182afc20e9e4430ddadebae034cecb3798eec\n"
    },
    {
      "commit": "befa8b5553046bf46ae59b5d7f9980f513db5d0c",
      "tree": "7deab380c9fd19d50cf300714a09410f5603f3b8",
      "parents": [
        "c5356f6dec3e284b75ba0746d3ec3f3c4a1eff2e"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun May 12 23:10:39 2013 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun May 12 23:10:39 2013 -0700"
      },
      "message": "Revert \"Log stack issues and start resize effort.\"\n\nBug: 8935057\n\nThis reverts commit b0245edae86b5811ea743c0f4cea095488304b1a.\n"
    },
    {
      "commit": "b0245edae86b5811ea743c0f4cea095488304b1a",
      "tree": "4ef50af623f742e93013cff244b1e3512a2ba352",
      "parents": [
        "5457e61f64e625be35f997ee3865ef61a2133468"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun May 12 10:24:27 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sun May 12 10:27:38 2013 -0700"
      },
      "message": "Log stack issues and start resize effort.\n\n- Modify Am.java to accept \u0027stack resize\u0027 command.\n\n- Add logging for assigning home stack to non-home task to track down\nbug. And maybe fix bug.\n\n- Add template parameter to ArrayList.\n\nChange-Id: If904c3ead623464ff5863b7241c68c1b7573bcf4\n"
    },
    {
      "commit": "1519882f524579a30e9569c7f0def32193b45591",
      "tree": "1f6d259c0f4036a29bcbeeb9e531bae076e85ac9",
      "parents": [
        "2d4edcf2e1ef94ef83e02ec2ad075b3603282812",
        "4bdc882800d4bab85ca2a99ee4369e62c6fd01cc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 09 23:58:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 09 23:58:42 2013 +0000"
      },
      "message": "Merge \"surfaceflinger is now always running in its own process\""
    },
    {
      "commit": "b14e42f1211940baa76b15589bfa696611fea87f",
      "tree": "af6f98e6617f1227dcdaacea72d5f0bd82d6a19e",
      "parents": [
        "203a91a6cae0e3272e9b3becefc862d2c8a72e10",
        "efa92b2182ab581873aa8e75d596e2e363bd5e6d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 09 22:30:30 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 09 22:30:30 2013 +0000"
      },
      "message": "Merge \"Cleanup some of the thread merging.\""
    },
    {
      "commit": "4bdc882800d4bab85ca2a99ee4369e62c6fd01cc",
      "tree": "02571bd1ac8963fbc84d6ceae7d2fd4767fe589f",
      "parents": [
        "203a91a6cae0e3272e9b3becefc862d2c8a72e10"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 09 14:48:17 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 09 14:57:05 2013 -0700"
      },
      "message": "surfaceflinger is now always running in its own process\n\nChange-Id: I4e04e1aa181b3ebe661354edd0b8dbbfd7a623a6\n"
    },
    {
      "commit": "1f5762e646bed2290934280464832782766ee68e",
      "tree": "123bcdf3ba4c98f885631b02bb90803b7885e438",
      "parents": [
        "9f3e1175657425115e863fdb256b83cadedc33e9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 06 20:20:34 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 07 17:09:46 2013 -0700"
      },
      "message": "libutils clean-up\n\nChange-Id: I11ee943da23a66828455a9770fc3c5ceb4bbcaa9\n"
    },
    {
      "commit": "efa92b2182ab581873aa8e75d596e2e363bd5e6d",
      "tree": "0fe7d35d9678db9416c61cdcc84defd59253c384",
      "parents": [
        "9f3e1175657425115e863fdb256b83cadedc33e9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 03 14:11:43 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 07 15:33:26 2013 -0700"
      },
      "message": "Cleanup some of the thread merging.\n\nAdds an optimization for checking whether a looper is stuck,\nwith a new Looper method to see if its thread is currently\nidle.  This will allow us to put a large number of loopers\nin the monitor efficiently, since we generally won\u0027t have to\ndo a context switch on each of them (since most looper threads\nspend most of their time idle waiting for work).\n\nAlso change things so the system process\u0027s main thread\nis actually running on the main thread.  Because Jeff\nasked for this, and who am I to argue? :)\n\nChange-Id: I12999e6f9c4b056c22dd652cb78c2453c391061f\n"
    },
    {
      "commit": "1d69bad411123913d32342864454b09ae39dab2c",
      "tree": "1ed91eb3bc121b8509ea65b4404ebc565223d880",
      "parents": [
        "1d41cae973579c07e1594d0496a1847cd644b8c0",
        "a98b0ff812fb204eaa93e4cda848b054d70bbff0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 07 10:14:28 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 07 10:14:46 2013 -0700"
      },
      "message": "resolved conflicts for merge of a98b0ff8 to master\n\nChange-Id: I1f4a952d360c48426e22a7772726b6867cc19771\n"
    },
    {
      "commit": "add582122dcec5aeb20d9e8f8c49348e00a5fe76",
      "tree": "eab3b5e88db580b7865d277abd45e27b77a2d15e",
      "parents": [
        "cfba6a07fd24559bfb6bb51007520b8ca3cd5c48",
        "485d7a31a8a07c825281cbae789ca0d04f3949d7"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 07 09:47:34 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue May 07 09:51:31 2013 -0700"
      },
      "message": "resolved conflicts for merge of 485d7a31 to master\n\nChange-Id: I058e19af8732df44457bdc614ee810a642dc25e4\n"
    },
    {
      "commit": "a98b0ff812fb204eaa93e4cda848b054d70bbff0",
      "tree": "7e18358abeb46e02938d599babc172d8c1a9ab0a",
      "parents": [
        "1bc3e39ab48936bf82b8c11688ba0939e0866a44",
        "d43a71dad80dfca65b0758f4333360516f6ad300"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 06 16:48:16 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 06 16:48:16 2013 -0700"
      },
      "message": "am d43a71da: Merge \"Help for the debugging help for issue #8734824.\" into jb-mr2-dev\n\n* commit \u0027d43a71dad80dfca65b0758f4333360516f6ad300\u0027:\n  Help for the debugging help for issue #8734824.\n"
    },
    {
      "commit": "8bd64df2adb26fe9547ae3961a58631e241b613e",
      "tree": "060a9ddad01b6dfd4f24abdd323a9b0873b32982",
      "parents": [
        "5b88a2fd7b77880f6e09ae4a1de509bebe28bc3a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 06 16:07:26 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 06 16:07:26 2013 -0700"
      },
      "message": "Help for the debugging help for issue #8734824.\n\nAdd a new \"hang\" am command that lets you hang the system\nprocess.  Useful for testing.\n\nChange-Id: Ice0fc52b49d80e5189f016108b03f9fd549b58a7\n"
    },
    {
      "commit": "485d7a31a8a07c825281cbae789ca0d04f3949d7",
      "tree": "b121ac3a4a1f425e35cdc99df57f686d628eb4a5",
      "parents": [
        "966b340e7d18b78c74a07379bbd08a426e84d8ce",
        "5b88a2fd7b77880f6e09ae4a1de509bebe28bc3a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 06 13:47:04 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 06 13:47:04 2013 -0700"
      },
      "message": "am 5b88a2fd: Debugging help for issue #8734824: WATCHDOG KILLING SYSTEM PROCESS\n\n* commit \u00275b88a2fd7b77880f6e09ae4a1de509bebe28bc3a\u0027:\n  Debugging help for issue #8734824: WATCHDOG KILLING SYSTEM PROCESS\n"
    },
    {
      "commit": "5b88a2fd7b77880f6e09ae4a1de509bebe28bc3a",
      "tree": "19cb92ba626d8b207cfba3ae2b57d623c209a093",
      "parents": [
        "996f6b048ba03ca727c40e1bc33100bf45c93518"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 03 16:25:11 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 06 11:16:18 2013 -0700"
      },
      "message": "Debugging help for issue #8734824: WATCHDOG KILLING SYSTEM PROCESS\n\nIActivityController has a new callback which the Watchdog calls\nwhen it detects that the system process is hung.  This may be\nuse full monkey.  All hail the monkey!\n\nAlso add a new private feature to Binder to be able to turn off\nall incoming dump() calls to a process.  The watchdog uses this\nwhen it reports it is hung, so that if someone, say, wants to\ncollect a bug report at this point they won\u0027t get stuck waiting\nfor things that are all busted.\n\nChange-Id: Ib514d97451cf3b93f29e194c1954e29f948c13b1\n"
    },
    {
      "commit": "09ab7ef9f76d7e1a614ee8a8be915d06894f8d37",
      "tree": "2e2aed0fdeda463536d305955d3a9c918b14e0cc",
      "parents": [
        "fd0b0072db6d89c85a5ea20383a1c3dc289d1d38",
        "b3f6687756ffb660f834ef673bed04b2d4a26d21"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Apr 29 22:50:43 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Apr 29 22:50:43 2013 -0700"
      },
      "message": "resolved conflicts for merge of b3f66877 to jb-mr2-dev-plus-aosp\n\nChange-Id: I4e3c1e1c5613284c60afc9ce6639624abe08df0d\n"
    },
    {
      "commit": "11744d15364b16a976413599933ed1b1d59e4a6f",
      "tree": "ecbb01b787716613b3560e5085e7f00113d15ad4",
      "parents": [
        "f1301d86fb7f414330b08dd9514436e65ba69ceb"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 29 15:22:10 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 29 15:31:10 2013 -0700"
      },
      "message": "Add longpress support to keyevent.\n\nChange-Id: I578cb7dd910425ce07fbe56412a4dc2e0c379e65\n"
    },
    {
      "commit": "f1301d86fb7f414330b08dd9514436e65ba69ceb",
      "tree": "b0a1944d373ec02db2c33e45008da173138fb8a5",
      "parents": [
        "b98212925e41e9420ce6fefc3fe204b29c8f7a83",
        "b3f6687756ffb660f834ef673bed04b2d4a26d21"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 29 15:29:13 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 29 15:29:13 2013 -0700"
      },
      "message": "Merge commit \u0027b3f66877\u0027 into afdmerge\n\nChange-Id: I319863cf23b2e6eacfa4508f7b111fba7b1cbc24\n"
    },
    {
      "commit": "2ac9d8d0f0ea65aae6ba43490b5be6617ad97125",
      "tree": "ee0f4a0b48a193a4e9d26ede2a0297a53f90cfc6",
      "parents": [
        "bd1730dec7356e042ee885ff4a63b40f36733062"
      ],
      "author": {
        "name": "Diego Torres Milano",
        "email": "dtmilano@gmail.com",
        "time": "Thu Apr 04 13:44:34 2013 -0400"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 29 22:05:24 2013 +0000"
      },
      "message": "input: added support for multiple keyevents\n\n- Multiple keyevents can now be send from the command line:\n\n    input keyevent \u003ckey code number or name\u003e ...\n\n  Sometimes invoking \u0027input\u0027 repeatedly does not send the events fast\n  enough, this change solves the problem by allowing multiple key code\n  number or names be added to the command line.\n\nChange-Id: I0d0f34bddd99e0195c9badff2f8b3e2aa9a51737\n"
    },
    {
      "commit": "68a032936e5922ddda271c751400b64712f8f03b",
      "tree": "2bda3f644de040b8774a89910dedd7b407be6ca0",
      "parents": [
        "027f84c310158edfc94d94ab0ef0480843d49d3b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 23 15:30:45 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Apr 25 14:09:21 2013 -0700"
      },
      "message": "Don\u0027t set ADDR_COMPAT_LAYOUT on the emulator\n\nDon\u0027t work around third party app bugs on the emulator.\n\n(cherry picked from commit fc17dc2548234461eb43ff83539ede4c9893a825)\n\nChange-Id: I35246c447de65ad4649b9aa3eb67194234fd6378\n"
    },
    {
      "commit": "02fdc8f30a5cd935fd9fbf9de67a5063118cca13",
      "tree": "61949b8eb4059529a1af5e9de764d2089dc8e5a8",
      "parents": [
        "72fa6b2ffdac45dc0ad9ff9f50c37f6f4ea5a50b",
        "fc8bd4d3f4deece8beee7ce3f7888078dd37c60d"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 23 17:08:31 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 23 17:08:31 2013 -0700"
      },
      "message": "am fc8bd4d3: am 35587a0c: Merge \"Don\\\u0027t set ADDR_COMPAT_LAYOUT on the emulator\"\n\n* commit \u0027fc8bd4d3f4deece8beee7ce3f7888078dd37c60d\u0027:\n  Don\u0027t set ADDR_COMPAT_LAYOUT on the emulator\n"
    },
    {
      "commit": "fc8bd4d3f4deece8beee7ce3f7888078dd37c60d",
      "tree": "e45c438d4a34e40694d2f6e859adf50ce844615d",
      "parents": [
        "2ea5aebe59b72c034b32c132c35a5c75a7a2bf56",
        "35587a0c47c33a8eed7817dc705dbf502f7b5b60"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 23 17:06:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 23 17:06:58 2013 -0700"
      },
      "message": "am 35587a0c: Merge \"Don\\\u0027t set ADDR_COMPAT_LAYOUT on the emulator\"\n\n* commit \u002735587a0c47c33a8eed7817dc705dbf502f7b5b60\u0027:\n  Don\u0027t set ADDR_COMPAT_LAYOUT on the emulator\n"
    },
    {
      "commit": "fc17dc2548234461eb43ff83539ede4c9893a825",
      "tree": "8f8bbf8c1ab2defe9926b461fa9090222ced4275",
      "parents": [
        "be4536d214eedc3d12b50f0f30b47bba773b8dbc"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 23 15:30:45 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 23 15:40:03 2013 -0700"
      },
      "message": "Don\u0027t set ADDR_COMPAT_LAYOUT on the emulator\n\nDon\u0027t work around third party app bugs on the emulator.\n\nChange-Id: I4440fcd56b72e3a74881ddec2a469f037a060525\n"
    },
    {
      "commit": "bbcc289dad8c69f99ac2b23e09fc5036f7487fa0",
      "tree": "98cd414481356ebd69af29482190b79ddf550a6c",
      "parents": [
        "53078b25c91660e30849861e88da1a33998c554f",
        "4cd0c13f8f765118a24e31548c058b5029481bea"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 17 01:58:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 01:58:51 2013 +0000"
      },
      "message": "Merge \"Incremental repairs to side by side stacks.\""
    },
    {
      "commit": "53078b25c91660e30849861e88da1a33998c554f",
      "tree": "7a953bff348848c49c1582ecb2c961fa9fe01537",
      "parents": [
        "e76dd37bdb75e7ed757e1284249c64f0c58e869d",
        "967212cb542e6eeb308678367b53381bff984c31"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Apr 17 01:58:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 01:58:15 2013 +0000"
      },
      "message": "Merge \"Implement stack splitting and task movement.\""
    },
    {
      "commit": "4cd0c13f8f765118a24e31548c058b5029481bea",
      "tree": "8892450b25dde3a958b33ce3eacb0ac468d80fbd",
      "parents": [
        "967212cb542e6eeb308678367b53381bff984c31"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 16 15:55:52 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Apr 16 18:55:07 2013 -0700"
      },
      "message": "Incremental repairs to side by side stacks.\n\n- Add taskId parameter to createStack() so stacks are pre-populated\nwith a task.\n- Keep track of stack access order in DisplayContent so getTasks\nreturns in MRU order.\n- Set touchableRegion in InputMonitor so modal touching does not\nextend beyond stack boundary.\n- Fix stack merging so that deleting a stack results in a new\nstack the size of the two children.\n\nChange-Id: I62a6ba0a34f34dd7ec866b440bf04595379e19e8\n"
    },
    {
      "commit": "a720a87fded1704d1a7490956bc5ec682b67a4fb",
      "tree": "3241d94b66d95366497cc2cb745a81ce2534129a",
      "parents": [
        "92dc45078221cc98f0a2c0cb3f4c5a634499782d",
        "a0b28ca74806dcf46300d82ebb689b002bd36955"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Apr 16 17:01:12 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 16 17:01:12 2013 -0700"
      },
      "message": "am a0b28ca7: am 95a869f9: Merge \"Disable tracing from Zygote\" into jb-mr2-dev\n\n* commit \u0027a0b28ca74806dcf46300d82ebb689b002bd36955\u0027:\n  Disable tracing from Zygote\n"
    },
    {
      "commit": "6ad0452e6301c0650f58f3991f7c523f6f279ddb",
      "tree": "0f116a6253e62bd96a4deb02c137461516cf6266",
      "parents": [
        "d12a7645a3bf3ffa83b8041bf343f1dc12a2381f"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Apr 15 18:53:24 2013 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 22:15:21 2013 +0000"
      },
      "message": "Disable tracing from Zygote\n\nThis change disables all atrace tracing in Zygote immediately after it is\ninitialized.  This is necessary because Zygote has no way to receive\nnotifications that the enabled trace tags have been changed.  Tracing is\nre-enabled when other processes fork from Zygote.\n\nChange-Id: If2983858fb0c4890ba9ab041849b1c4d98f66c13\n"
    },
    {
      "commit": "967212cb542e6eeb308678367b53381bff984c31",
      "tree": "3c9be07cad60efb54a09864703058d24dc420187",
      "parents": [
        "edf10b18c5b86bc7e68b79d1bf47ae58e5d3aed3"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Sat Apr 13 21:10:58 2013 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Apr 15 13:46:47 2013 -0700"
      },
      "message": "Implement stack splitting and task movement.\n\nSplit stacks and move tasks between them. Layout the windows\naccording to the new stack split.\n\nAfter layout content rectangles are known split the available area\nbetween all stack boxes. Then use those values for future layout.\n\nProvide stack contents to ActivityManager.\n\nChange-Id: I9746e6185445633810d506be514d0b7b540a7f99\n"
    },
    {
      "commit": "1467991f8c6ba71cd36553029b70d72c1d45ee88",
      "tree": "46a4d534f0536b4f141157897585fb9c6a2cde48",
      "parents": [
        "82c0edaad3ff9da2e28cd17520168e603fe394d5",
        "38bfe9eca0134dd5f66dafeeb6fa10558f9f4394"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 10 03:26:36 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 10 03:26:36 2013 -0700"
      },
      "message": "am 38bfe9ec: am a9574e33: Add touchnavigation to input debugging command.\n\n* commit \u002738bfe9eca0134dd5f66dafeeb6fa10558f9f4394\u0027:\n  Add touchnavigation to input debugging command.\n"
    },
    {
      "commit": "a9574e3361e168671d627071e26280f69d0d081b",
      "tree": "56e635986299e79064435bea52be6c102e08ae5d",
      "parents": [
        "678a1252b4f3cdc18d20b411c05a4320d1d9b719"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 09 20:13:12 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 10 03:01:37 2013 -0700"
      },
      "message": "Add touchnavigation to input debugging command.\n\nBug: 8583760\nChange-Id: I9b150133e3d9ca9fe970550f5c0d7c18e6c7b558\n"
    },
    {
      "commit": "28af35e8cdc601c7ab9c7287d9e72fdc331e8a9d",
      "tree": "2eda89e8e3e1c72cf73920a4eaaddcda7ade3a30",
      "parents": [
        "171af247589f63fffee37a0e81a975afb62279a2",
        "a976bddd9cfff0be5703484009ea875dee5d2456"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 23:21:42 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 23:21:42 2013 -0700"
      },
      "message": "resolved conflicts for merge of a976bddd to master\n\nChange-Id: I64e1cbfb0eee891ce4d1eee40eefdcedcc501f7f\n"
    },
    {
      "commit": "d685894212e6dbeac1fda4996903c1da115d49a6",
      "tree": "c52d05c78811e79a869afbcdbe55a906e38f2fa1",
      "parents": [
        "9fa49cc3308f6af593d780581121afc3c1d7e046"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: I746aa8258866508c3a725d0773faf4518096548f\n"
    },
    {
      "commit": "e6bec854d5730426a5338b873490d8963da88471",
      "tree": "161d7cb4f77e0b642809a80626430a1f07258468",
      "parents": [
        "9babf58c305c261b0300cd27c560daf9ff279829",
        "3793b92816d940b265468e9f2f071fbf35db534d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 08 13:24:28 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 08 13:24:28 2013 -0700"
      },
      "message": "am 3793b928: am bc948101: Merge \"Have audio service clean up new receivers in crashing processes.\" into jb-mr2-dev\n\n* commit \u00273793b92816d940b265468e9f2f071fbf35db534d\u0027:\n  Have audio service clean up new receivers in crashing processes.\n"
    },
    {
      "commit": "79f7ec70ebd5758ce54fd5b6fcd60fd27457cba6",
      "tree": "6bc7542adfb792659a153a5000fb94a3ed6abb6a",
      "parents": [
        "bab9687e6473072d6ff4f7ea5a7b21bcfbf95744"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 04 18:50:23 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 08 13:08:37 2013 -0700"
      },
      "message": "Have audio service clean up new receivers in crashing processes.\n\nThe new media button receiver with only a pending intent (no\ncomponent name) could be left hanging if the process that\nregistered it went away.  These semantically need to be tied\nto the calling process\u0027s lifetime; we now clean them up when\nthe calling process goes away.\n\nAlso added some additional cleanup of media button receivers\nwhen packages change (updated, cleared).\n\nAnd on top of that, a new \"media\" command for doing media\nthings.  Currently lets you send media keys and monitor\nremote display data.\n\nOh and finally added a new BaseCommand base class for\nimplementing these command line utilities.\n\nChange-Id: Iba1d56f10bab1eec4a94a7bb1d1c2ae614c8bcf5\n"
    },
    {
      "commit": "faa262cb1041d53834475522d5c8e6671584ce36",
      "tree": "3c32f85fa067286e3dcd242b2b8676fcb500cde3",
      "parents": [
        "6e2d7406f6f5c98f3a64ba2e7855ffac662cc2d5",
        "960650c6e3504c85f9e22210621f0317880f723b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 27 17:51:11 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 27 17:51:11 2013 -0700"
      },
      "message": "am 960650c6: am 7ba6470f: am 4224a4ca: am 3864aa39: Merge \"Add interrupter library to simulate EINTR\"\n\n* commit \u0027960650c6e3504c85f9e22210621f0317880f723b\u0027:\n  Add interrupter library to simulate EINTR\n"
    },
    {
      "commit": "7ba6470f4a734f4dc7255d484566ca84b269b0ae",
      "tree": "5ad4c520ade7f91bf164cb7b9fd25c51d7b6a0de",
      "parents": [
        "a6470d45148beaed765b88068bc76ad652ef33de",
        "4224a4ca85a4e7ba3f4e543ee52c643405464164"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 27 17:45:21 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 27 17:45:21 2013 -0700"
      },
      "message": "am 4224a4ca: am 3864aa39: Merge \"Add interrupter library to simulate EINTR\"\n\n* commit \u00274224a4ca85a4e7ba3f4e543ee52c643405464164\u0027:\n  Add interrupter library to simulate EINTR\n"
    },
    {
      "commit": "3864aa3944254184ddcd61002cb9f1d7cb1d4c67",
      "tree": "4b4c75950c78881a2b3b82208207e21ab5a83d93",
      "parents": [
        "6b96e2f0006b5c33973b3500d3bb72a8c7a3bd38",
        "0054cbd4dbb9315419cc3c3b2aa1754a02fff1f4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 28 00:16:30 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 28 00:16:31 2013 +0000"
      },
      "message": "Merge \"Add interrupter library to simulate EINTR\""
    },
    {
      "commit": "d734b4f285dff25ed5fed63349d259ff15a07d60",
      "tree": "446923f18c1bcd2f620756332f9af466cd40d99b",
      "parents": [
        "97207ab9669ebb9c166c5d8aa2cd354f2081dbe3",
        "6b8e7b35ef763d29a30c87a5a95ef941d39a8ee9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 27 16:40:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 27 16:40:49 2013 -0700"
      },
      "message": "am 6b8e7b35: am bf20aa76: Merge \"Keep track of who has disabled applications.\" into jb-mr2-dev\n\n* commit \u00276b8e7b35ef763d29a30c87a5a95ef941d39a8ee9\u0027:\n  Keep track of who has disabled applications.\n"
    },
    {
      "commit": "3fa3c28a356108a6558b6b54a0b10e1a5cc4f1b6",
      "tree": "61426df0943f36d09ce0916e8c5f7647b2808db5",
      "parents": [
        "b404ecc91a5dd3dd027554490b2ca18c1048bdba"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 26 16:15:41 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 27 12:01:52 2013 -0700"
      },
      "message": "Keep track of who has disabled applications.\n\nChange-Id: I2640d3dc2200b589e2beb42a43cc93efd090f06e\n"
    }
  ],
  "next": "5ab6d905782562995f1755f03c3716887fba53b8"
}
