DO NOT MERGE Ensure package names read from config are system packages.
Bug: 145981139
Test: manually tested ensureSystemPackageName() returns null for non-system app
Change-Id: I1d23910cbd282f6702785c9dfb059d7be6b0e895
Merged-In: I1d23910cbd282f6702785c9dfb059d7be6b0e895
Merged-In: I86c6bfc0a6e28e634e0fd201e424b7ee6882ba2c
Merged-In: I5883e296a0d753e43075cbf0abc5dc4da91e2fca
(cherry picked from commit 6a56247200)
This commit is contained in:
@@ -3114,8 +3114,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
|
||||
mWellbeingPackage = getWellbeingPackageName();
|
||||
mDocumenterPackage = getDocumenterPackageName();
|
||||
mConfiguratorPackage =
|
||||
mContext.getString(R.string.config_deviceConfiguratorPackageName);
|
||||
mConfiguratorPackage = getDeviceConfiguratorPackageName();
|
||||
mAppPredictionServicePackage = getAppPredictionServicePackageName();
|
||||
mIncidentReportApproverPackage = getIncidentReportApproverPackageName();
|
||||
|
||||
@@ -21109,7 +21108,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
|
||||
@Override
|
||||
public String getSystemTextClassifierPackageName() {
|
||||
return mContext.getString(R.string.config_defaultTextClassifierPackage);
|
||||
return ensureSystemPackageName(mContext.getString(
|
||||
R.string.config_defaultTextClassifierPackage));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -21119,7 +21119,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
if (flattenedComponentName != null) {
|
||||
ComponentName componentName = ComponentName.unflattenFromString(flattenedComponentName);
|
||||
if (componentName != null && componentName.getPackageName() != null) {
|
||||
return componentName.getPackageName();
|
||||
return ensureSystemPackageName(componentName.getPackageName());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@@ -21144,9 +21144,15 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getDeviceConfiguratorPackageName() {
|
||||
return ensureSystemPackageName(mContext.getString(
|
||||
R.string.config_deviceConfiguratorPackageName));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getWellbeingPackageName() {
|
||||
return mContext.getString(R.string.config_defaultWellbeingPackage);
|
||||
return ensureSystemPackageName(mContext.getString(R.string.config_defaultWellbeingPackage));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -21161,7 +21167,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
if (appPredictionServiceComponentName == null) {
|
||||
return null;
|
||||
}
|
||||
return appPredictionServiceComponentName.getPackageName();
|
||||
return ensureSystemPackageName(appPredictionServiceComponentName.getPackageName());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -21178,11 +21184,33 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
if (systemCaptionsServiceComponentName == null) {
|
||||
return null;
|
||||
}
|
||||
return systemCaptionsServiceComponentName.getPackageName();
|
||||
return ensureSystemPackageName(systemCaptionsServiceComponentName.getPackageName());
|
||||
}
|
||||
|
||||
public String getIncidentReportApproverPackageName() {
|
||||
return mContext.getString(R.string.config_incidentReportApproverPackage);
|
||||
return ensureSystemPackageName(mContext.getString(
|
||||
R.string.config_incidentReportApproverPackage));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String ensureSystemPackageName(@Nullable String packageName) {
|
||||
if (packageName == null) {
|
||||
return null;
|
||||
}
|
||||
long token = Binder.clearCallingIdentity();
|
||||
try {
|
||||
if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) {
|
||||
PackageInfo packageInfo = getPackageInfo(packageName, 0, UserHandle.USER_SYSTEM);
|
||||
if (packageInfo != null) {
|
||||
EventLog.writeEvent(0x534e4554, "145981139", packageInfo.applicationInfo.uid,
|
||||
"");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(token);
|
||||
}
|
||||
return packageName;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user