HACK: allow apps with pre-release SDK RESTRICT AUTOMERGE am: 47a70c8253
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18161336 Change-Id: I33a3215d07b386bedbb6a89cc51722a869ef4efc Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -2618,6 +2618,15 @@ public class PackageParser {
|
||||
return Build.VERSION_CODES.CUR_DEVELOPMENT;
|
||||
}
|
||||
|
||||
// STOPSHIP: hack for the pre-release SDK
|
||||
if (platformSdkCodenames.length == 0
|
||||
&& Build.VERSION.KNOWN_CODENAMES.stream().max(String::compareTo).orElse("").equals(
|
||||
targetCode)) {
|
||||
Slog.w(TAG, "Package requires development platform " + targetCode
|
||||
+ ", returning current version " + Build.VERSION.SDK_INT);
|
||||
return Build.VERSION.SDK_INT;
|
||||
}
|
||||
|
||||
// Otherwise, we're looking at an incompatible pre-release SDK.
|
||||
if (platformSdkCodenames.length > 0) {
|
||||
outError[0] = "Requires development platform " + targetCode
|
||||
@@ -2689,6 +2698,15 @@ public class PackageParser {
|
||||
return Build.VERSION_CODES.CUR_DEVELOPMENT;
|
||||
}
|
||||
|
||||
// STOPSHIP: hack for the pre-release SDK
|
||||
if (platformSdkCodenames.length == 0
|
||||
&& Build.VERSION.KNOWN_CODENAMES.stream().max(String::compareTo).orElse("").equals(
|
||||
minCode)) {
|
||||
Slog.w(TAG, "Package requires min development platform " + minCode
|
||||
+ ", returning current version " + Build.VERSION.SDK_INT);
|
||||
return Build.VERSION.SDK_INT;
|
||||
}
|
||||
|
||||
// Otherwise, we're looking at an incompatible pre-release SDK.
|
||||
if (platformSdkCodenames.length > 0) {
|
||||
outError[0] = "Requires development platform " + minCode
|
||||
|
||||
@@ -315,6 +315,15 @@ public class FrameworkParsingPackageUtils {
|
||||
return input.success(Build.VERSION_CODES.CUR_DEVELOPMENT);
|
||||
}
|
||||
|
||||
// STOPSHIP: hack for the pre-release SDK
|
||||
if (platformSdkCodenames.length == 0
|
||||
&& Build.VERSION.KNOWN_CODENAMES.stream().max(String::compareTo).orElse("").equals(
|
||||
minCode)) {
|
||||
Slog.w(TAG, "Parsed package requires min development platform " + minCode
|
||||
+ ", returning current version " + Build.VERSION.SDK_INT);
|
||||
return input.success(Build.VERSION.SDK_INT);
|
||||
}
|
||||
|
||||
// Otherwise, we're looking at an incompatible pre-release SDK.
|
||||
if (platformSdkCodenames.length > 0) {
|
||||
return input.error(PackageManager.INSTALL_FAILED_OLDER_SDK,
|
||||
@@ -367,16 +376,29 @@ public class FrameworkParsingPackageUtils {
|
||||
return input.success(targetVers);
|
||||
}
|
||||
|
||||
if (allowUnknownCodenames && UnboundedSdkLevel.isAtMost(targetCode)) {
|
||||
return input.success(Build.VERSION_CODES.CUR_DEVELOPMENT);
|
||||
}
|
||||
|
||||
// If it's a pre-release SDK and the codename matches this platform, it
|
||||
// definitely targets this SDK.
|
||||
if (matchTargetCode(platformSdkCodenames, targetCode)) {
|
||||
return input.success(Build.VERSION_CODES.CUR_DEVELOPMENT);
|
||||
}
|
||||
|
||||
// STOPSHIP: hack for the pre-release SDK
|
||||
if (platformSdkCodenames.length == 0
|
||||
&& Build.VERSION.KNOWN_CODENAMES.stream().max(String::compareTo).orElse("").equals(
|
||||
targetCode)) {
|
||||
Slog.w(TAG, "Parsed package requires development platform " + targetCode
|
||||
+ ", returning current version " + Build.VERSION.SDK_INT);
|
||||
return input.success(Build.VERSION.SDK_INT);
|
||||
}
|
||||
|
||||
try {
|
||||
if (allowUnknownCodenames && UnboundedSdkLevel.isAtMost(targetCode)) {
|
||||
return input.success(Build.VERSION_CODES.CUR_DEVELOPMENT);
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
return input.error(PackageManager.INSTALL_FAILED_OLDER_SDK, "Bad package SDK");
|
||||
}
|
||||
|
||||
// Otherwise, we're looking at an incompatible pre-release SDK.
|
||||
if (platformSdkCodenames.length > 0) {
|
||||
return input.error(PackageManager.INSTALL_FAILED_OLDER_SDK,
|
||||
|
||||
@@ -454,14 +454,14 @@ public class SystemConfigTest {
|
||||
+ " <library \n"
|
||||
+ " name=\"foo\"\n"
|
||||
+ " file=\"" + mFooJar + "\"\n"
|
||||
+ " on-bootclasspath-before=\"Q\"\n"
|
||||
+ " on-bootclasspath-before=\"A\"\n"
|
||||
+ " on-bootclasspath-since=\"W\"\n"
|
||||
+ " />\n\n"
|
||||
+ " </permissions>";
|
||||
parseSharedLibraries(contents);
|
||||
assertFooIsOnlySharedLibrary();
|
||||
SystemConfig.SharedLibraryEntry entry = mSysConfig.getSharedLibraries().get("foo");
|
||||
assertThat(entry.onBootclasspathBefore).isEqualTo("Q");
|
||||
assertThat(entry.onBootclasspathBefore).isEqualTo("A");
|
||||
assertThat(entry.onBootclasspathSince).isEqualTo("W");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user