diff --git a/Android.bp b/Android.bp index 8169d6de7813..b26b373943ae 100644 --- a/Android.bp +++ b/Android.bp @@ -402,16 +402,8 @@ java_library { 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 @@ java_library { "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", }