diff --git a/core/install_jni_libs.mk b/core/install_jni_libs.mk index 625a8a222..6b550c1c0 100644 --- a/core/install_jni_libs.mk +++ b/core/install_jni_libs.mk @@ -18,9 +18,19 @@ endif ifneq ($(filter tests samples, $(LOCAL_MODULE_TAGS)),) my_embed_jni := true endif -ifeq ($(filter $(TARGET_OUT)/% $(TARGET_OUT_VENDOR)/% $(TARGET_OUT_OEM)/%, $(my_module_path)),) -# If this app isn't to be installed to system partitions. -my_embed_jni := true +ifeq ($(PRODUCT_FULL_TREBLE),true) + ifeq ($(filter $(TARGET_OUT)/%, $(my_module_path)),) + # If this app isn't to be installed to the system partition, and the device + # is fully treble-ized then jni libs are embedded, Otherwise, access to the + # directory where the lib is installed to (usually /vendor/lib) needs to be + # allowed for system processes, which is a Treble violation. + my_embed_jni := true + endif +else + ifeq ($(filter $(TARGET_OUT)/% $(TARGET_OUT_VENDOR)/% $(TARGET_OUT_OEM)/%, $(my_module_path)),) + # If this app isn't to be installed to system, vendor, or oem partitions. + my_embed_jni := true + endif endif jni_shared_libraries :=