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",
 }