)]}'
{
  "log": [
    {
      "commit": "a3ad0cdd711857f04f477e2cdc5b56a2c74a3018",
      "tree": "7e0e4c7888c2497d86ce96c9574d7c9886721ccf",
      "parents": [
        "abd9e1515bc6be88372c61071971c5432a51553d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 10:06:38 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 11:11:09 2018 +0100"
      },
      "message": "ART: Move JNI files to runtime/jni/ .\n\nTest: Rely on TreeHugger.\nChange-Id: I9cae11191ef1567ae9453be498882a7767285140\n"
    },
    {
      "commit": "60fbefcdf3578be9995a3be2b975b3998cdb430c",
      "tree": "fe0e601f91fe626fb35d38cdcb5b8823226ac2fe",
      "parents": [
        "f889c70e79643373320f5742cc719d6c467531b9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 18 15:19:15 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 19 17:31:30 2018 +0000"
      },
      "message": "Move jit startup attempt to openjdkjvmti from adbconnection\n\nWe were attempting to start the jit in adbconnection if it was not\nalready running in order to improve the performance of debugging\nsystem_server and other similar processes. Since we have opened up the\nkArtTiVersion (0x70010200) environment to any agent (on userdebug/eng\nbuilds) it would be useful for these other agents also have the\nperformance boost when running on these processes.\n\nTest: Build\nTest: adb root \u0026\u0026\n      adb shell setenforce 0 \u0026\u0026\n      adb forward tcp:12345 jdwp:`adb shell pidof system_server` \u0026\u0026\n      jdb -attach localhost:12345;\n      \u003cDo things with debugger and device\u003e\n\nBug: 78119634\nBug: 78195998\nChange-Id: Ibfe10b43dcd23d615c03c12af2625e2b0c54f6a4\n"
    },
    {
      "commit": "f889c70e79643373320f5742cc719d6c467531b9",
      "tree": "ada543c87521fbfd98bbbe0004ca9e89c36a9489",
      "parents": [
        "740a50992ea1a200068eb4486a172a151c9b329c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 23 15:25:45 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 19 10:30:50 2018 -0700"
      },
      "message": "Always allow agent attach on userdebug builds with kArtTiVersion\n\nWe added support for the jvmti-alike ArtTi for use by debuggers on\nuserdebug/eng builds of android. Extend this support to allow any\nagent to be loaded on any process of a userdebug device. These agents\nwill need to make use of kArtTiVersion (0x70010200) envs.\n\nTest: build\nTest: ./test.py --host -j50\nTest: ensure AS profiler continues to work with userdebug devices\nBug: 78195998\nChange-Id: I984d1ea937eb49afb376a48bea3d67085192020e\n"
    },
    {
      "commit": "bd2a4e2c68790d1a3d56cd2f9de3471ca816c140",
      "tree": "87f5833d2e33dfed2a625041617fdf0f9747fd5c",
      "parents": [
        "e83bae5c62c7e739e18cafa1126a727b4788895c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Apr 17 09:07:37 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Apr 17 10:41:19 2018 -0700"
      },
      "message": "Make adbconnection try to start the JIT if it is not running.\n\nThe new adbconnection jdwp-provider forces processes to throw out\ncompiled code when a debugger attaches. This is normally not a problem\nsince the JIT will pick up the slack in short order. If one is\ndebugging system_server (or a few other similar system services)\nperformance will be permanently degraded since these processes run\nwith the JIT disabled.\n\nIn order to improve the experience of debugging these processes we\nmake adbconnection attempt to start the JIT if it is not currently\nrunning. In order for this to work the user will need to run\n\u0027adb shell setenforce 0\u0027 to disable selinux prior to attaching the\ndebugger.\n\nBug: 78119634\n\nTest: adb root \u0026\u0026\n      adb shell setenforce 0 \u0026\u0026\n      adb forward tcp:12345 jdwp:`adb shell pidof system_server` \u0026\u0026\n      jdb -attach localhost:12345;\n      \u003cDo things with debugger and device\u003e\n\nChange-Id: Iffb382460a1dbcd055d533a44367c4ccb3830f10\n"
    },
    {
      "commit": "c6023e576f316cb22469b1cd150794521c086643",
      "tree": "20497f6b94b895b2aa47626fc70385a35342b81a",
      "parents": [
        "08a5cb2e098bd4378deb7486dac78e7cdfd97771",
        "4b49bb7e02c6dd70ce6c3f2036a5bce902ff233a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 23:34:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 13 23:34:49 2018 +0000"
      },
      "message": "Merge \"jdwp: send pids to adbd as raw integers.\""
    },
    {
      "commit": "4b49bb7e02c6dd70ce6c3f2036a5bce902ff233a",
      "tree": "113f67f30f0e212d8712014f8a4dc29aa7bd167e",
      "parents": [
        "abee76ef780877132cf82c84f42e8ab50e6cc1d1"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 12 15:06:42 2018 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Feb 12 15:06:42 2018 -0800"
      },
      "message": "jdwp: send pids to adbd as raw integers.\n\nBug: http://b/17661822\nTest: `adb jdwp`\nChange-Id: I2520366f885c3cb62b507e9ba6934633a199ac53\n"
    },
    {
      "commit": "d9258679d4593dc4b7c78bcc214b7a4ac1c7ab82",
      "tree": "a8d1bbad26dcf3ea992c89cc5599690de92a5d39",
      "parents": [
        "cee0ec1764385f7fe2af45af3c00fd6f9b176cf9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 12 14:47:16 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 12 14:47:16 2018 -0800"
      },
      "message": "Hide an adbconnection log behind VLOG(jdwp).\n\nIn moving to the new adbconnection jdwp-provider an error message that\nwas previously behind VLOG(jdwp) was moved to always being sent. This\ncould get rather spammy. The error message was that connecting to adbd\nfailed which can happen normally. Since the error message isn\u0027t very\nhelpful lower it to VLOG.\n\nTest: build\nChange-Id: Ief91105ffef6b4991efdb45c732acae7854ef88c\n"
    },
    {
      "commit": "8bcecf915545581bf23b5348cd94d3f5ec6eb669",
      "tree": "99146665aa76b27adb7d253cc8e14a48894207d4",
      "parents": [
        "045112c32ca814be43c5965de3b3006d313cfc90",
        "e11d50f23dc1256ad933d209f2db8f58138f02c0"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Feb 06 18:35:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 06 18:35:41 2018 +0000"
      },
      "message": "Merge \"Workaround bogus Thread Safety Analysis warning\""
    },
    {
      "commit": "d4006e65b6a6404b684a70a30c7404698193db77",
      "tree": "d91921f424d21a46a012cfc1cfc2a30229ebef73",
      "parents": [
        "e29ccfd107defd1387740099f0f07116032ca76b",
        "a17cc2e1685dfc733b0ec6d175ab5b74154445ab"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 03 00:06:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 03 00:06:50 2018 +0000"
      },
      "message": "Merge \"Lower several adbconnection log messages to VLOG(jdwp)\""
    },
    {
      "commit": "a17cc2e1685dfc733b0ec6d175ab5b74154445ab",
      "tree": "808309e48ed8a3e7eebb8baa71143f0f77f12f17",
      "parents": [
        "92d0c8b68c24a2fa21f95d63a1ff2fb00fdb9aaf"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 02 13:56:14 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 02 13:56:14 2018 -0800"
      },
      "message": "Lower several adbconnection log messages to VLOG(jdwp)\n\nWe lower some adbconnection log messages to prevent log-spam on\nuserdebug and eng devices. These messages are not terribly important\nand are sent for every java process on userdebug devices.\n\nTest: Build\nChange-Id: I66b50aa9014211b435dd43171c0a3316eef50755\n"
    },
    {
      "commit": "d6f9d8583f1f8791456d89e9252d8fa0374b69bb",
      "tree": "f491bfa983265c42f4594c04770fdee0eba6a712",
      "parents": [
        "92d0c8b68c24a2fa21f95d63a1ff2fb00fdb9aaf"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 25 11:26:28 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 01 13:52:53 2018 -0800"
      },
      "message": "Fix UAF error caught by asan\n\nWe were \u0027delete\u0027ing the AdbConnectionState while it still had a thread\nrunning. To fix this we moved responsibility for deleting the\nAdbConnectionState to the thread that makes use of it (if it was, in\nfact, created).\n\nTest: Build and boot device with adbconnection\n\nChange-Id: I9f33a308d9b56a33c155b37dd86749d5a765809c\n"
    },
    {
      "commit": "81f75c3df1d54783ddb172d36da2049bf9d97d96",
      "tree": "4d4e68e2157aa96446f8c7188c13f6c7c539293d",
      "parents": [
        "3d2680b40f2ce2b726c2442d6163100aa1237651"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 26 09:46:32 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 26 09:46:32 2018 -0800"
      },
      "message": "Make adbconnection validate jdwpOptions and change defaults\n\nThe (libjdwp) default argument values are not entirely compatible with\nadbconnection. This means that if you manually ran dalvikvm with\n-XjdwpProvider:adbconnection and no -XjdwpOptions the jdwp thread\nwould deadlock. In order to prevent this from happening adbconnection\nwill now validate that the explictly passed in parameters are usable\nand will add in required arguments automatically if they are not\npresent.\n\nTest: dalvikvm -XjdwpProvider:adbconnection -cp testing.dex loop \u0026\n      adb forward tcp:12345 jdwp:\u003cpid of dalvikvm\u003e\n      jdb -attach localhost:12345\nTest: dalvikvm -XjdwpProvider:adbconnection \\\n               -XjdwpOptions:server\u003dn       \\\n               -cp testing.dex loop;\n      ensure process exits and check logcat for error message.\n\nChange-Id: I8e26a9f4479ea8c324f741b9835bbc1fe8407047\n"
    },
    {
      "commit": "15b8113eb72b829e2026477a49e159635a48349b",
      "tree": "b62e2ddcc2e3fb3d1156103c2bfbef08916d3cdc",
      "parents": [
        "d3233abdf14f173bb99e3905e8543ffff845230e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 24 13:29:07 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 24 18:28:13 2018 -0800"
      },
      "message": "Have adbconnection handle DDMS packets if agent not loaded\n\nIf DDMS was being used on a userdebug or eng build it would cause the\nlibjdwp agent to be loaded on various system processes, most notably\nsystem_server. This would cause a massive performance hit as it tries\nto force system_server to jit but, due to security policies, it is\nforced to interpreter instead.\n\nTo fix this we make it so that (so long as no debugger commands are\nissued) DDMS commands are handled without loading the JDWP agent. When\na non-DDMS command is issued we will load and initialize the JDWP\nagent which will take over handling DDMS traffic from then on.\n\nThis will ensure that in the common (for userdebug) use-case where\nprocesses only encounter DDMS commands the process will not need to\nload the full debugger.\n\nTest: ./test.py --host -j50\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003ddevice\nTest: Run ddms monitor on host,\n      adb shell stop \u0026\u0026\n      adb shell setprop dalvik.vm.jdwp-provider adbconnection\n      adb shell start;\n      Ensure that device does not start to jank\nTest: Run ddms monitor on host,\n      adb shell stop \u0026\u0026\n      adb shell setprop dalvik.vm.jdwp-provider adbconnection\n      adb shell start;\n      Turn off ddms monitor.\n      Ensure that device does not start to jank\nTest: Build and run\nTest: use ddms monitor.\nTest: Use Android Studio.\nTest: Build and debug debuggable app (bandhook-kotlin)\nTest: Build and debug non-debuggable app on userdebug build\n        (bandhook-kotlin)\nTest: Debug running system process on userdebug build\n        (com.android.packageinstaller)\n\nBug: 62821960\nBug: 72456312\nBug: 72457427\n\nChange-Id: Ib8d2af6c76bd2fac5a4b27e730695b2d016d3583\n"
    },
    {
      "commit": "2ce6fc80711af9afa3ecda8fdff6f4ed80aa3022",
      "tree": "9fa6be931e7bc8d0f47b0eb2d91a683ffcf1c3f1",
      "parents": [
        "1530591dbd05238236dc6dfe4bdb9118ce7ca3f7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 18 16:42:36 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 11 09:52:00 2018 -0800"
      },
      "message": "Support using adbconnection and openjdkjvmti without JAVA_DEBUGGABLE\n\nWe need to support using a best-effort JDWP when we have the\nENABLE_JDWP attribute without the JAVA_DEBUGGABLE attribute. This is\nused on eng and userdebug builds. We do this by making the plugin try\nto change the runtime to debuggable if possible and to allow getting\nan ArtTiEnv which is a best-effort version of JVMTI by calling GetEnv\nwith (JVMTI_VERSION_1_2 | 0x4000000). This is needed since if the\nruntime isn\u0027t debuggable we cannot guarantee compatibility with the\nJVMTI specification in all cases due to compiler optimizations such as\ninlining. By creating this special version agents are able to\npositively signal that they are able to deal with this uncertainty.\n\nWe also support using openjdkjvmti without being JAVA_DEBUGGABLE. This\nis done by either only allowing the best effort ArtTiEnvs or by\nchanging the environment to be debuggable if we are loaded early\nenough.\n\nMoving the runtime to debuggable state involves deoptimizing the boot\nimage and throwing out any image files associated with non-debuggable\noat-files.\n\nBug: 62821960\nTest: ./test.py --host -j50\nTest: Manual\nTest: Build, Test debugging system_server and other processes.\nChange-Id: I2233299fceb83c76785e5de09e51eaf18b7922e8\n"
    },
    {
      "commit": "e11d50f23dc1256ad933d209f2db8f58138f02c0",
      "tree": "9a02321fc6b464be78086d1cb966c0b000d3f1bc",
      "parents": [
        "ea443af9fd561ee3c3649ec98cafe8ecda077371"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Jan 09 16:55:04 2018 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Jan 09 19:44:44 2018 -0800"
      },
      "message": "Workaround bogus Thread Safety Analysis warning\n\nBuilding art/runtime/gc/heap.cc with thread safety analysis produces\nwarnings that mutator_lock_-\u003eAssertNotHeld() conflicts with\nScopedObjectAccess for holding shared and exclusive lock within the same\nscope. AssertNotHeld() is a capability assertion and does not actually\nhold the lock.\n\nThread safety analysis was broken thus the warning not appearing before\nClang r316199 update. Temporarily workaround the issue while we fix the\nbug in upstream.\n\nBug: 71769596\nTest: m checkbuild\nChange-Id: I48234db966332cf24e40774cd62589359aab6d05\n"
    },
    {
      "commit": "7b38e692caa474bf0470349d016ef8f4502d50b9",
      "tree": "df3dbcdce59af2ecaddb124bf315132593b3eedb",
      "parents": [
        "b496af808eaf3af5ebac50aef4fbec33323b5016"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 28 19:18:28 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 05 10:16:18 2018 -0800"
      },
      "message": "ART: Take classloader into account for AttachAgent\n\nTake a classloader into account for attaching an agent, if given.\nThis will use the library path from the classloader to find the\nagent library.\n\nSwitch to libnativeloader to do the actual loading.\n\nBug: 70901841\nTest: m test-art-host\nChange-Id: I59ec55178792bc738fb06e0299522e207dd4a784\n"
    },
    {
      "commit": "c7547c3a52785f4a69675a88ec2a90696f26c75d",
      "tree": "deed392c9fb211948d7373cd8638f880d8721265",
      "parents": [
        "3859966d5c0d4a2d98e6012b458ef0b7e218c9b4"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 20 08:05:06 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 20 08:05:06 2017 -0800"
      },
      "message": "Disable libraries using eventfd on darwin hosts.\n\nThe eventfd API is not supported on darwin/MacOS. Since these\nlibraries are not meant for host use we will simply not build them for\nthose platforms. The libraries disabled are libdt_fd_forward and\nlibadbconnection. Both of these libraries are used for debugging\nsupport on device only so it should not be any real issue.\n\nTest: None\nChange-Id: Ia1b1efc50a0bd9427640edec322db5ebd37d92a2\n"
    },
    {
      "commit": "fbf9670f31d09c47078d43fd85ee2bda23273d26",
      "tree": "c2ee763c73f3cf89cfe3aed6230c1830b27583b3",
      "parents": [
        "3979571aa1dfc907569fb7e27ab225ca89f6f86e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 14 13:27:13 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 19 14:52:08 2017 -0800"
      },
      "message": "Add adbconnection plugin\n\nThis plugin will take care of creating and managing a debugger connection\nthrough the adb daemon. This involves sending DDMS messages from the\nruntime, loading the JDWP agent when required, and setting up the\nconnection. We need this since DDMS packets can be sent even if there has\nnot been a full handshake done with the JDWP agent.\n\nAdd an \u0027adbconnection\u0027 value to \u0027-XjdwpProvider:...\u0027 to allow one to\nrequest that the adbconnection plugin be used to provide JDWP\nfunctionality.\n\nBug: 62821960\nTest: Manual, Flash walleye, debug apps\n\nChange-Id: Id9bed589b7c5e3830e6cdfbfee460b091459a27b\n"
    }
  ]
}
