)]}'
{
  "log": [
    {
      "commit": "54b55f108c6a74e3c155522be8e594d50be5248d",
      "tree": "abf8b6b671c26c557f6e91dcba411094565577d7",
      "parents": [
        "db69c8ff22842b001fd21a902f1b2d08481736c3"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Aug 08 13:59:48 2024 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Aug 19 10:06:18 2024 -0700"
      },
      "message": "Use uinput touchscreen to inject monkey touch events\n\nUsing uinput for injection will ensure that when monkey quits, there\u0027s no\npossibility of unfinished event streams, because the device used for\ninjection will be deleted with the process. This will also allow more\ncomplete testing of the entire system rather than just testing the upper\nlayer, so it will be a closer representation of the user performing actions\non the device.\n\nPreviously, it was possible for monkey to leave dangling pointers on\nscreen. This would conflict with subsequent monkey runs, thus leading to\ncrashes that are not actually achievable via normal user input.\n\nThis CL will help us eventually get rid of the \u0027injectInputEvent\u0027 API.\n\nLater, we can also look into using uinput for other event types, thus\nremoving the \u0027injectInputEvent\u0027 dependency from monkey completely.\n\nThe approach in the CL works as follows:\n\n1. Monkey.java communicates with native code via aidl\n2. For the very first time, we need to make a single jni call to create\n   the service and send it to java as an ibinder.\n3. Monkey will create a touchscreen using VirtualInputDevice from\n   libinput\n4. Any time monkey has to inject a touch event, it will send it via the\n   uinput touchscreen instead.\n\nThe VDM infra provides Java APIs, so in theory we could just use that\nhere, and not require any native code. However, I could not get that\napproach to work, because existing Java bindings for virtual input devices\nrequire a valid Context object. We don\u0027t currently have a valid Context\nobject inside monkey code.\nAttempts to circumvent this by directly using the binder interface of\nIVirtualDeviceManager without context were unsuccessful, because those require\nproviding a valid VirtualDeviceParams object. However, creating that object\nrequires the use of its builder, which internally has flag-value checks. The\nflag-checking code also requires a valid context, leading to crashes\nwhen accessed from a non-Activity context (http://b/341726919).\n\nI briefly also explored the creation of a context within the monkey binary,\nsuch as by registering a service, but it proved to be complex and would require changes\nto build files and the general way the monkey operation is set up. Even if successful,\nthis approach would likely introduce more complexity than the JNI/AIDL solution.\n\nTherefore, I went with the JNI/AIDL approach here.\n\nBug: 344695913\nFlag: EXEMPT refactor\nTest: adb shell monkey 1000 --pct-touch 100\nChange-Id: I450110d192726e8904e36fc6c115a49a2ee88b59\n"
    },
    {
      "commit": "bdad38b3b97914ca8c84bc3ea449a2dd8223c8bc",
      "tree": "bcbfedbe9f0588c97ad457c18b8cf1afb572ef6d",
      "parents": [
        "2be26ed7d46df9a09ded7ecb4d00f77e7b6c3611"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Aug 09 13:37:30 2024 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Aug 09 13:37:30 2024 -0700"
      },
      "message": "Improve formatting in monkey code\n\nNow that preupload checks are in place, let\u0027s fix a few of the current\nissues so that future \"repo upload\" commands only show problems in the\ncode that\u0027s actually getting altered.\n\nBug: 344695913\nTest: repo upload .\nFlag: EXEMPT refactor\nChange-Id: I0db4474d08e0e74f2a9c3e15bb435f0213dd3fb4\n"
    },
    {
      "commit": "42d7e790c282d32d26eece088e7009d44a012731",
      "tree": "019a7cbf01988a25724b5b61a6faa065768e9987",
      "parents": [
        "9d542ec7d152fddb550d10468c6bb2b7027948e7",
        "39087ca87f192f9550c7c4a5ca1c9aeee573ff03"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Apr 22 17:14:29 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 22 17:14:29 2024 +0000"
      },
      "message": "Merge \"Migrate Test Targets to New Android Ownership Model\" into main"
    },
    {
      "commit": "39087ca87f192f9550c7c4a5ca1c9aeee573ff03",
      "tree": "f9a828e9640e421371be85914536a6bdd9241314",
      "parents": [
        "f148c99aed82a0ff0e92a9b6dc057b3fd547979b"
      ],
      "author": {
        "name": "Aditya Choudhary",
        "email": "caditya@google.com",
        "time": "Fri Feb 02 13:58:27 2024 +0000"
      },
      "committer": {
        "name": "Aditya Choudhary",
        "email": "caditya@google.com",
        "time": "Mon Mar 04 20:16:04 2024 +0000"
      },
      "message": "Migrate Test Targets to New Android Ownership Model\n\nThis CL is created as a best effort to migrate test targets to the new Android ownership model.\nIt is based on historical data from repository history and insights from git blame.\nGiven the nature of this effort, there may be instances of incorrect attribution. If you find incorrect or unnecessary\nattribution in this CL, please create a new CL to fix that.\n\nFor detailed guidelines and further information on the migration please refer to the link below,\ngo/new-android-ownership-model\n\nBug: 304529413\nTest: N/A\nChange-Id: I2248f2ba4699ca3f78dedd752aaa536dccaf4327\n"
    },
    {
      "commit": "6a3f1891a8415d4f00ccb85dca3e528596c62ce2",
      "tree": "e70217ac2a780e5b9039986e3aaa7f679d80b4ca",
      "parents": [
        "908042bae432901dd8d324037288b21d32e5d0db"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Oct 16 16:41:53 2023 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Oct 17 08:11:37 2023 -0700"
      },
      "message": "Add test for MonkeySourceScript\n\nThis is the first test that will cover the behaviour of monkey command.\nIt\u0027s being added so that we can provably solve bugs in the monkey code\nin the future.\n\nIt also highlights the incorrect behaviour of the current PinchZoom\ncommand: it uses the wrong ACTION_POINTER_DOWN event, and it lacks an\nACTION_UP event.\n\nBug: 281806933\nTest: atest monkey_test\nChange-Id: Idad80fc0b2374978ba0a38a64c0de28259c389bc\n"
    },
    {
      "commit": "7bc42679aaa45af20e2aef62296d389da11f9284",
      "tree": "7b6d2a8aa7ecf89a4424a507d387c5060d3bd4a3",
      "parents": [
        "17a42834d35ff55778fca64875d9a55fb95b9791"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Sep 01 15:13:34 2022 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Sep 01 15:13:34 2022 -0700"
      },
      "message": "Fix module-file name collisions\n\nBazel doesn\u0027t allow a module and file with the same name.\n\nBug: 198619163\nTest: Presubmits\nChange-Id: I8f143ad512f0d6372e3c75d363ee73f339849a3e\n"
    },
    {
      "commit": "082705bfb3694997c65074085c060f3e3855a3a8",
      "tree": "81515a89cf8f9cd0a060936137c2ece32d032556",
      "parents": [
        "c65b20e6b63e92f3019b85cac5e97e73ad638974"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Jan 19 18:29:06 2022 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Jan 20 19:04:52 2022 +0000"
      },
      "message": "Fix license texts.\n\nPush specific licenses down the tree toward the leaf directories.\n\nRemove extra Apache 2.0 license texts--just use Android-Apache-2.0\n\nTest: m nothing\nChange-Id: Ibee25f75f5933699d6f43acdc192b2ada6823757\n"
    },
    {
      "commit": "5f4839eb99216b5730deb43fcd1abf58ee5df0de",
      "tree": "cec8c6827235710f908148997801025a365169f7",
      "parents": [
        "4851047a4c96d29a5297045e0d68e52be0e94354"
      ],
      "author": {
        "name": "Luca Stefani",
        "email": "luca.stefani.ge1@gmail.com",
        "time": "Fri May 07 13:22:29 2021 +0200"
      },
      "committer": {
        "name": "Luca Stefani",
        "email": "luca.stefani.ge1@gmail.com",
        "time": "Sat May 08 11:27:44 2021 +0200"
      },
      "message": "monkey: Use java_binary\n\n* cc_prebuilt_binary triggers strip and fails\n\n* Currently it\u0027s only printing to stdout but\n  it may later on be a build failure\n\nChange-Id: I6a6751a7c9abad8ef76b531f9c0dc38cb0c12689\n"
    },
    {
      "commit": "f657275aa45124d30a4ac6d5eabebb078e48fd85",
      "tree": "8aa02fd5940bec816595e499cdffbe72ddf67787",
      "parents": [
        "2d7bce0b3ba14906691527b091d4546a6cc0aa2b"
      ],
      "author": {
        "name": "Yuntao Xu",
        "email": "yuntaoxu@google.com",
        "time": "Wed Apr 28 17:16:23 2021 -0700"
      },
      "committer": {
        "name": "Yuntao Xu",
        "email": "yuntaoxu@google.com",
        "time": "Wed Apr 28 17:16:23 2021 -0700"
      },
      "message": "Convert monkey/Android.mk to Android.bp\n\nConvert the Make file to a Soong one\n\nBug: 186677673\nTest: compared the results built by Make and Soong\nTest: TreeHugger\nChange-Id: Ib850e78443e11ef4834e6567cd447e88627512d3\n"
    }
  ]
}
