Prep D8 default instead of CompatDX in build/core

Also use zip2zip to extract classes into another jar
to avoid hitting parameter limit in the shell invocations.

Bug: 69329508
Test: m checkbuild tests

Change-Id: Ic047aa699519b6b3fd100cb5395de945f96e4d0b
diff --git a/core/definitions.mk b/core/definitions.mk
index 405f7c6..5ad78fd 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -2415,15 +2415,16 @@
 define transform-classes-d8.jar-to-dex
 @echo "target Dex: $(PRIVATE_MODULE)"
 @mkdir -p $(dir $@)
-$(hide) rm -rf $(dir $@)classes*.dex $(dir $@)*.class $(dir $@)d8_input
-$(hide) unzip -qq -d $(dir $@)d8_input $< "*.class"
+$(hide) rm -f $(dir $@)classes*.dex $(dir $@)d8_input.jar
+$(hide) $(ZIP2ZIP) -j -i $< -o $(dir $@)d8_input.jar "**/*.class"
 $(hide) $(DX_COMMAND) \
     --output $(dir $@) \
     --min-api $(PRIVATE_MIN_SDK_VERSION) \
+    $(subst --main-dex-list=, --main-dex-list , \
     $(subst --no-locals, --release, \
-        $(filter-out --core-library --multi-dex,$(PRIVATE_DX_FLAGS))) \
-    $$(find $(dir $@)d8_input -name *.class | sort)
-$(hide) rm -fr $(dir $@)d8_input
+        $(filter-out --core-library --multi-dex --minimal-main-dex,$(PRIVATE_DX_FLAGS)))) \
+    $(dir $@)d8_input.jar
+$(hide) rm -f $(dir $@)d8_input.jar
 endef
 
 # Create a mostly-empty .jar file that we'll add to later.