Remove PackageManager.getResourcesForApplicationAsUser API

To switch another user to do something should create the context of the
specified user by using Context.createContextAsUser rather than call
*AsUser API directly.

Test: croot ; make RunSettingsLibRoboTests -j40
Test: make -j droid cts gts vts
Test: make -j docs
Test: atest SystemUITests \
    FrameworksServicesTests:com.android.server.pm
Bug: 170928809
Change-Id: I369a3cf0a9dca1496b57675f4fa8e3fb1da982f3
This commit is contained in:
Felka Chang
2020-09-08 20:58:50 +08:00
parent faf7e4a05b
commit c2d86618e9

View File

@@ -129,10 +129,14 @@ public class SettingsInjector {
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "Found services for profile id " + profileId + ": " + resolveInfos);
}
final PackageManager userPackageManager = mContext.createContextAsUser(
userHandle, /* flags */ 0).getPackageManager();
List<InjectedSetting> settings = new ArrayList<InjectedSetting>(resolveInfos.size());
for (ResolveInfo resolveInfo : resolveInfos) {
try {
InjectedSetting setting = parseServiceInfo(resolveInfo, userHandle, pm);
InjectedSetting setting = parseServiceInfo(resolveInfo, userHandle,
userPackageManager);
if (setting == null) {
Log.w(TAG, "Unable to load service info " + resolveInfo);
} else {
@@ -248,8 +252,7 @@ public class SettingsInjector {
+ SettingInjectorService.ATTRIBUTES_NAME + " tag");
}
Resources res = pm.getResourcesForApplicationAsUser(si.packageName,
userHandle.getIdentifier());
Resources res = pm.getResourcesForApplication(si.packageName);
return parseAttributes(si.packageName, si.name, userHandle, res, attrs);
} catch (PackageManager.NameNotFoundException e) {
throw new XmlPullParserException(