Remove unwanted JNI libs outside inflating action.
Take the unwanted JNI lib removal action out of JNI uncompression
function so that they work independently when building prebuilt apks.
Fixes: 180475879
Test: Manually with a test apk.
Change-Id: I7392d0bf4ca7db76f27e883df08f7cb256162440
diff --git a/core/app_prebuilt_internal.mk b/core/app_prebuilt_internal.mk
index 5767996..cb1b453 100644
--- a/core/app_prebuilt_internal.mk
+++ b/core/app_prebuilt_internal.mk
@@ -237,6 +237,7 @@
$(built_module) : $(my_prebuilt_src_file) | $(ZIPALIGN) $(ZIP2ZIP) $(SIGNAPK_JAR)
$(transform-prebuilt-to-target)
$(uncompress-prebuilt-embedded-jni-libs)
+ $(remove-unwanted-prebuilt-embedded-jni-libs)
ifeq (true, $(LOCAL_UNCOMPRESS_DEX))
$(uncompress-dexs)
endif # LOCAL_UNCOMPRESS_DEX
diff --git a/core/definitions.mk b/core/definitions.mk
index 5f0bf55..8d32a99 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -2396,14 +2396,19 @@
#
define uncompress-prebuilt-embedded-jni-libs
if (zipinfo $@ 'lib/*.so' 2>/dev/null | grep -v ' stor ' >/dev/null) ; then \
- $(ZIP2ZIP) -i $@ -o $@.tmp -0 'lib/**/*.so' \
- $(if $(PRIVATE_EMBEDDED_JNI_LIBS), \
- -x 'lib/**/*.so' \
- $(addprefix -X ,$(PRIVATE_EMBEDDED_JNI_LIBS))) && \
- mv -f $@.tmp $@ ; \
+ $(ZIP2ZIP) -i $@ -o $@.tmp -0 'lib/**/*.so' && mv -f $@.tmp $@ ; \
fi
endef
+# Remove unwanted shared JNI libraries embedded in an apk.
+#
+define remove-unwanted-prebuilt-embedded-jni-libs
+ $(if $(PRIVATE_EMBEDDED_JNI_LIBS), \
+ $(ZIP2ZIP) -i $@ -o $@.tmp \
+ -x 'lib/**/*.so' $(addprefix -X ,$(PRIVATE_EMBEDDED_JNI_LIBS)) && \
+ mv -f $@.tmp $@)
+endef
+
# TODO(joeo): If we can ever upgrade to post 3.81 make and get the
# new prebuilt rules to work, we should change this to copy the
# resources to the out directory and then copy the resources.