)]}'
{
  "log": [
    {
      "commit": "44a5bb9bb0ebe261837eeac52bc2ab57af2672cd",
      "tree": "576a4fc215baba39104b3fea5b7afde03041a105",
      "parents": [
        "21253f6928a257a9f4e439506f754b8fafaab53f"
      ],
      "author": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri Mar 21 16:21:40 2025 +0900"
      },
      "committer": {
        "name": "Motomu Utsumi",
        "email": "motomuman@google.com",
        "time": "Fri Mar 21 16:22:11 2025 +0900"
      },
      "message": "Make UprobeStatsBpfLoad buildable with -Wshadow\n\nTest: m\nChange-Id: Id01bbdf91e7234d2dd8c0e5da179e1892b0dc8a6\n"
    },
    {
      "commit": "21253f6928a257a9f4e439506f754b8fafaab53f",
      "tree": "29bb529e9b4f22cc63d39898d84d31103511b750",
      "parents": [
        "e11d2d08510b5b5342c54ffd2ef41dd63c67e174",
        "f55ffcc3d01f8625e644df80e1f22d203c2bf628"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Mar 08 16:10:01 2025 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Mar 08 16:10:01 2025 -0800"
      },
      "message": "Merge 25Q1 (ab/BP1A.250305.020) to AOSP main\n\nBug: 385190204\nMerged-In: Iad986733229e395b0129193e0042010030b26088\nChange-Id: Ibdfee1faf798914e19584a4fc4dfb6dbc3d5ea3f\n"
    },
    {
      "commit": "f55ffcc3d01f8625e644df80e1f22d203c2bf628",
      "tree": "29bb529e9b4f22cc63d39898d84d31103511b750",
      "parents": [
        "e11d2d08510b5b5342c54ffd2ef41dd63c67e174",
        "5a479920120de8d511eec17a4345967fd8e2563d"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Feb 10 14:08:20 2025 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Feb 10 14:08:20 2025 -0800"
      },
      "message": "Merge 25Q1 (ab/12770256) to aosp-main-future\n\nBug: 385190204\nMerged-In: I20771745b51d14ac7074f343f34786e543b4a0bc\nChange-Id: I5f17f53a64217a14d31307ccb229664d80070a7c\n"
    },
    {
      "commit": "5a479920120de8d511eec17a4345967fd8e2563d",
      "tree": "29bb529e9b4f22cc63d39898d84d31103511b750",
      "parents": [
        "fbef18139e69625f94af00328230b0b6318a47f1",
        "80c135bca2cd1dc8684538f41670cc9c8697df6b"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Dec 04 23:15:38 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 04 23:15:38 2024 +0000"
      },
      "message": "Merge \"Conditionally use flags in mainline container\" into main"
    },
    {
      "commit": "fbef18139e69625f94af00328230b0b6318a47f1",
      "tree": "95e8b0c61bc818a75b62166cee93c8e42398b660",
      "parents": [
        "a53de91869929822a7b4e8c39f87ab7794c8d658",
        "f48ca31aecb87effa72f1d4107803736cb278f3f"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Dec 04 23:15:01 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 04 23:15:01 2024 +0000"
      },
      "message": "Merge \"Add uprobestats-mainline-presubmit\" into main"
    },
    {
      "commit": "80c135bca2cd1dc8684538f41670cc9c8697df6b",
      "tree": "4f89197c304ed819fb05b13778275bbf5162a55d",
      "parents": [
        "a53de91869929822a7b4e8c39f87ab7794c8d658"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Nov 22 16:18:09 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Dec 04 10:45:22 2024 -0800"
      },
      "message": "Conditionally use flags in mainline container\n\nuprobestats is in the progress of being moved from platform to mainline.\nTo ensure it\u0027s using the flags from the right container across various\nbuild configurations, make it conditionally use flags from either the\n\"system\" or the \"mainline\" container depending on whether it is already\nin Mainline.\n\nBug: 355315669\nTest: TH\nFlag: build.RELEASE_UPROBESTATS_MODULE\nChange-Id: I20771745b51d14ac7074f343f34786e543b4a0bc\n"
    },
    {
      "commit": "a53de91869929822a7b4e8c39f87ab7794c8d658",
      "tree": "420bce10546a75a0679710d0a4de1b550eb093bd",
      "parents": [
        "d1b462df8cc4c5d06d5c7c1c4fde94c4951500e5",
        "600e8d767b74cf745e46b76ad6332d3788b2f936"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Dec 04 02:01:47 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 04 02:01:47 2024 +0000"
      },
      "message": "Merge \"Add uprobestats_mainline_flags_java_lib\" into main"
    },
    {
      "commit": "600e8d767b74cf745e46b76ad6332d3788b2f936",
      "tree": "12ef11fe16ade8f026ebb7509494e4ae8a2027ab",
      "parents": [
        "86c09ceb80f6518692127f8231421eb5ff07f0c9"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Dec 03 15:32:31 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Dec 03 16:10:41 2024 -0800"
      },
      "message": "Add uprobestats_mainline_flags_java_lib\n\nThe library will be used by android.cts.statsdatom.perf.UprobeStatsTest\nto conditionally run the test case only when uprobestats is enabled by\nflag.\n\nTest: atest android.cts.statsdatom.perf.UprobeStatsTest\nBug: 380076914\nFlag: TEST_ONLY\nChange-Id: Id8c3516f9b2d185e204a2f51f588a6be4e81413d\n"
    },
    {
      "commit": "f48ca31aecb87effa72f1d4107803736cb278f3f",
      "tree": "45867008544e7547c3c414bede2be33655b53097",
      "parents": [
        "86c09ceb80f6518692127f8231421eb5ff07f0c9"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Nov 26 16:23:57 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Nov 26 16:59:45 2024 -0800"
      },
      "message": "Add uprobestats-mainline-presubmit\n\nTest: TH\nBug: 355315893\nFlag: TEST_ONLY\nChange-Id: Ieedd20a387506b473616553d44b82865c749fbbf\n"
    },
    {
      "commit": "d1b462df8cc4c5d06d5c7c1c4fde94c4951500e5",
      "tree": "36abe56e8127d9e08bdcede064301deeca4c0dbd",
      "parents": [
        "86c09ceb80f6518692127f8231421eb5ff07f0c9"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Sat Nov 23 02:52:53 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon Nov 25 17:33:52 2024 +0000"
      },
      "message": "Fix: use executable_method_file_offsets API in Guardrail\n\nAddresses bug where the subject API would not be consulted on user\nbuilds.\n\nBug: 296108553\nTest: TH\nFlag: android.uprobestats.flags.executable_method_file_offsets\nChange-Id: Ic8c60d7bbc331378e6afc3833a87db8fcb0b384f\n"
    },
    {
      "commit": "86c09ceb80f6518692127f8231421eb5ff07f0c9",
      "tree": "1e537d84466729e914df52da3d8704e1de276dd3",
      "parents": [
        "31afe48caa40e43ce618d832b2b96e7fcf1b7591",
        "367ebd2a8e69627eafcf7988148a20e89b96e998"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Nov 20 22:30:07 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 20 22:30:07 2024 +0000"
      },
      "message": "Merge \"Fix: remove debug logging from UprobeStats\" into main"
    },
    {
      "commit": "31afe48caa40e43ce618d832b2b96e7fcf1b7591",
      "tree": "edd8b19e33202cc7c3c4daf64677711275e40a7c",
      "parents": [
        "2b1bc594013e6df8c847359a29e18be43b07c6e4",
        "660d38ee6753095ca91870b6b95a4c4615ac48a6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Nov 20 20:43:47 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 20 20:43:47 2024 +0000"
      },
      "message": "Merge \"Call ABinderProcess_startThreadPool\" into main"
    },
    {
      "commit": "367ebd2a8e69627eafcf7988148a20e89b96e998",
      "tree": "054a41217bf4f9ddae674a744f5bf01bfcaf782a",
      "parents": [
        "2b1bc594013e6df8c847359a29e18be43b07c6e4"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Nov 20 19:25:24 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Nov 20 19:28:05 2024 +0000"
      },
      "message": "Fix: remove debug logging from UprobeStats\n\nBug: N/A\nTest: TH\nFlag: Not needed (trivial removal of logging)\nChange-Id: I7efc6b01420f0da47c3a77054572079a72180cc3\n"
    },
    {
      "commit": "660d38ee6753095ca91870b6b95a4c4615ac48a6",
      "tree": "7276d8d2adc9afa54c811848a0e77e0aa0a5f5f0",
      "parents": [
        "33de0b373b6be860a72d20ea707687a7824d7fe5"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Nov 20 10:36:03 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Nov 20 11:03:50 2024 -0800"
      },
      "message": "Call ABinderProcess_startThreadPool\n\nTest: atest uprobestats-test\nChange-Id: I7652f45e009de133a36933d862807591e4c3df9e\nFlag: android.uprobestats.flags.executable_method_file_offsets\nBug: 372925025\n"
    },
    {
      "commit": "2b1bc594013e6df8c847359a29e18be43b07c6e4",
      "tree": "7a6e55537b65002199935659a09adbc8e4d802bb",
      "parents": [
        "33de0b373b6be860a72d20ea707687a7824d7fe5"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon Nov 18 20:22:34 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Nov 19 12:04:48 2024 +0000"
      },
      "message": "Update per const changes to dynamic_instrumentation_manager\n\nBug: 372925025\nTest: uprobestats-test\nFlag: android.uprobestats.flags.executable_method_file_offsets\nChange-Id: I9481c558d491aa8d3ffdac65285a91c6d26facfd\n"
    },
    {
      "commit": "33de0b373b6be860a72d20ea707687a7824d7fe5",
      "tree": "98687fab241bc5f870e4658a414eb88679ac3320",
      "parents": [
        "02624d04ad811c69424eaff1f625fdfd3ed8e68e"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Nov 13 15:09:54 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Nov 13 15:52:01 2024 -0800"
      },
      "message": "Mirror uprobestats system flags in Mainline\n\nBug: 355315669\nTest: TH\nFlag: build.RELEASE_UPROBESTATS_MODULE\nChange-Id: I5cec6c69a684d688de4fa885fc9bc1f2db6400ef\n"
    },
    {
      "commit": "02624d04ad811c69424eaff1f625fdfd3ed8e68e",
      "tree": "f4e1603704846d7be122516a8bb6227325dfe530",
      "parents": [
        "37c49950cc4904a7e13f038c7ff18ae06d134702"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Nov 12 15:35:47 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Nov 12 15:43:45 2024 +0000"
      },
      "message": "Add an EXECUTABLE_METHOD_FILE_OFFSETS flag to mirror ART\n\nThis flag shouldn\u0027t be needed, as there is an identical flag defined in\nthe ART module. However, exported flags aren\u0027t currently supported in\n`cc_aconfig_library`, so the only option is to define two separate flags\nand ramp them in tandem.\n\nBug: 372925025\nFlag: android.uprobestats.flags.executable_method_file_offsets\nTest: uprobestats-test\nChange-Id: I24901f90ca0bb9aceff30116152a947c5bad4216\n"
    },
    {
      "commit": "37c49950cc4904a7e13f038c7ff18ae06d134702",
      "tree": "f3c34a5aa6901898efff972c5b90faee173bbd36",
      "parents": [
        "5f4f9b5120ced59c858f0362ffc63ecab036ef37"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Sun Oct 27 14:10:31 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Sat Nov 09 02:19:10 2024 +0000"
      },
      "message": "Integrate with getExecutableMethodFileOffsets API\n\nA platform API has been defined to fetch offset information. Use that\nrather than oatdump when available.\n\nBug: 372925025\nTest: uprobestats-test\nFlag: com.android.art.flags.executable_method_file_offsets\nChange-Id: Ic08c88b1a56edf8aee857d59877fbd41a836828c\n"
    },
    {
      "commit": "5f4f9b5120ced59c858f0362ffc63ecab036ef37",
      "tree": "0c3798872dbf3728af5d44a17821e3431bc106fc",
      "parents": [
        "66ebcc6d1f175c26c51d47de71a5752570704b0f"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Oct 30 11:01:28 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Oct 30 15:33:50 2024 -0700"
      },
      "message": "Create uprobestats-protos for use in CTS.\n\nFlag: TEST_ONLY\nTest: atest android.cts.statsdatom.perf.UprobeStatsTest\nBug: 296108553\nChange-Id: I4d105fc62de431f53b7da60d5d430b4c80a88456\n"
    },
    {
      "commit": "66ebcc6d1f175c26c51d47de71a5752570704b0f",
      "tree": "6c5e02e5981ff74db5eece336bfa0e2bbcac9773",
      "parents": [
        "1c885d34d8ed08de0b17261ec240885b0c543746"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Oct 04 14:09:49 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Mon Oct 28 13:05:07 2024 -0700"
      },
      "message": "Fork platform bpfloader to uprobestatsbpfload\n\nFlag: build.RELEASE_UPROBESTATS_MODULE\nBug: 355315669\nTest: atest uprobestats-test\nChange-Id: I2a515153de52a3e5c98dc8ce5594fded374a6aed\n"
    },
    {
      "commit": "1c885d34d8ed08de0b17261ec240885b0c543746",
      "tree": "6ac5e026dbab5e35c8339dcf0e50cc658658fefe",
      "parents": [
        "f0ba53d99dd454491eb5f2b3e6b1f5d55df27c0c"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Mon Oct 21 18:49:39 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Oct 24 19:29:47 2024 -0700"
      },
      "message": "Move libuprobestats_client into Mainline\n\nFlag: build.RELEASE_UPROBESTATS_MODULE\nBug: 355315669\nTest: atest uprobestats-test\nChange-Id: Ib8d8729a38f0d3ce7edcd608431146af7f2f9399\n"
    },
    {
      "commit": "f0ba53d99dd454491eb5f2b3e6b1f5d55df27c0c",
      "tree": "334c55a2bf756773e4276ae4b6d36afa896ccb54",
      "parents": [
        "9fdfac7e368c95be48bb5b7830001f053023c7ca"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Oct 04 14:09:49 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Oct 23 10:07:48 2024 -0700"
      },
      "message": "Add uprobestats files to its apex\n\nFlag: build.RELEASE_UPROBESTATS_MODULE\nBug: 355315669\nTest: m \u0026\u0026 atest uprobestats-test\nChange-Id: I07533e434a8342ffc413a11fc0bfcc4b7f6152d7\n"
    },
    {
      "commit": "9fdfac7e368c95be48bb5b7830001f053023c7ca",
      "tree": "8b41716dc2e4173c13181706105ca38455496a50",
      "parents": [
        "f57869ffbe5e37d4835df9f434147aeb1812fd14"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Mon Oct 21 14:57:06 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Oct 23 10:06:43 2024 -0700"
      },
      "message": "Fork bpf_header and bpf_syscall_wrappers\n\nFlag: EXEMPT refactor\nTest: uprobestats-test\nBug: 355315669\nChange-Id: I2d63c003f88dc816ab5f7eee22de70aeb453fcc7\n"
    },
    {
      "commit": "f57869ffbe5e37d4835df9f434147aeb1812fd14",
      "tree": "631e72b2ef32a2b307c32fd05e4038785a1da38d",
      "parents": [
        "eccff6be02848fbcccc03cdaa23ab72fd94cf422",
        "d11af24a3368816050319ffd514be14bc99519b2"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Oct 22 01:24:46 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 22 01:24:46 2024 +0000"
      },
      "message": "Merge \"Use ctl.start to start uprobestats service\" into main"
    },
    {
      "commit": "eccff6be02848fbcccc03cdaa23ab72fd94cf422",
      "tree": "db993172b98c9f16aa0f4099d4d0a1d8e9e49f4e",
      "parents": [
        "a55a86ae74b5813c52db8fa00e15f04e5f9285b9"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Oct 16 17:08:02 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Oct 17 17:29:18 2024 -0700"
      },
      "message": "Add a placeholder uprobestatsbpfload binary\n\nFlag: build.RELEASE_UPROBESTATS_MODULE\nBug: 296108553\nTest: atest uprobestats-test\nChange-Id: I7cb544fce824bfdc4344cfbda6d888e55001e604\n"
    },
    {
      "commit": "d11af24a3368816050319ffd514be14bc99519b2",
      "tree": "7ce0ec755187103327369aaac844662cac0eb30f",
      "parents": [
        "a55a86ae74b5813c52db8fa00e15f04e5f9285b9"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Oct 10 13:51:11 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Oct 10 16:53:51 2024 -0700"
      },
      "message": "Use ctl.start to start uprobestats service\n\nPreviously the uprobestats service is triggered by setting the\nuprobestats.start_with_config property, as configured with the \"on\nproperty\" setting in UprobeStats.rc. This change replaces it with the\nmore standard way of starting a service using ctl.start property.\n\nFlag: EXEMPT bugfix\nChange-Id: I23198503f6eec206fda659ac667bb0027b817254\nTest: atest uprobestats-test\nBug: 296108553\n"
    },
    {
      "commit": "a55a86ae74b5813c52db8fa00e15f04e5f9285b9",
      "tree": "ec5a5dc9d3b4b008b81636ee8526d208a5701f5b",
      "parents": [
        "756add70cdc5770bda97b968b4f6acaa971c6132"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 26 16:19:23 2024 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 26 16:19:23 2024 +0000"
      },
      "message": "Remove unnecessary copy \u0026 paste.\n\nlibc++fs is an empty library.\n\nChange-Id: I874c81ae1b3a8e09273fc27c35b60256711e82ca\n"
    },
    {
      "commit": "756add70cdc5770bda97b968b4f6acaa971c6132",
      "tree": "037fc3dfaf605d358b2d10441e415371a61da7d8",
      "parents": [
        "e11d2d08510b5b5342c54ffd2ef41dd63c67e174"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Sep 20 13:46:31 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Sep 25 11:10:59 2024 -0700"
      },
      "message": "Log updateDeviceIdleTempAllowlist via Hummingbird\n\nUpdate Hummingbird code and test config to log\nActivityManagerService$LocalService.updateDeviceIdleTempAllowlist.\n\nFlag: android.uprobestats.flags.uprobestats_support_update_device_idle_temp_allowlist\nTest: uprobestats-test\nBug: 296108553\nChange-Id: I6e2e565bac811f8b495330107648112b9319d7b9\n"
    },
    {
      "commit": "e11d2d08510b5b5342c54ffd2ef41dd63c67e174",
      "tree": "f43efef6df17922706dfed3c3a38f08799ce1704",
      "parents": [
        "4ec8eec9c1c6136f4b69a442c316d707742c3e9d",
        "41b6b7a9e466c84819dd464a6dd6831b762d507d"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Sep 17 21:22:16 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 21:22:16 2024 +0000"
      },
      "message": "Merge \"Guard uporbestats apex behind a flag.\" into main"
    },
    {
      "commit": "41b6b7a9e466c84819dd464a6dd6831b762d507d",
      "tree": "975eaa0c5506fad85ad8fe3869566a9d70353a95",
      "parents": [
        "b5f617ea30a528070ef694d76c675860e2c8a3ed"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Sep 12 15:56:21 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Sep 17 13:08:17 2024 -0700"
      },
      "message": "Guard uporbestats apex behind a flag.\n\nFlag: build.RELEASE_UPROBESTATS_MODULE\nBug: 355315669\nTest: m\nChange-Id: Id1d5673ea6135ee139b515a639f0898fcb1819b5\n"
    },
    {
      "commit": "4ec8eec9c1c6136f4b69a442c316d707742c3e9d",
      "tree": "5239b614e010d76cd4a8c89911cf03d30e9b3e25",
      "parents": [
        "b5f617ea30a528070ef694d76c675860e2c8a3ed"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Sep 17 12:02:04 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Sep 17 13:07:34 2024 -0700"
      },
      "message": "Stop adding a page_size offset in uprobestats\n\nThis offset is no longer needed after the ART fix in aosp/3267852.\n\nFlag: EXEMPT bugfix\nTest: atest uprobestats-test\nBug: 367481780\nChange-Id: I2135141c3cc6bd2ab1bf25e759d28d04c619dd21\n"
    },
    {
      "commit": "b5f617ea30a528070ef694d76c675860e2c8a3ed",
      "tree": "bf44ec29529af2d4948ed54db9c5d384f191d5cd",
      "parents": [
        "299605114ed3e66323698df69d2bc0d0443c3e04",
        "625f7072d67a7f8889f08f1787150c2158b41b3e"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Sep 12 21:54:21 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 12 21:54:21 2024 +0000"
      },
      "message": "Merge \"Make uprobestats probe setUidTempAllowlistStateLSP\" into main"
    },
    {
      "commit": "625f7072d67a7f8889f08f1787150c2158b41b3e",
      "tree": "519fae46bf73b21ffdb12e3e9f847e21f1c135b5",
      "parents": [
        "709d9ef07d43357b56801217a2bcefc63cdfae88"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Jul 16 17:29:14 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Sep 12 14:52:55 2024 -0700"
      },
      "message": "Make uprobestats probe setUidTempAllowlistStateLSP\n\nAllow uprobestats to run on user (public) builds when the target class\nis on the allowlist. Add a BPF program for instrumeting\nsetUidTempAllowlistStateLSP. Add code to output the stats to statsd.\n\nFlag: NONE the whole uprobestats program is already flagged.\nChange-Id: Ief5f438e55f8bab4b413160eec243fa87077d315\nBug: 296108553\nTest: hello_uprobestats -t -n test_setUidTempAllowlistStateLSP\n"
    },
    {
      "commit": "299605114ed3e66323698df69d2bc0d0443c3e04",
      "tree": "e0a2a55ba1ed57d0f84ed97773851de2e3e50393",
      "parents": [
        "709d9ef07d43357b56801217a2bcefc63cdfae88"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Fri Aug 30 15:32:23 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu Sep 12 09:00:17 2024 +0000"
      },
      "message": "Generate AOSP keys for UprobeStats\n\n- create APEX keys for mainline module onboarding\n- define initial `com.android.uprobestats` apex\n\nBug: 355315777\nTest: TH\nFlag: NONE setting up empty apex + keys for mainline onboarding\nChange-Id: Ia19613051cc04f900ef1743d01c09bbfa57290df\n"
    },
    {
      "commit": "709d9ef07d43357b56801217a2bcefc63cdfae88",
      "tree": "2f774cd7bd7419880407f898ba1e1b314be9e395",
      "parents": [
        "8fc2c285f2714109da273eda74c611d87636eb32"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Aug 20 20:59:26 2024 +0000"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Tue Aug 20 22:44:31 2024 +0000"
      },
      "message": "Remove spurious bpf_syscall_wrappers from header_libs\n\n(it\u0027s already pulled in by bpf_headers)\n\nTest: TreeHugger\nFlag: EXEMPT removes a spurious dependency\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: Ie7ea91c734b09b0907ebb7a309a241c11773eda9\n"
    },
    {
      "commit": "8fc2c285f2714109da273eda74c611d87636eb32",
      "tree": "90589f03524c5bd904c08f72dc806e0a8c9af504",
      "parents": [
        "dd47d7e1794d89ccead3e76ab791fd4436b2e4cb"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon Aug 12 21:04:31 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Aug 13 14:24:00 2024 +0000"
      },
      "message": "Handle multiple probes with generic eBPF\n\nThis introduces a handful of changes for a single task config to\nmeaningfully instrument multiple methods at once.\n\n- In the config proto, move `bpf_map` from inside `probe_configs` to top\n  level and make it `repeatable bpf_maps`. This decouples the reading of\n  bpf maps from the registering of bpf programs, allowing multiple\n  programs to share a map more naturally.\n- Introduces 5 numbered, but otherwise identical `call_timestamp` bpf\n  functions. This allows a config author to map call_timestamp program N\n  to a corresponding method name. Thus, they can probe up to 5 methods\n  at once and know which event came from which method.\n- Various tweaks to the uprobestates executable to adopt the proto\n  change.\n- Update the smoke test to expect both an \"event\" representing which\n  method was instrumented and a timestamp.\n- A few coding standard/formatting fixes.\n\nBug: 296108553\nTest: uprobestats-test\nFlag: NONE uprobestats does not yet run in production\nChange-Id: I69550f5bed39a4d873cae145f874b9325ab994ea\n"
    },
    {
      "commit": "dd47d7e1794d89ccead3e76ab791fd4436b2e4cb",
      "tree": "3a5c60ae160fd2228079a0cf2c1335213962c715",
      "parents": [
        "137949960f5031a87061beccf33dfb5c98122c84"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Fri Aug 09 15:20:40 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Fri Aug 09 15:20:40 2024 +0000"
      },
      "message": "Move uprobestats-test from postsubmit to presubmit\n\nNew tests must soak in postsubmit first to ensure they abide by the\ntesting SLO.\n\nBug: 296108553\nTest: TH\nFlag: NONE TEST_MAPPING update\nChange-Id: Ibf80c5715780502ea5a1a3d1752766061918fa9c\n"
    },
    {
      "commit": "137949960f5031a87061beccf33dfb5c98122c84",
      "tree": "cec820e3587340152dc12abee064191ef4d42827",
      "parents": [
        "e643b2cf35b883548e74ab746a7489b0c6c386f3"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu Aug 08 15:27:25 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Fri Aug 09 02:01:52 2024 +0000"
      },
      "message": "Adds call timestamp bpf and updates smoke test\n\nMainly for testing purposes, add a generic bpf that simply records a\ntimestamp when the probed function is called. This is easier to test\ncross-platform (arm/x86).\n\nUpdate the main uprobestats program to write this timestamp to an atom\nif provided in the config.\n\nUpdate the smoke test to use this bpf, and enable it in postsubmit by\nadding TEST_MAPPING.\n\nBug: 296108553\nTest: atest uprobestats-test\nFlag: NONE UprobeStats does not yet run on devices\nChange-Id: Ice1ac8c65bd225c35fde2e010fdd8cea4355d7fa\n"
    },
    {
      "commit": "e643b2cf35b883548e74ab746a7489b0c6c386f3",
      "tree": "8bb08e7263bf613d8f4d7b41c9c415a8bad620c8",
      "parents": [
        "b80014dc55bd55e06774014c61b8fbd0ac534cbc"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Aug 06 17:07:14 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu Aug 08 20:42:26 2024 +0000"
      },
      "message": "Adds PAGE_OFFSET constant accounting for ELF delta\n\noatdump counts offsets from the start of the oat file, which starts at\nthe first page in the ELF file. Account for this difference, setting it\nto the 16384 until the delta is handled by ART itself.\n\nBug: 296108553\nBug: 154812810\nTest: uprobestats-test\nFlag: NONE UprobeStats does not yet run on devices\nChange-Id: Ia5c36cac5e230e2f2e27e9e9b28e8b38f28845a7\n"
    },
    {
      "commit": "b80014dc55bd55e06774014c61b8fbd0ac534cbc",
      "tree": "2c48473d70a20b1fc3466c45996501bcfc9d425b",
      "parents": [
        "839a3fda7f9201865a3d609bd34a7a8f6d21cbec"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Fri Jul 12 15:10:09 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu Aug 08 20:42:17 2024 +0000"
      },
      "message": "Add basic smoke test for UprobeStats that can run in CI\n\nThis change adds a test for UprobeStats that we can run in presubmit.\nNow that UprobeStats can write to StatsD, we can confirm that triggering\na probe and interacting with the device in the expected way leads to the\nexpected atom values being present in StatsD.\n\nAlso adds java and Android.bp formatting to `PREUPLOAD.cfg`.\n\nThis iteration of the test does not work on x86, and thus does not\nenable the test yet in presubmit. This will be added with a later\nchange.\n\nBug: 296108553\nTest: atest uprobestats-test\nFlag: NONE UprobeStats does not yet run on devices\nChange-Id: I5cf82f690b2d65a79f2fbbc104171459ff4a0dfb\n"
    },
    {
      "commit": "839a3fda7f9201865a3d609bd34a7a8f6d21cbec",
      "tree": "248ff235d8672a5f1037c225e466542a5f8900d4",
      "parents": [
        "56e14f592020eb4cd3c7375e0275fee55bcf6ff5"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Jul 25 19:00:48 2024 +0000"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Jul 25 19:04:52 2024 +0000"
      },
      "message": "uprobestats: Remove BTF and cflags from Android.bp\n\nThese are now the defaults after https://android-review.git.corp.google.com/q/topic:%22bpf-defaults%22 is merged.\n\nTest: TreeHugger\nFlag: EXEMPT noop build file cleanup\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: I3153464cb7b62c7fcb03305c784f2d13b39d29b7\n"
    },
    {
      "commit": "56e14f592020eb4cd3c7375e0275fee55bcf6ff5",
      "tree": "a254b3c18682f8dafed5b3a7de6b72bdfb07ed4f",
      "parents": [
        "f2c57fc0956d2c93fa91e068a962fca9170ac5d2"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Jul 25 18:55:50 2024 +0000"
      },
      "committer": {
        "name": "Maciej Żenczykowski",
        "email": "maze@google.com",
        "time": "Thu Jul 25 19:04:39 2024 +0000"
      },
      "message": "Fix unused variable warning in BitmapAllocation.c\n\n(failing in https://android-review.git.corp.google.com/q/topic:%22bpf-defaults%22 aosp topic)\n\nFlag: EXEMPT trivial warning cleanup\nTest: TreeHugger\nSigned-off-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nChange-Id: I38ad971c56ae0c03c0f7a5e56a43d3588aafbb91\n"
    },
    {
      "commit": "f2c57fc0956d2c93fa91e068a962fca9170ac5d2",
      "tree": "c356178adedd24df05cc3a03b843622a75475242",
      "parents": [
        "be0ff2c9bb6c2f4be4c1f0669ba38409bbc01007",
        "8abe9ac46a813ab198ffa74b45bd4e9e2d277e3c"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Jul 03 02:35:23 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 03 02:35:23 2024 +0000"
      },
      "message": "Merge \"Add macro to log in UprobeStatss if debug constant is set\" into main"
    },
    {
      "commit": "be0ff2c9bb6c2f4be4c1f0669ba38409bbc01007",
      "tree": "6d7ac8c5511028ee97aeca5314fb32a64d0717df",
      "parents": [
        "972113507374b2a44f34ab8d8d18832f671b76e2",
        "e7277ee5a394172ed147b4ed8d360a4a8acd7bd9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 02 22:48:34 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 02 22:48:34 2024 +0000"
      },
      "message": "Merge changes I54902f40,Ibac602c5 into main\n\n* changes:\n  Adhere to Android C++ style guidelines\n  Add ability for UprobeStats to write to StatsD\n"
    },
    {
      "commit": "972113507374b2a44f34ab8d8d18832f671b76e2",
      "tree": "bfd2ef3e403b5dc416ad6c11a2ef76f4f3c73fa0",
      "parents": [
        "d1f8fb9d91d4a00ee99f3d77863405d798dd31c8",
        "be3b5597daecbfd8cc2ba6adee67f39f98917d21"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 02 22:38:33 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 02 22:38:33 2024 +0000"
      },
      "message": "Merge \"Add an initial generic eBPF program\" into main"
    },
    {
      "commit": "8abe9ac46a813ab198ffa74b45bd4e9e2d277e3c",
      "tree": "31d497a62a0801b0222208f3830ee1a133af2aae",
      "parents": [
        "e7277ee5a394172ed147b4ed8d360a4a8acd7bd9"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Jul 02 21:29:35 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Jul 02 21:42:37 2024 +0000"
      },
      "message": "Add macro to log in UprobeStatss if debug constant is set\n\nIn this early development phase, we do lots of debugging with logcat.\nAdd a macro to easily flip this debugging on in a local build and have\nall log statements print.\n\nBug: 296108553\nTest: hello_uprobestats\nFlag: NONE UprobeStats does not yet run on devices\nChange-Id: I03cb6b9527dcfdcbf60c58186d4910d62fe4867f\n"
    },
    {
      "commit": "e7277ee5a394172ed147b4ed8d360a4a8acd7bd9",
      "tree": "c50f6cf1e9395080ba6cee124941ecb95a57b278",
      "parents": [
        "3fd4a2f53af11463a77eb2cd818dbc068c933a1d"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Jul 02 20:58:00 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Jul 02 21:42:35 2024 +0000"
      },
      "message": "Adhere to Android C++ style guidelines\n\nPrevious code was a hasty mishmash of camelCase/PascalCase vs.\nsnake_case.\n\nBug: 296108553\nTest: m uprobestats \u0026\u0026 hello_uprobestats\nFlag: NONE UprobeStats does not yet run on devices\nChange-Id: I54902f40ebe43b899e0e87780d20e934de14dd8a\n"
    },
    {
      "commit": "3fd4a2f53af11463a77eb2cd818dbc068c933a1d",
      "tree": "171e9a48d862376c9721678c94e904e01514ae58",
      "parents": [
        "be3b5597daecbfd8cc2ba6adee67f39f98917d21"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu Jun 27 18:58:25 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Jul 02 21:38:59 2024 +0000"
      },
      "message": "Add ability for UprobeStats to write to StatsD\n\nThis change adds a field `primitive_argument_positions` to the\n`statsd_logging_config` field of the proto configuration for\nUprobeStats.\n\nIf the config is present, and the generic BPF is used, UProbeStats pulls\nthe values returned from the BPF accordingly.  The integers passed\nshould represent the argument positions in a probed java method, and\nonly primitive types (e.g. int) should be used.\n\nBug: 296108553\nTest: hello_uprobestats -n test_bss_noteEvent\nFlag: NONE UprobeStats doesn\u0027t yet run on devices\nChange-Id: Ibac602c5b54ac928d8e66f20a840885f8c8bcc34\n"
    },
    {
      "commit": "be3b5597daecbfd8cc2ba6adee67f39f98917d21",
      "tree": "7051d2fe00a852a671ceff099923367ed2841ccd",
      "parents": [
        "266eb6d491c7e3d1f908aeb276aa8ef2a4f189ca"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu Jun 27 17:04:46 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Jul 02 21:32:18 2024 +0000"
      },
      "message": "Add an initial generic eBPF program\n\nCreates a generic BPF that outputs the contents of the pc register\nalong with some argument registers. This program can be enhanced later\nas necessary.\n\nThis change simply logs the contents of the struct returned from the\ngeneric BPF.\n\nBug: Bug: 296108553\nTest: hello_uprobestats -n test_bss_noteEvent\nFlag: NONE UprobeStats does not yet run on devices\nChange-Id: Ia175d3be97c5a29d02f4805f1204d530b89c00ef\n"
    },
    {
      "commit": "d1f8fb9d91d4a00ee99f3d77863405d798dd31c8",
      "tree": "8c11c5e1cb0a5aa5e9f5e01785c9ed21ee59262c",
      "parents": [
        "266eb6d491c7e3d1f908aeb276aa8ef2a4f189ca"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Jun 27 15:49:10 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Jun 28 23:12:11 2024 +0000"
      },
      "message": "Add rpath to libuprobestats_client.\n\nThis allows dlopen to find its dependencies like libbase.\n\nFlagging done in the accompanying statsd change that guards the use\nof libuprobestats_client.\n\nFlag: NONE (see above)\nBug: 332977450\nTest: m\n\nChange-Id: Ief46af3b658867b2aff4f55677009cce3768423d\n"
    },
    {
      "commit": "266eb6d491c7e3d1f908aeb276aa8ef2a4f189ca",
      "tree": "48d3a5f2ce5f5d0351485ec96104334e1b8b5a49",
      "parents": [
        "ca0022cbbe984b0df3e12a409b4a7bd27ac8ffe8"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Jun 05 17:02:17 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Jun 05 19:30:07 2024 +0000"
      },
      "message": "Poll each bpf ring buffer in a separate thread\n\nPreviously, we were just sleeping for N seconds and then iterating\nthrough each map_path to consume the output from the ring buffer. This\nchange consumes the contents in real time by introducing a new bpf\nwrapper utility that calls BpfRingBuf::wait, which uses epoll under the\nhood and returns true as soon as a value is present. We do this in a\nloop for as long as the specified duration hasn\u0027t elapsed.\n\nBug: 296108553\nTest: hello_uprobestats\nChange-Id: Ibea9f4cb8442caee0848a731c8b124088d73e3a2\n"
    },
    {
      "commit": "ca0022cbbe984b0df3e12a409b4a7bd27ac8ffe8",
      "tree": "561019304dcbf31e45dac556d4adf625170b9322",
      "parents": [
        "55a0b941d262a0cdb4197d4127954692a1ac6ed7"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu May 30 22:14:45 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Jun 05 19:29:57 2024 +0000"
      },
      "message": "Use config to determine how long uproebstats runs for\n\nTask config has a duration_seconds field that was previously unused.\nThis change updates UprobeStats to use that field to determine how long\nto run for.\n\nAt the moment we only plan to support single-task configs, so this\nchange also logs an error if anything other than such a config is found,\nand only looks at the first entry if so.\n\nBug: 296108553\nTest: hello_uprobestats (and trigger something that calls `Slog` - log\noutput should show the call being detected)\n\nChange-Id: I7326b20facace676f7ea080cfacc7ea15da19ad6\n"
    },
    {
      "commit": "55a0b941d262a0cdb4197d4127954692a1ac6ed7",
      "tree": "472dfb4b842eb5538047f679a32f9b0e3fa18450",
      "parents": [
        "49b7545a8bb9b5b2c1e4e75278e517c0c1c19e42"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Sun Jun 02 13:34:07 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Jun 05 19:28:18 2024 +0000"
      },
      "message": "Organize `libuprobestats` into namespaces\n\n- `art` for ART related utils (only oatdump for now)\n- `bpf` for BPF\n- `config_resolver` for handling uprobestats configs\n\nBug: 296108553\nTest: hello_uprobestats (trigger a log, see bpf output)\nChange-Id: I68537b3d6d3ef5c502d14a67d5b405237b585f79\n"
    },
    {
      "commit": "49b7545a8bb9b5b2c1e4e75278e517c0c1c19e42",
      "tree": "885c4dd58275942f71dc864df8ede61f55ad0626",
      "parents": [
        "216e6c3beb5bfc33c44a3398c3a1ce8175207433"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu May 09 13:38:50 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu May 09 13:41:46 2024 +0000"
      },
      "message": "Fix: add 4096 (page size) to calculated offset\n\nThis was missing in prior versions, causing unexpected behavior as the\noffset passed to create the uprobe was not at the start of the expected\nmethod.\n\nBug: 296108553\nTest: `hello_uprobestats -t -n test_cm_addCall` (and make a phone call)\nChange-Id: I598a2312a9a9e5ee2d156934305e3af203268273\n"
    },
    {
      "commit": "216e6c3beb5bfc33c44a3398c3a1ce8175207433",
      "tree": "3c3143437103ebacf85838b7fd3c14ebe5c446b6",
      "parents": [
        "c887b253e559792c49a373aa857e95d1b220d65b"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon May 06 19:05:32 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue May 07 18:37:42 2024 +0000"
      },
      "message": "Add test files for various APIs\n\nThis change addes test configuration files for various APIs of interest\nfor anti fraud/social engineering. Mostly related to phone calls, but\nalso media projection and package installation.\n\nBug: 296108553\nTest: hello_uprobestats -n \u003cfile_without_extension\u003e\nChange-Id: I26b301a36f10393957e37a0ed97469bf8e0b611a\n"
    },
    {
      "commit": "c887b253e559792c49a373aa857e95d1b220d65b",
      "tree": "1043c9a51161d3ebbac1d666c78449e3d1e04b83",
      "parents": [
        "7dced0ed48d172758055cc845d4ae55d52ce7d85"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon May 06 20:22:24 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon May 06 20:42:38 2024 +0000"
      },
      "message": "Fix hello_uprobestats to use resources/tempfiles properly\n\n- Makes the util work in a stable manner across versions of\n  the build system and differences between developer machines.\n- Also tweaks the command line arguments a bit for simplicity.\n\nBug: 296108553\nTest: m hello_uprobestats \u0026\u0026 hello_uprobestats\nChange-Id: Ib7f6d89bff126bd1bcd5a10c128a397499b4b5c2\n"
    },
    {
      "commit": "7dced0ed48d172758055cc845d4ae55d52ce7d85",
      "tree": "581ccde4b6003fc2a4dabeb7bcfe0c63bf199707",
      "parents": [
        "f09c766b1752a12d3107935dfbb4fc6ce8d59aa3"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon May 06 20:37:53 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon May 06 20:42:12 2024 +0000"
      },
      "message": "Add some additional logging to UprobeStats\n\n- the config that is about to be used to register a bpf\n- the map_path that ring buffer data is coming from\n\nBug: 296108553\nTest: hello_uprobestats\nChange-Id: I02c44ea58480e6c47a5f181ca0de8820e1a646a6\n"
    },
    {
      "commit": "f09c766b1752a12d3107935dfbb4fc6ce8d59aa3",
      "tree": "b102a9e5bbc254583b5b5ba05f63772f2d5d3e8e",
      "parents": [
        "4c53def2887912c01ee1479a7be24f9984705a51"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Apr 17 13:57:28 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Apr 17 14:00:59 2024 +0000"
      },
      "message": "Add `bpf_map` field to uprobestats config\n\nCreating a uprobe requires both an eBPF program and a mapping for that\nprogram to read/write to. Add this data as an explicit field in the task\nconfig.\n\nBug: 296108553\nTest: Test: m hello_uprobestats \u0026\u0026 hello_uprobestats -i 10\nChange-Id: Iddad5c04da1ce9c2f30ad937817db6adfae4af9a\n"
    },
    {
      "commit": "4c53def2887912c01ee1479a7be24f9984705a51",
      "tree": "50ef5e687ec7fc79d4f64f575f91d99027ea7f94",
      "parents": [
        "5fd22ed79c8433c3f456feed33e3e4af123e158a"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Apr 10 20:14:43 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Apr 10 20:14:43 2024 +0000"
      },
      "message": "Add mattgilbride@google.com and haok@google.com to OWNERS\n\nBug: 296108553\nTest: TH\nChange-Id: I92a532d2031e0a997cabab03f8f825a84eaa9e11\n"
    },
    {
      "commit": "5fd22ed79c8433c3f456feed33e3e4af123e158a",
      "tree": "0d70e18793c8e4bce019b9217c0bc27e4e4b999d",
      "parents": [
        "5e785ef9241d1447b26dce7b9fa3ce4f776b000b"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon Mar 25 16:04:29 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Wed Apr 10 20:13:58 2024 +0000"
      },
      "message": "Use proto config and get offset from oatdump\n\nReads from proto config and oatdump output,\nand calls `bpfPerfEventOpen` for each set of\nconfig values.\n\nTest: m hello_uprobestats \u0026\u0026 hello_uprobestats -i 10\nBug: 296108553\nChange-Id: I40376f141cba126ff408e2cde3c2a5bc57520fce\n"
    },
    {
      "commit": "5e785ef9241d1447b26dce7b9fa3ce4f776b000b",
      "tree": "eeeba2784075b78d154ac28860d4a242fc76c669",
      "parents": [
        "9e8a3db597407601af86ca7b99d9b82e0b1184fa"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Mon Mar 25 15:33:32 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Tue Apr 09 17:22:45 2024 +0000"
      },
      "message": "Add rudimentary python script to test uprobestats\n\n`hello_uprobestats` is intended to be run while connected\nto a physical device with uprobestatas turned on.\n\nIt simply runs some adb commands to configure a probe\nand then greps for some logcat output to check if things\nappear to be working properly.\n\nBug: 296108553\nTest: m hello_uprobestats \u0026\u0026 hello_uprobestats\nChange-Id: Iae3d7277a15ad8347923153d5975ecadd1a1a6d1\n"
    },
    {
      "commit": "9e8a3db597407601af86ca7b99d9b82e0b1184fa",
      "tree": "ed5bc364be5ec0950dbdfd916b5d1002ecf26ec7",
      "parents": [
        "3c1f20a9dde83f53e72cdeff034b0f380c74ff8a",
        "1b10a3d0b6dbb5fe1885cc89ec9ce476d5ceea46"
      ],
      "author": {
        "name": "Yu Liu",
        "email": "yudiliu@google.com",
        "time": "Thu Mar 28 19:32:33 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 19:32:33 2024 +0000"
      },
      "message": "Merge \"Add missing aconfig container field to packages/modules/UprobeStats/src\" into main"
    },
    {
      "commit": "1b10a3d0b6dbb5fe1885cc89ec9ce476d5ceea46",
      "tree": "33dff0534e66603fcdf2f03d8287783cb06322d6",
      "parents": [
        "3e84a3ec1788658c359a6382f4cec4b663cacfdc"
      ],
      "author": {
        "name": "Yu Liu",
        "email": "yudiliu@google.com",
        "time": "Wed Mar 27 23:59:21 2024 +0000"
      },
      "committer": {
        "name": "Yu Liu",
        "email": "yudiliu@google.com",
        "time": "Wed Mar 27 23:59:21 2024 +0000"
      },
      "message": "Add missing aconfig container field to packages/modules/UprobeStats/src\n\nBug: 330354107\nTest: CI\n\nFlag: NONE\n\nIgnore-AOSP-First: It is easier to detect all the mismatch in internal\nmaster.\n\nChange-Id: Idcb201462693acaf29eb208a52294a82dee5d96e\n"
    },
    {
      "commit": "3c1f20a9dde83f53e72cdeff034b0f380c74ff8a",
      "tree": "938eae84b4f7c77d0d0fc9d092452a56e6d22a03",
      "parents": [
        "1fe33489b7fc4366815e2cbfc2e910874242b36a",
        "75c8fd3a1d037f2c29d992e00d009667e7f70141"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Mar 22 15:58:15 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 15:58:15 2024 +0000"
      },
      "message": "Merge \"Update AUprobestatsClient_startUprobestats comment.\" into main"
    },
    {
      "commit": "75c8fd3a1d037f2c29d992e00d009667e7f70141",
      "tree": "88ea248d569ff963ad8db077a69c01224116e64d",
      "parents": [
        "3e84a3ec1788658c359a6382f4cec4b663cacfdc"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Mar 21 14:26:55 2024 -0700"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Mar 21 14:28:23 2024 -0700"
      },
      "message": "Update AUprobestatsClient_startUprobestats comment.\n\nUpdate the API comment to describe the format of the \u003cconfig\u003e argument.\n\nBug: 326096555\nTest: m libuprobestats_client\nChange-Id: Ic161603ad9f24ead58143bab5aac9d34c376b3c9\n"
    },
    {
      "commit": "1fe33489b7fc4366815e2cbfc2e910874242b36a",
      "tree": "bacb041990857b021d4db03ab0de01fdc7889c6c",
      "parents": [
        "3e84a3ec1788658c359a6382f4cec4b663cacfdc"
      ],
      "author": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu Mar 21 19:50:39 2024 +0000"
      },
      "committer": {
        "name": "Matt Gilbride",
        "email": "mattgilbride@google.com",
        "time": "Thu Mar 21 19:54:47 2024 +0000"
      },
      "message": "Add PREUPLOAD.cfg to format c sources\n\nTest: manually (create a commit after this one)\nBug: 296108553\nChange-Id: Iecbfee79174d9d345b45edd78c6b9b17e75f646d\n"
    },
    {
      "commit": "3e84a3ec1788658c359a6382f4cec4b663cacfdc",
      "tree": "386d72e7a5d1d6c13e0c45724736eacae85dfcdb",
      "parents": [
        "7d55f45c7e1dd25ca26c68f7171f5a36b6ccb9af"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Mon Mar 04 13:04:04 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Mar 05 10:57:28 2024 -0800"
      },
      "message": "Disable uprobestats on user build.\n\nBug: 296108553\nTest: m uprobestats\nChange-Id: I8a70b4f5aa961e168c2d279a76d9904b6ddd70a7\n"
    },
    {
      "commit": "7d55f45c7e1dd25ca26c68f7171f5a36b6ccb9af",
      "tree": "39d75cdcdce60d107c281a9c9be5549170a7a99e",
      "parents": [
        "46c296c20f21ed8fd012a8fc7429ceec1457dd03",
        "8ff9b93c115bd4226ac8f37786fecfb7b3a6d3d0"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Mon Mar 04 19:03:41 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 04 19:03:41 2024 +0000"
      },
      "message": "Merge \"Add UprobestatsConfig protobuf definition.\" into main"
    },
    {
      "commit": "46c296c20f21ed8fd012a8fc7429ceec1457dd03",
      "tree": "9f2192be2f797a63e35c4ee8638934706687336d",
      "parents": [
        "3f3b6377a5bbefc57720503b6e9e0a2098a51965"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Feb 23 16:03:41 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Feb 23 16:57:47 2024 -0800"
      },
      "message": "Guard uprobestats behind a flag.\n\nTest: m uprobestats\nBug: 296108553\nChange-Id: I712692484112fb8a99727b144afc8cf3aed7f77b\n"
    },
    {
      "commit": "8ff9b93c115bd4226ac8f37786fecfb7b3a6d3d0",
      "tree": "776a2e0f34a2510f98d62a3e873a4c31b668f50d",
      "parents": [
        "3f3b6377a5bbefc57720503b6e9e0a2098a51965"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Feb 15 16:53:48 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Feb 23 16:23:17 2024 -0800"
      },
      "message": "Add UprobestatsConfig protobuf definition.\n\nTest: m libuprobestats uprobestats\nBug: 296108553\nChange-Id: I1d0f0d024e4d64d26dfac386883ed8ada7e2990d\n"
    },
    {
      "commit": "3f3b6377a5bbefc57720503b6e9e0a2098a51965",
      "tree": "886e8466a98e3652e2c8a0c8818670630b09792d",
      "parents": [
        "92d61cfe3b1885a3acfefb3ba9fbee19435d1097"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Fri Feb 09 11:54:54 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Feb 13 13:53:49 2024 -0800"
      },
      "message": "Add a uprobestats native API / shared library.\n\nTest: m libuprobestats_client\nBug: 296108553\nChange-Id: I1bce48328ff41f64f51841049c42c23eec88b8ad\n"
    },
    {
      "commit": "92d61cfe3b1885a3acfefb3ba9fbee19435d1097",
      "tree": "f1aecd7e5ecfed26527b83c1c6cccb7e04057d4a",
      "parents": [
        "2cc6f1a5fd627c0a736fce780d50def0140aa0a7"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Mon Jan 22 13:10:56 2024 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Wed Jan 24 09:59:56 2024 -0800"
      },
      "message": "Use AID_UPROBESTATS and include BPF in build.\n\nAlsos fix a bug in config parsing.\n\nTest: m \u0026\u0026 ./vendor/google/tools/flashall \u0026\u0026\n  adb root \u0026\u0026\n  adb shell \"echo /system/lib64/libhwui.so \u003coffset\u003e \u003e /data/misc/uprobestats-configs/config\" \u0026\u0026\n  adb shell setprop uprobestats.start_with_config config\nBug: 296108553\nChange-Id: I8ac284b09457565caeac7612407b3e1366305250\n"
    },
    {
      "commit": "2cc6f1a5fd627c0a736fce780d50def0140aa0a7",
      "tree": "dac8adb1f6f5379d87a3508d8c496aa842cccdc5",
      "parents": [
        "ccc711324adda6f07be0f98e04603a3138aa37ce"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Mon Dec 18 14:24:34 2023 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Thu Jan 18 16:17:53 2024 -0800"
      },
      "message": "Check in a bare minimum uprobestats program.\n\nThis also depends on aosp/2907041.\n\nTest: m uprobestats BitmapAllocation.o \u0026\u0026\n  adb remount \u0026\u0026 adb sync \u0026\u0026 adb reboot \u0026\u0026 adb root \u0026\u0026\n  adb shell \"echo /system/lib64/libhwui.so 2655376 \u003e /data/misc/uprobestats-configs/config\" \u0026\u0026\n  adb shell chcon u:object_r:uprobestats_configs_data_file:s0 /data/misc/uprobestats-configs \u0026\u0026\n  adb shell setprop uprobestats.start_with_config config\nBug: 296108553\nChange-Id: I3ac8300df7592d475a5b50d5f239a6f72177543e\n"
    },
    {
      "commit": "ccc711324adda6f07be0f98e04603a3138aa37ce",
      "tree": "43c0906601127e2adb28fc9ce0bd49ce74436342",
      "parents": [
        "24b450715048b836ac20a251cfe4597b53f1f156"
      ],
      "author": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Dec 12 10:49:18 2023 -0800"
      },
      "committer": {
        "name": "Yu-Ting Tseng",
        "email": "yutingtseng@google.com",
        "time": "Tue Dec 12 10:50:15 2023 -0800"
      },
      "message": "Add an OWNER file to packages/modules/UprobeStats.\n\nTest: m\nChange-Id: I64246e0954c386baccf20a34e57fe9a03fe2d338\n"
    },
    {
      "commit": "24b450715048b836ac20a251cfe4597b53f1f156",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "Frank Piva",
        "email": "pivaf@google.com",
        "time": "Wed Dec 06 19:37:12 2023 +0000"
      },
      "committer": {
        "name": "Frank Piva",
        "email": "pivaf@google.com",
        "time": "Wed Dec 06 19:37:12 2023 +0000"
      },
      "message": "Initial empty repository\n"
    }
  ]
}
