Don't allow linking to a java module with broader API surface
It has been allowed that a java module built with Android SDK or System SDK to link against other java module built with broader API surface. For example, an app that is building with SDK (LOCAL_SDK_VERSION := current or <number>) can link libs like telephony-common or bouncycastle which are built without SDK but in fact exposing private APIs. From now on, this is no longer allowed because it prevents the app from being unbundled. In general, a Java module A cannot be linked to Java module B if B is built with broader API surface than A. Bug: 69899800 Test: m -j checkbuild on walleye, sailfish, and crosshatch Test: m -j ANDROID_BUILDSPEC=vendor/google/build/app_build_spec.mk Test: ./vendor/google/build/build_test.bash --dist Change-Id: Ibfdb1a6777f4e0606927d834d56f808639eb91f0
This commit is contained in:
parent
fe5b69a4ae
commit
3d71a082ed
|
@ -457,11 +457,11 @@ ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR := \
|
|||
ifndef LOCAL_IS_HOST_MODULE
|
||||
ifeq ($(LOCAL_SDK_VERSION),system_current)
|
||||
my_link_type := java:system
|
||||
my_warn_types := java:platform
|
||||
my_warn_types :=
|
||||
my_allowed_types := java:sdk java:system java:core
|
||||
else ifneq (,$(call has-system-sdk-version,$(LOCAL_SDK_VERSION)))
|
||||
my_link_type := java:system
|
||||
my_warn_types := java:platform
|
||||
my_warn_types :=
|
||||
my_allowed_types := java:sdk java:system java:core
|
||||
else ifeq ($(LOCAL_SDK_VERSION),core_current)
|
||||
my_link_type := java:core
|
||||
|
@ -469,7 +469,7 @@ my_warn_types :=
|
|||
my_allowed_types := java:core
|
||||
else ifneq ($(LOCAL_SDK_VERSION),)
|
||||
my_link_type := java:sdk
|
||||
my_warn_types := java:system java:platform
|
||||
my_warn_types :=
|
||||
my_allowed_types := java:sdk java:core
|
||||
else
|
||||
my_link_type := java:platform
|
||||
|
|
Loading…
Reference in New Issue