)]}'
{
  "log": [
    {
      "commit": "7a09b8322cab26d6e3da1362d3c74964ae66b5d4",
      "tree": "268e2334d28f33d87c2b4d8492b9e9726094e603",
      "parents": [
        "90b030bae8cc1f13da7948fef4aff1d171a2885a"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Aug 10 18:55:34 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Aug 10 20:39:13 2015 +0200"
      },
      "message": "Allow debugging only for apps forked from zygote\n\nWhen starting the runtime from app_process, we only pass JDWP options\nif starting zygote. It prevents from opening a JDWP connection in\nnon-zygote programs while Android apps (forked from zygote) remain\ndebuggable.\n\nBug: 23050463\nChange-Id: If8ea719063a65db4cdeed69a838b52e87b078b08\n"
    },
    {
      "commit": "51938c205f41da95486b17ea645fd0ce2a73be82",
      "tree": "80b23ecf19607c803605a5f9fa173e11a9a9a744",
      "parents": [
        "3540c462d95a0720e2931c30e1fe9820d0d63c51",
        "9ee5e7e17f7d65620f21d1a42865981e7bc56593"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Sep 19 02:00:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 19 02:00:26 2014 +0000"
      },
      "message": "Merge \"USB string descriptors are not UTF8, so it is not safe to treat them as such.\" into lmp-dev"
    },
    {
      "commit": "00c0cd4a24bd0f040055f9e786e2df1fa3b7d2d3",
      "tree": "87654f391f5e9dca11fd5e84901545890d3d5b16",
      "parents": [
        "98ff7bce66f03da14e39fa7e532a7202bde7dce6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 10 16:48:46 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Sep 11 14:19:52 2014 -0700"
      },
      "message": "Clean entire arg block when setting process name.\n\nWhen Android processes fork from Zygote, we rewrite the command line\nwith a new name, eg. \"system_server\".  When we do this, we should\nfill the entire block with zeros to remove corrupted argument\ninformation that may otherwise remain in the /proc/\u003cpid\u003e/cmdline buffer\nand be seen in tools and stack dumps.\n\nFixed an issue where VM options could be overwritten after setting\nthe nice name if the name was too long.\n\nBug: 17474152\nChange-Id: Ie6cf9ed7752a04300a340e26cd6812bb35c59e1b\n"
    },
    {
      "commit": "9ee5e7e17f7d65620f21d1a42865981e7bc56593",
      "tree": "9e65103e7fc4429505ba2cd8c4a2ce84bddd39cb",
      "parents": [
        "3afd6e3fc612e12ad55de53747641f63f457bb42"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Sep 08 16:15:21 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Sep 08 17:05:44 2014 -0700"
      },
      "message": "USB string descriptors are not UTF8, so it is not safe to treat them as such.\n\nAdd AndroidRuntime::NewStringLatin1() to convert non-UTF8 strings to Java strings.\n\nBug: 17427781\nChange-Id: I7df1d4e94a7beebc8b1a74c0c0a163b794025ae8\n"
    },
    {
      "commit": "0d8fb019633300a6636f1bf99f0716e8579dab35",
      "tree": "6a5302c69e3dd5d07bb383bcb274bae009488f39",
      "parents": [
        "3fbfbb4adeec1dda1e149758ea302c386101f267"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 30 12:11:41 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 06 22:25:01 2014 -0700"
      },
      "message": "Disable compilation based on vold.decrypt. [frameworks/base]\n\nBug: 15165413\n\n(cherry picked from commit 4fd561637a173c7fa6a1d71e9115db1db90514ff)\n\nChange-Id: I2a13b63f9d4a7ffd69a8d21666c6dce84739c6ed\n"
    },
    {
      "commit": "3fbfbb4adeec1dda1e149758ea302c386101f267",
      "tree": "e24c0a50c90acfeabf8c79e19c1635910ffe8078",
      "parents": [
        "a25dc2bbe70b7449dc57e9619778ba592c198003"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 28 19:13:28 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 06 22:25:00 2014 -0700"
      },
      "message": "Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [frameworks/base]\n\nThis will allow us to conditionally change the compiler-filter based on other properties.\n\nBug: 15165413\n\n(cherry picked from commit f60d3a4702f6d00d7edb5d348c53b9b03ae16b76)\n\nChange-Id: I293c81ba817e9abbf9c05b3fb554ef2f0ad0c4ed\n"
    },
    {
      "commit": "6d77eb99bfc5471f9765e3fa7ea42022197aa9f5",
      "tree": "80adaf06dc7f28d6ed56bef1b3e77eb8a37c2ef7",
      "parents": [
        "08881385a86bf887669a555ae03759c374ec9c50"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 08 10:40:59 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 08 15:05:41 2014 -0700"
      },
      "message": "Make dex2oat heap size product configurable [frameworks/base]\n\nBug: 15919420\nChange-Id: I9b7b4f60826fc9b0cc6bb3765ceaa36542425006\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": "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": "3beff1e023193b485c67a3003a7f363f105d96d4",
      "tree": "9ba68b9b10d7bb91f2fedf63433264acd4000e0a",
      "parents": [
        "22f66b76f5e49704f3be76ad3fff7e4b5456864d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 28 23:27:22 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 14:08:46 2014 -0800"
      },
      "message": "Add dex2oat-flags plumbing to AndroidRuntime\n\nChange-Id: Idaa7e5351e146d76e1972cbe4d93af69f0b999a6\n"
    },
    {
      "commit": "4280c4a93ea17f2e9d3f651e49d8c13dc3fb92aa",
      "tree": "f77523cff7d2f3a4d55ab2b3aa1ec0841d17cb89",
      "parents": [
        "16f5f5cc9d4c480fac3dc7f176f3f1edfbd256f4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 15 17:48:02 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 15 19:59:23 2012 -0700"
      },
      "message": "If an application calls System.exit() terminate it immediately.\n\nThere is no graceful way to kill Android application processes.\nThey typically have many threads running doing various things\nWhen System.exit() is called, those threads just keep going\nwhile the cleanup actions run until the process finally.\n\nPerforming shutdown actions can easily cause more harm than good.\nFor example, closing the Binder driver\u0027s file descriptor may\ncause other threads waiting on Binder to wake up and then crash\nin nasty ways after receiving EBADF.\n\nSo when an Android application exits, skip the cleanup and just\ncall _exit() to end it all.\n\nBug: 6168809\nChange-Id: I29790c064426a0bf7dae7cdf444eea3eef1d5275\n"
    },
    {
      "commit": "3bc6bbc92cd2095f42039b5aadd0a14d0e5d9230",
      "tree": "39b62affe30e0c2895a0f8a52212a7f91bd80dd7",
      "parents": [
        "3b2faf68e5a66ac67b28d6f79d4ba213b6c0d09c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Oct 06 13:11:04 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Oct 06 14:40:13 2011 -0700"
      },
      "message": "Clean up CursorWindow code.\nBug: 5332296\n\nThe code is functionally equivalent, but a little more efficient\nand much easier to maintain.\n\nChange-Id: I90670a13799df05831843a5137ab234929281b7c\n"
    },
    {
      "commit": "ebed7d6e35f7f960e6e6add2b8ab7c7a31a511c3",
      "tree": "ae346479a6c069a3a57acecb18a0b0a563325e3f",
      "parents": [
        "cbc38e74f028d9e337eba0f3ed7c435310cc10c2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 16 17:08:42 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 24 12:01:25 2011 -0700"
      },
      "message": "Support wrapping app processes to inject debug instrumentation.\nBug: 4437846\n\nChange-Id: I4552501c693716b14714afb5c5248edaca9547ab\n"
    },
    {
      "commit": "d195e5ab401432ddac659791640a2927fc668699",
      "tree": "61169b923b4d530a097ac8ff9e3029dfe468b7cd",
      "parents": [
        "966f9e558d714d9d41189e989b21e6d5fec35047"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 13 15:39:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 13 16:43:15 2011 -0700"
      },
      "message": "Replace a custom AndroidRuntime::findClass with a more targeted fix.\n\nThis seems simpler and more contained, and I think the comment explaining\nwhy hoop-jumping is necessary is a bit clearer now.\n\nChange-Id: Ief4afd7cbb42188ed835fce23e497520bdb753a8\n"
    },
    {
      "commit": "a3804cf77f0edd93f6247a055cdafb856b117eec",
      "tree": "795814e56ceddf3773f7f2b47bb7a6b632daa5d5",
      "parents": [
        "4123211637dcc0155091016f0c0987b80e56ab7b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 11 16:50:19 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 11 17:04:01 2011 -0700"
      },
      "message": "You don\u0027t need to poke around inside FileDescriptor manually.\n\nWe can help you with that.\n\nNote also that getParcelFileDescriptorFD did no such thing. All its callers\nwere passing in a regular java.io.FileDescriptor and expecting the int. No\nParcelFileDescriptors involved.\n\nChange-Id: Idc233626f20c092e719f152562601f406cc1b64a\n"
    },
    {
      "commit": "e4d81f25bd4dc1a5c909b56ab56a56406290da30",
      "tree": "8bb0db495a1bb2037299022e7fce2a2eae59ee09",
      "parents": [
        "01301d31a4c2e8745a3e12c9a441d2448e63d775"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Jul 14 16:02:20 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jul 30 10:57:47 2010 -0700"
      },
      "message": "Add support for dalvik.vm.extra-opts property.\n\nThe goal here is to avoid the dalvik.vm.* property explosion by\nhaving a single property that takes an arbitrary collection of Dalvik\ncommand-line options.  This is intended for testing of various\nconfigurations by the Dalvik team, not industrial use.\n\nOptions should be separated by spaces, e.g.\n\n  adb shell setprop dalvik.vm.extra-opts \"-showversion -Xmx4m\"\n\nwill print the version banner and set the heap max to 4MB, which won\u0027t\nget you very far.\n\nThe extra-opts options will appear last, which allows them to override\nvalues set earlier (like the heap max).\n\nBug 2838629.\n\n(cherry-pick from dalvik-dev branch)\n\nChange-Id: Ibcbb1b62367cf2152798583e8722ef7e461ad19a\n"
    },
    {
      "commit": "81ea83d10883886013bc95eac2fe032acf1e7aa9",
      "tree": "0c7e032f99dab7739bd7ca2b2efc5b852e50de44",
      "parents": [
        "767c5e4be0a4bddc815efe5a4cb2cd0fdd584429"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 30 17:49:41 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 30 17:54:10 2010 -0400"
      },
      "message": "Move MTP JNI code from libandroid_runtime to libmedia_jni\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n\nChange-Id: I0c54bbe4e6146beba7d22e782e02ded420f50dbd\n"
    },
    {
      "commit": "f602d362ba4bb3adbf1eb4e38a794fb14274293a",
      "tree": "d2b5da88fbc52e10a2c9b09f9027b32c539c5022",
      "parents": [
        "07ccf5ad7edfeeebb79208ad3e8a52917fe038a8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Jun 20 14:28:16 2010 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jun 22 09:26:41 2010 -0400"
      },
      "message": "GPS: remove GpsEventThread from GpsLocationProvider\n\nRather than polling for events from the native code in an event thread,\nwe now require the GPS HAL libraries to call our callbacks from a thread\nthat is registered with the JVM to call directly into Java.\nThis eliminates a thread from our code and removes one step in the chain\nof message passing from the GPS to the Location Manager client.\n\nChange-Id: I2745a157690310ba9a699a8369f54a7366c6b1ba\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0795272aa226f4e965968a03daddc53ce30b7cda",
      "tree": "6b4e8ba5e57c5dcf2dd770c24e14c43eda42fdd7",
      "parents": [
        "25ba5b6564224dceefa086b5c439ef28dad530ca"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "f70188aa4716625781d9952c6b883180528d4644",
      "tree": "daa7aa337f93976ad2382601a261c5543813c1ca",
      "parents": [
        "7474a5acbe5b73342e4cf129d39cd3bc1195292c"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "",
        "time": "Tue Mar 31 15:52:13 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 31 15:52:13 2009 -0700"
      },
      "message": "AI 143840: Split VM initialization out into a separate function.\n  This makes the code marginally more readable, and cuts about 500 bytes\n  off the size of the main thread\u0027s stack.\n\nAutomated import of CL 143840\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": "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"
    }
  ]
}
