Don't feed framework.jar to proguard for vendor apks

We used to add framework.jar to proguard via -systemjars option even
for the apks building againsd SDK. This was because the app might have
references to hidden APIs via static libraries, etc.

However, for vendor apks, the use of hidden API is strictly prohibited.
So it is fine to not include framework.jar. Furthermore, including
framework.jar even causes problems in some cases; if a java library
(e.g., android.hidl.base-V1.0-java) is statically linked to both the app
and the framework.jar, -systemjars frameworks.jar forcibly removes
classes in the library from the app to have references to the non-public
classes in framework.jar. This could fail some compliance tests.

Fixing the problem by not raising SDK for apks located in vendor or odm
partitions.

Bug: 128574081
Test: m
Change-Id: If2b658fead5b4bb4d8c023a37eb57a37ad9b741d
This commit is contained in:
Jiyong Park 2019-04-03 22:22:37 +09:00
parent 7369b7622f
commit eadd1bdb8e
1 changed files with 7 additions and 0 deletions

View File

@ -395,6 +395,13 @@ else
# that would break apps that use APIs removed from the current SDK.
my_proguard_sdk_raise := $(call java-lib-header-files,$(TARGET_DEFAULT_BOOTCLASSPATH_LIBRARIES) $(TARGET_DEFAULT_JAVA_LIBRARIES))
endif
ifdef BOARD_SYSTEMSDK_VERSIONS
ifneq (,$(filter true,$(LOCAL_VENDOR_MODULE) $(LOCAL_ODM_MODULE) $(LOCAL_PROPRIETARY_MODULE)))
# But for vendor or odm apks, don't raise SDK as the apks are required to
# use SDK APIs only
my_proguard_sdk_raise :=
endif
endif
endif
legacy_proguard_flags := $(addprefix -libraryjars ,$(my_proguard_sdk_raise) \