Merge "Catch NameNotFoundException during onPackageModified" into tm-qpr-dev am: a84c7a7b5f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20091660

Change-Id: Ica336ac33419c681f3d6320ddaa94fc336da30a5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Guojing Yuan
2022-10-04 21:09:51 +00:00
committed by Automerger Merge Worker
2 changed files with 13 additions and 3 deletions

View File

@@ -1152,6 +1152,9 @@ public class CompanionDeviceManagerService extends SystemService {
} }
private void updateSpecialAccessPermissionAsSystem(PackageInfo packageInfo) { private void updateSpecialAccessPermissionAsSystem(PackageInfo packageInfo) {
if (packageInfo == null) {
return;
}
if (containsEither(packageInfo.requestedPermissions, if (containsEither(packageInfo.requestedPermissions,
android.Manifest.permission.RUN_IN_BACKGROUND, android.Manifest.permission.RUN_IN_BACKGROUND,
android.Manifest.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND)) { android.Manifest.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND)) {

View File

@@ -54,12 +54,19 @@ final class PackageUtils {
private static final String PROPERTY_PRIMARY_TAG = private static final String PROPERTY_PRIMARY_TAG =
"android.companion.PROPERTY_PRIMARY_COMPANION_DEVICE_SERVICE"; "android.companion.PROPERTY_PRIMARY_COMPANION_DEVICE_SERVICE";
static @Nullable PackageInfo getPackageInfo(@NonNull Context context, @Nullable
static PackageInfo getPackageInfo(@NonNull Context context,
@UserIdInt int userId, @NonNull String packageName) { @UserIdInt int userId, @NonNull String packageName) {
final PackageManager pm = context.getPackageManager(); final PackageManager pm = context.getPackageManager();
final PackageInfoFlags flags = PackageInfoFlags.of(GET_PERMISSIONS | GET_CONFIGURATIONS); final PackageInfoFlags flags = PackageInfoFlags.of(GET_PERMISSIONS | GET_CONFIGURATIONS);
return Binder.withCleanCallingIdentity(() -> return Binder.withCleanCallingIdentity(() -> {
pm.getPackageInfoAsUser(packageName, flags , userId)); try {
return pm.getPackageInfoAsUser(packageName, flags, userId);
} catch (PackageManager.NameNotFoundException e) {
Slog.e(TAG, "Package [" + packageName + "] is not found.");
return null;
}
});
} }
static void enforceUsesCompanionDeviceFeature(@NonNull Context context, static void enforceUsesCompanionDeviceFeature(@NonNull Context context,