Merge "Add a null check for the result of nullable API." into udc-dev

This commit is contained in:
Alex Buynytskyy
2023-06-07 14:46:21 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 6 deletions

View File

@@ -3714,11 +3714,16 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
if (parser.getName().equals(TAG_PERMISSIONS)) {
final LegacyPermissionState legacyState;
if (ps.hasSharedUser()) {
legacyState = getSettingLPr(ps.getSharedUserAppId()).getLegacyPermissionState();
final SettingBase sharedUserSettings = getSettingLPr(
ps.getSharedUserAppId());
legacyState = sharedUserSettings != null
? sharedUserSettings.getLegacyPermissionState() : null;
} else {
legacyState = ps.getLegacyPermissionState();
}
readInstallPermissionsLPr(parser, legacyState, users);
if (legacyState != null) {
readInstallPermissionsLPr(parser, legacyState, users);
}
} else if (parser.getName().equals(TAG_USES_STATIC_LIB)) {
readUsesStaticLibLPw(parser, ps);
} else if (parser.getName().equals(TAG_USES_SDK_LIB)) {

View File

@@ -141,6 +141,7 @@ import com.android.server.pm.parsing.pkg.AndroidPackageUtils;
import com.android.server.pm.pkg.AndroidPackage;
import com.android.server.pm.pkg.PackageState;
import com.android.server.pm.pkg.PackageStateInternal;
import com.android.server.pm.pkg.SharedUserApi;
import com.android.server.pm.pkg.component.ComponentMutateUtils;
import com.android.server.pm.pkg.component.ParsedPermission;
import com.android.server.pm.pkg.component.ParsedPermissionGroup;
@@ -4538,8 +4539,13 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
final int appId = ps.getAppId();
final LegacyPermissionState legacyState;
if (ps.hasSharedUser()) {
legacyState = mPackageManagerInt.getSharedUserApi(
ps.getSharedUserAppId()).getSharedUserLegacyPermissionState();
final int sharedUserId = ps.getSharedUserAppId();
SharedUserApi sharedUserApi = mPackageManagerInt.getSharedUserApi(sharedUserId);
if (sharedUserApi == null) {
Slog.wtf(TAG, "Missing shared user Api for " + sharedUserId);
return;
}
legacyState = sharedUserApi.getSharedUserLegacyPermissionState();
} else {
legacyState = ps.getLegacyPermissionState();
}
@@ -4584,8 +4590,13 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
ps.setInstallPermissionsFixed(false);
final LegacyPermissionState legacyState;
if (ps.hasSharedUser()) {
legacyState = mPackageManagerInt.getSharedUserApi(
ps.getSharedUserAppId()).getSharedUserLegacyPermissionState();
final int sharedUserId = ps.getSharedUserAppId();
SharedUserApi sharedUserApi = mPackageManagerInt.getSharedUserApi(sharedUserId);
if (sharedUserApi == null) {
Slog.wtf(TAG, "Missing shared user Api for " + sharedUserId);
return;
}
legacyState = sharedUserApi.getSharedUserLegacyPermissionState();
} else {
legacyState = ps.getLegacyPermissionState();
}