Add `DynamicInstrumentationManagerService`

Adds a new service with a single operation
`getExecutableMethodFileOffsets`. The operation allows the caller to
fetch information about the native executable of a given method. The
operation's access control is limited to the UprobeStats module.

Given a method in the form of fully qualified class name, method
name, and fully qualified parameter list, the operation returns
information from the ODEX file associated with that method. If the
method isn't precompiled, the operation returns null.
However, ART can be enhanced to support returning information about
JIT compiled methods in the future.

Bug: 372925025
Test: DynamicInstrumentationManagerServiceTests, ExecutableMethodFileOffsetsTest
Flag: com.android.art.flags.executable_method_file_offsets
Change-Id: I1f2dc3780d1bd2a682c1fd3ec41e5c8d73e96fc2
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index 2c8c261..bacdec1 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -957,6 +957,9 @@
     <!-- Permission required for CTS test - CtsTelephonyTestCases -->
     <uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE" />
 
+    <!-- Permission required for ExecutableMethodFileOffsetsTest -->
+    <uses-permission android:name="android.permission.DYNAMIC_INSTRUMENTATION" />
+
     <application
         android:label="@string/app_label"
         android:theme="@android:style/Theme.DeviceDefault.DayNight"