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
      cf9e5123ce
 [2]: I26a872f07ab13931c241cbb02ff7228edf7dc3b9
      71463a4cb1

Bug: 204904070
Bug: 237316307
Test: presubmit
Change-Id: Ia41be32333a668cbf112ba7394bcca8c8ba7db6a
This commit is contained in:
Yohei Yukawa
2022-07-27 07:52:28 +09:00
parent a8f475137c
commit f033a75cf5

View File

@@ -105,7 +105,10 @@ interface IInputMethodManager {
/** 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.