Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02df328f authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Report EditorInfo#packageName based on the actual uid.

This is a follow up CL for Ib871141e3381e45c2623c5f4d692da7a7e78fcc5,
which introduced a verification mechanism between the applicaiton uid
and EditorInfo#packageName reported from the application by using
AppOpsManager#checkPackage.

Regression Bug 21408239 caused by above change is really similar to
the situation we saw in Bug 10688644.  As well explained in the CL
description of Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25, the
system has a special ability to run in the processes of other uids.
Hence we need to use Context#getOpPackageName() instead of
Context#getPackageName() in case components declared by the system
is loaded into another process.

Bug: 18931038
Bug: 21408239
Change-Id: I78510a2ea6ac06cfd5813a23c42f09f70c468493
parent c52e0d90
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1169,7 +1169,10 @@ public final class InputMethodManager {
        // do its stuff.
        // Life is good: let's hook everything up!
        EditorInfo tba = new EditorInfo();
        tba.packageName = view.getContext().getPackageName();
        // Note: Use Context#getOpPackageName() rather than Context#getPackageName() so that the
        // system can verify the consistency between the uid of this process and package name passed
        // from here. See comment of Context#getOpPackageName() for details.
        tba.packageName = view.getContext().getOpPackageName();
        tba.fieldId = view.getId();
        InputConnection ic = view.onCreateInputConnection(tba);
        if (DEBUG) Log.v(TAG, "Starting input: tba=" + tba + " ic=" + ic);