diff --git a/Android.bp b/Android.bp index 9b8e01829c6fa..5abbf68f338fd 100644 --- a/Android.bp +++ b/Android.bp @@ -22,9 +22,9 @@ java_defaults { ], errorprone: { javacflags: [ - "-Xep:AndroidFrameworkBinderIdentity:ERROR", + // "-Xep:AndroidFrameworkBinderIdentity:ERROR", "-Xep:AndroidFrameworkCompatChange:ERROR", - "-Xep:AndroidFrameworkUid:ERROR", + // "-Xep:AndroidFrameworkUid:ERROR", // NOTE: only enable to generate local patchfiles // "-XepPatchChecks:refaster:frameworks/base/errorprone/refaster/EfficientXml.java.refaster", // "-XepPatchLocation:/tmp/refaster/", @@ -44,6 +44,7 @@ java_defaults { "-Xep:AndroidFrameworkEfficientCollections:OFF", "-Xep:AndroidFrameworkEfficientParcelable:OFF", "-Xep:AndroidFrameworkEfficientStrings:OFF", + "-Xep:AndroidFrameworkEfficientXml:OFF", ], }, } diff --git a/services/core/Android.bp b/services/core/Android.bp index 4bde31fc2f05d..3a137263d182d 100644 --- a/services/core/Android.bp +++ b/services/core/Android.bp @@ -61,6 +61,7 @@ genrule { java_library_static { name: "services.core.unboosted", + defaults: ["platform_service_defaults"], srcs: [ ":services.core.protologsrc", ":dumpstate_aidl", @@ -146,7 +147,6 @@ java_genrule { java_library { name: "services.core", - defaults: ["platform_service_defaults"], static_libs: ["services.core.priorityboosted"], } diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 01e77f8afdf3a..d6f72990e4ac8 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -1630,6 +1630,8 @@ public final class ActiveServices { } } + // TODO: remove as part of fixing b/173627642 + @SuppressWarnings("AndroidFrameworkCompatChange") private void postFgsNotificationLocked(ServiceRecord r) { boolean showNow = !mAm.mConstants.mFlagFgsNotificationDeferralEnabled; if (!showNow) { diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 06f8ca3980e49..ad686f2cab898 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -17864,6 +17864,17 @@ public class PackageManagerService extends IPackageManager.Stub } } + /* + * Cannot properly check CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS using CompatChanges + * as this only works for packages that are installed + * + * TODO: Move logic for permission group compatibility into PermissionManagerService + */ + @SuppressWarnings("AndroidFrameworkCompatChange") + private static boolean cannotInstallWithBadPermissionGroups(ParsedPackage parsedPackage) { + return parsedPackage.getTargetSdkVersion() >= Build.VERSION_CODES.S; + } + @GuardedBy("mInstallLock") private PrepareResult preparePackageLI(InstallArgs args, PackageInstalledInfo res) throws PrepareFailure { @@ -17906,7 +17917,7 @@ public class PackageManagerService extends IPackageManager.Stub | (onExternal ? PackageParser.PARSE_EXTERNAL_STORAGE : 0); Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "parsePackage"); - ParsedPackage parsedPackage; + final ParsedPackage parsedPackage; try (PackageParser2 pp = new PackageParser2(mSeparateProcesses, false, mMetrics, null, mPackageParserCallback)) { parsedPackage = pp.parsePackage(tmpPackageFile, parseFlags, false); @@ -18022,15 +18033,6 @@ public class PackageManagerService extends IPackageManager.Stub } } - /* - * Cannot properly check CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS using CompatChanges - * as this only works for packages that are installed - * - * TODO: Move logic for permission group compatibility into PermissionManagerService - */ - boolean cannotInstallWithBadPermissionGroups = - parsedPackage.getTargetSdkVersion() >= Build.VERSION_CODES.S; - PackageSetting ps = mSettings.mPackages.get(pkgName); if (ps != null) { if (DEBUG_INSTALL) Slog.d(TAG, "Existing package: " + ps); @@ -18088,7 +18090,8 @@ public class PackageManagerService extends IPackageManager.Stub parsedPackage.getPermissionGroups().get(groupNum); final PermissionGroupInfo sourceGroup = getPermissionGroupInfo(group.getName(), 0); - if (sourceGroup != null && cannotInstallWithBadPermissionGroups) { + if (sourceGroup != null + && cannotInstallWithBadPermissionGroups(parsedPackage)) { final String sourcePackageName = sourceGroup.packageName; if ((replace || !parsedPackage.getPackageName().equals(sourcePackageName)) @@ -18163,7 +18166,8 @@ public class PackageManagerService extends IPackageManager.Stub } } - if (perm.getGroup() != null && cannotInstallWithBadPermissionGroups) { + if (perm.getGroup() != null + && cannotInstallWithBadPermissionGroups(parsedPackage)) { boolean isPermGroupDefinedByPackage = false; for (int groupNum = 0; groupNum < numGroups; groupNum++) { if (parsedPackage.getPermissionGroups().get(groupNum).getName()