Add @RequiresNoPermission to IInputMethodManager#startProtoDump()
This is a follow up CL to our previous CL [1], which introduced
IInputMethodManager#startProtoDump()
so that IME client process can upload its own IME tracing dump data
to InputMethodManagerService.
One may notice that there is no permission / caller verification in
InputMethodManagerService#startProtoDump(),
but the absence of a permission check there is by design. We need
unprivileged app processes to be able to send that tracing data. To
make it clear in the AIDL file, this CL adds @RequiresNoPermission to
that IPC method.
The annotation is basically for errorprone check [2]. There should be
no observable behavior change at the run time.
[1]: Ia89f11d5ef8a220ea7746191b18769cea5a8359d
cf9e5123ce04dfe1d03b942a6a5632ca1b9b27fd
[2]: I26a872f07ab13931c241cbb02ff7228edf7dc3b9
71463a4cb133c1344ab0921561e11b7d5565e617
Bug: 204904070
Bug: 237316307
Test: presubmit
Change-Id: Ia41be32333a668cbf112ba7394bcca8c8ba7db6a
diff --git a/core/java/com/android/internal/view/IInputMethodManager.aidl b/core/java/com/android/internal/view/IInputMethodManager.aidl
index 1f36c9c..cbfa0e2 100644
--- a/core/java/com/android/internal/view/IInputMethodManager.aidl
+++ b/core/java/com/android/internal/view/IInputMethodManager.aidl
@@ -105,7 +105,10 @@
/** Remove the IME surface. Requires passing the currently focused window. */
oneway void removeImeSurfaceFromWindowAsync(in IBinder windowToken);
+
+ @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
void startProtoDump(in byte[] protoDump, int source, String where);
+
boolean isImeTraceEnabled();
// Starts an ime trace.