Separating framework platform crashrecovery jar
Creating new jar "framework-platformcrashrecovery".
This would separate all the apis to a different sdk library while still
being part of core platform.
This jar is behind release_crashrecovery_module flag which also controls enabling CrashRecovery module apex.
Based on the flag only one of platformcrashrecovery jar or CrashRecovery Apex will be used.
So essentially on device if release_crashrecovery_module flag is
1. true: CrashRecovery Apex is present, this jar is not used
2. false: CrashRecovery Apex is not used, this jar is present
Bug: 289203818
Test: Jar is present in Bootclasspath on device
Test: ExplcitHealthCheckService registered on device
Flag: build.release_crashrecovery_module
Change-Id: I4696e74a1ba236614398b48a6d7145777079286b
diff --git a/api/Android.bp b/api/Android.bp
index 3c92cb2..ff674c7 100644
--- a/api/Android.bp
+++ b/api/Android.bp
@@ -101,7 +101,9 @@
"true": [
"framework-crashrecovery",
],
- default: [],
+ default: [
+ "framework-platformcrashrecovery",
+ ],
}) + select(release_flag("RELEASE_RANGING_STACK"), {
true: [
"framework-ranging",
@@ -436,6 +438,7 @@
impl_library_visibility: ["//frameworks/base"],
defaults_visibility: [
"//frameworks/base/location",
+ "//frameworks/base/packages/CrashRecovery/framework",
"//frameworks/base/nfc",
],
plugins: ["error_prone_android_framework"],
diff --git a/api/api.go b/api/api.go
index 29083df..f32bdc3 100644
--- a/api/api.go
+++ b/api/api.go
@@ -28,6 +28,7 @@
const i18n = "i18n.module.public.api"
const virtualization = "framework-virtualization"
const location = "framework-location"
+const platformCrashrecovery = "framework-platformcrashrecovery"
var core_libraries_modules = []string{art, conscrypt, i18n}
@@ -39,7 +40,7 @@
// APIs.
// In addition, the modules in this list are allowed to contribute to test APIs
// stubs.
-var non_updatable_modules = []string{virtualization, location}
+var non_updatable_modules = []string{virtualization, location, platformCrashrecovery}
// The intention behind this soong plugin is to generate a number of "merged"
// API-related modules that would otherwise require a large amount of very
diff --git a/api/api_test.go b/api/api_test.go
index 166f053..28109b5e 100644
--- a/api/api_test.go
+++ b/api/api_test.go
@@ -78,10 +78,7 @@
"stub-annotations",
}
- extraSdkLibraryModules := []string{
- "framework-virtualization",
- "framework-location",
- }
+ extraSdkLibraryModules := non_updatable_modules
extraSystemModules := []string{
"core-public-stubs-system-modules",
@@ -184,10 +181,10 @@
func TestCombinedApisDefaults(t *testing.T) {
+ testNonUpdatableModules := append(non_updatable_modules, "framework-foo", "framework-bar")
result := android.GroupFixturePreparers(
prepareForTestWithCombinedApis,
- java.FixtureWithLastReleaseApis(
- "framework-location", "framework-virtualization", "framework-foo", "framework-bar"),
+ java.FixtureWithLastReleaseApis(testNonUpdatableModules...),
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
variables.VendorVars = map[string]map[string]string{
"boolean_var": {