From 911cd4faf852f7a8730324ee795da94044ed4203 Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Mon, 21 Oct 2019 14:35:14 +0900 Subject: [PATCH] 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 --- Android.bp | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) 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", }