Adjust "services.core" defaults for Error Prone.
It ends up that "services.core" itself doesn't catch Error Prone
issues, since it works with JAR output from a previous stage. To
resolve this, we need to move up to "services.core.unboosted" where
the source code is still available.
Fix one instance of AndroidFrameworkCompatChange that had leaked
into the source tree recently. Disable other checks since there
are hundreds of failures inside the actual "services.core" code.
Bug: 155703208
Test: manual
Exempt-From-Owner-Approval: trivial refactoring
Change-Id: I13f15db61bbcf5f74023147a95551b541d0a8845
diff --git a/Android.bp b/Android.bp
index 9b8e018..5abbf68 100644
--- a/Android.bp
+++ b/Android.bp
@@ -22,9 +22,9 @@
],
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 @@
"-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 4bde31f..3a13726 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -61,6 +61,7 @@
java_library_static {
name: "services.core.unboosted",
+ defaults: ["platform_service_defaults"],
srcs: [
":services.core.protologsrc",
":dumpstate_aidl",
@@ -146,7 +147,6 @@
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 01e77f8..d6f7299 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 @@
}
}
+ // 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 a03c405c..57d082b 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -17718,6 +17718,17 @@
}
}
+ /*
+ * 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 {
@@ -17760,7 +17771,7 @@
| (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);
@@ -17876,15 +17887,6 @@
}
}
- /*
- * 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);
@@ -17942,7 +17944,8 @@
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))
@@ -18017,7 +18020,8 @@
}
}
- 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()