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
This commit is contained in:
Jaewoong Jung 2021-02-18 15:06:08 -08:00
parent aa85a8871b
commit c18ebafcb9
2 changed files with 11 additions and 5 deletions

View File

@ -237,6 +237,7 @@ endif
$(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

View File

@ -2396,14 +2396,19 @@ endef
#
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.