)]}'
{
  "commit": "ae83ac248f092bf899e675aaa4e04d2ac375e498",
  "tree": "fcc4253fbd1341498e267c27f46f2799ecd5751d",
  "parents": [
    "793c88f2313f2989dbfb03389f136b8f9a29d5a8"
  ],
  "author": {
    "name": "Matt Gilbride",
    "email": "mattgilbride@google.com",
    "time": "Tue Sep 24 22:48:38 2024 +0000"
  },
  "committer": {
    "name": "Matt Gilbride",
    "email": "mattgilbride@google.com",
    "time": "Thu Nov 07 15:43:24 2024 +0000"
  },
  "message": "Add `DynamicInstrumentationManagerService`\n\nAdds a new service with a single operation\n`getExecutableMethodFileOffsets`. The operation allows the caller to\nfetch information about the native executable of a given method. The\noperation\u0027s access control is limited to the UprobeStats module.\n\nGiven a method in the form of fully qualified class name, method\nname, and fully qualified parameter list, the operation returns\ninformation from the ODEX file associated with that method. If the\nmethod isn\u0027t precompiled, the operation returns null.\nHowever, ART can be enhanced to support returning information about\nJIT compiled methods in the future.\n\nBug: 372925025\nTest: DynamicInstrumentationManagerServiceTests, ExecutableMethodFileOffsetsTest\nFlag: com.android.art.flags.executable_method_file_offsets\nChange-Id: I1f2dc3780d1bd2a682c1fd3ec41e5c8d73e96fc2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "26d0d65f329ca4a1db3591be6b20c17f1a0a8f68",
      "old_mode": 33188,
      "old_path": "Android.bp",
      "new_id": "2024c8afb5be88592c3d9f202b64b023119b1d20",
      "new_mode": 33188,
      "new_path": "Android.bp"
    },
    {
      "type": "modify",
      "old_id": "2a01ca0828329ab6856d6fd65914b4924278cb0f",
      "old_mode": 33188,
      "old_path": "core/api/system-current.txt",
      "new_id": "2535d2dda003f4e64d9fe19149c5e34530c7b1b1",
      "new_mode": 33188,
      "new_path": "core/api/system-current.txt"
    },
    {
      "type": "modify",
      "old_id": "9875efe043619cc0114dec3829b9f71c57a56bfa",
      "old_mode": 33188,
      "old_path": "core/java/Android.bp",
      "new_id": "81ed11ae9af09924d2b88c70dcff179b3ab1822a",
      "new_mode": 33188,
      "new_path": "core/java/Android.bp"
    },
    {
      "type": "modify",
      "old_id": "186f7b3e111c64196a20450cb2f78c3fa5ec51cb",
      "old_mode": 33188,
      "old_path": "core/java/android/content/Context.java",
      "new_id": "6086f2455a31200054c7fedbc4060321c3b1d74a",
      "new_mode": 33188,
      "new_path": "core/java/android/content/Context.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dbe54891b0f2e4f2ce2e0985e8d78a15b61c98f6",
      "new_mode": 33188,
      "new_path": "core/java/android/os/instrumentation/ExecutableMethodFileOffsets.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c45c51d15cc96a61483c5e68ebbc73d12a166809",
      "new_mode": 33188,
      "new_path": "core/java/android/os/instrumentation/IDynamicInstrumentationManager.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "055d0ecb66e4f625dfdb62efed46577627e7f09a",
      "new_mode": 33188,
      "new_path": "core/java/android/os/instrumentation/MethodDescriptor.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e90780d07ef21b21eef7dd7497f56cb4d239be4c",
      "new_mode": 33188,
      "new_path": "core/java/android/os/instrumentation/TargetProcess.aidl"
    },
    {
      "type": "modify",
      "old_id": "66c2e12f7cdfae42fb671286e1e78fec426bedbe",
      "old_mode": 33188,
      "old_path": "core/res/Android.bp",
      "new_id": "cdf88f7ee33ce02173cda4efcd10018601ef699c",
      "new_mode": 33188,
      "new_path": "core/res/Android.bp"
    },
    {
      "type": "modify",
      "old_id": "5913992004b8ffd0f7511dece9554199a0f1026b",
      "old_mode": 33188,
      "old_path": "core/res/AndroidManifest.xml",
      "new_id": "a79ad4aa4b896709b0e11a439bf8fdd09406fa18",
      "new_mode": 33188,
      "new_path": "core/res/AndroidManifest.xml"
    },
    {
      "type": "modify",
      "old_id": "7b96699f7f71553d6035b497d19192e754209804",
      "old_mode": 33188,
      "old_path": "data/etc/platform.xml",
      "new_id": "857df1038df1cb0f6ed9e4c8f5ee3e7b4a715a18",
      "new_mode": 33188,
      "new_path": "data/etc/platform.xml"
    },
    {
      "type": "modify",
      "old_id": "3eb99c3387f72dc9151ffdb693cf62cac7c943cd",
      "old_mode": 33188,
      "old_path": "native/android/Android.bp",
      "new_id": "da29c49f9d7b575d1d06a2d2619874281a3b371b",
      "new_mode": 33188,
      "new_path": "native/android/Android.bp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d9bacb116f9696390efe009b8dccec34268e580e",
      "new_mode": 33188,
      "new_path": "native/android/dynamic_instrumentation_manager.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c46288954bf6aee1caeaf5000348d164403ca6d",
      "new_mode": 33188,
      "new_path": "native/android/include_platform/android/dynamic_instrumentation_manager.h"
    },
    {
      "type": "modify",
      "old_id": "b025cb880ee7eaec15e6894d393d33d301e2deb2",
      "old_mode": 33188,
      "old_path": "native/android/libandroid.map.txt",
      "new_id": "a0460572abfcf3bded417c8aa8687d4cee93fd64",
      "new_mode": 33188,
      "new_path": "native/android/libandroid.map.txt"
    },
    {
      "type": "modify",
      "old_id": "2c8c261fa8f84a63a81c131f4dd368f18adbddf2",
      "old_mode": 33188,
      "old_path": "packages/Shell/AndroidManifest.xml",
      "new_id": "bacdec100890f742474ecbf17ae2e54cde218b0d",
      "new_mode": 33188,
      "new_path": "packages/Shell/AndroidManifest.xml"
    },
    {
      "type": "modify",
      "old_id": "6cfd44bb2d1a41dde253ebd201d4b13ab7837928",
      "old_mode": 33188,
      "old_path": "services/core/Android.bp",
      "new_id": "b4d58806b5d815db66f08203de11733afcc09df6",
      "new_mode": 33188,
      "new_path": "services/core/Android.bp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8ec716077f460965ca2d0ab73b0bcb11bafaa8d7",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/os/instrumentation/DynamicInstrumentationManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "3805c02d1bb97b5788cb3139ff0a1dcdcb6fb1c3",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/SystemServer.java",
      "new_id": "221b8481a30cef98e01f0f5328453abb0582249b",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/SystemServer.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c2e5fdb68d969eb684afa7861ef2c43f130785a",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/Android.bp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4913d706a72d9cc749ca868ce0fc78e076e4dff9",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/AndroidManifest.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "33defed0eae664506dd70bd3d5070a38a1e4c9a9",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/TEST_MAPPING"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04073fab2059d881716115198000afa4343b2c26",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/src/com/android/server/TestAbstractClass.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c25e7a52f736136b15f349bc1588238133245d5",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/src/com/android/server/TestAbstractClassImpl.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "085f5953f0e5d50880e216f572b39e6944737af3",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/src/com/android/server/TestClass.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7af4f254ab1c9819b0f668b93ad9b902099f4660",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/src/com/android/server/TestInterface.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "53aecbc08939ee446544a4fc617078208c41a85a",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/src/com/android/server/TestInterfaceImpl.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5492ba6b9dd1d2bc777b84803ace80dd2ca6d483",
      "new_mode": 33188,
      "new_path": "services/tests/DynamicInstrumentationManagerServiceTests/src/com/android/server/os/instrumentation/ParseMethodDescriptorTest.java"
    }
  ]
}
