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
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user