Replace framework.jar with framework-minus-apex.jar
framework.jar is now a build-time only library which has private symbols
from framework-minus-apex.jar and public symbols from APEXes. Instead of
framework.jar, framework-minus-apex.jar is installed to the device.
framework-minus-apex is installed as framework.jar because the name is
pretty widespread throughout Android. Keeping the original file name for
the backwards compatibility.
Bug: 139391334
Test: m, inspect the build system.img and check that
system/framework/framework.jar exists
Change-Id: Ia12d5984b011a54bd8ef708d0f552298a6ddec8a
diff --git a/Android.bp b/Android.bp
index 8169d6d..b26b373 100644
--- a/Android.bp
+++ b/Android.bp
@@ -402,16 +402,8 @@
name: "framework-minus-apex",
defaults: ["framework-defaults"],
srcs: [":framework-non-updatable-sources"],
- javac_shard_size: 150,
-}
-
-java_library {
- name: "framework",
- defaults: ["framework-aidl-export-defaults"],
installable: true,
- static_libs: [
- "framework-minus-apex",
- ],
+ javac_shard_size: 150,
required: [
"framework-platform-compat-config",
"libcore-platform-compat-config",
@@ -419,6 +411,27 @@
"media-provider-platform-compat-config",
"services-devicepolicy-platform-compat-config",
],
+ // For backwards compatibility.
+ stem: "framework",
+}
+
+// This "framework" module is NOT installed to the device. It's
+// "framework-minus-apex" that gets installed to the device. Note that
+// the filename is still framework.jar (via the stem property) for
+// compatibility reason. The purpose of this module is to provide
+// framework APIs (both public and private) for bundled apps.
+// "framework-minus-apex" can't be used for the purpose because 1)
+// many apps have already hardcoded the name "framework" and
+// 2) it lacks API symbols from updatable modules - as it's clear from
+// its suffix "-minus-apex".
+java_library {
+ name: "framework",
+ defaults: ["framework-aidl-export-defaults"],
+ installable: false, // this lib is a build-only library
+ static_libs: [
+ "framework-minus-apex",
+ // TODO(jiyong): add stubs for APEXes here
+ ],
sdk_version: "core_platform",
}