#!/bin/bash

err() {
  errno=$?
  echo "error: $0:$1 exited with status $errno" >&2
  echo "error in command:" >&2
  sed -n -e "$1p" $0 >&2
  if [ "$errno" -ne 0 ]; then
    exit $errno
  else
    exit 1
  fi
}

trap 'err $LINENO' ERR

mkdir -p out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/oat/arm64

rm -f out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/oat/arm64/javalib.odex rm -f out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/oat/arm64/javalib.symbols.odex

target_sdk_version=10000

eval "$( out/host/linux-x86/bin/construct_context  --target-sdk-version ${target_sdk_version} --context-json='{"28":[],"29":[],"30":[],"any":[]}' --product-packages=out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/product_packages.txt )"

ANDROID_LOG_TAGS="*:e" out/host/linux-x86/bin/dex2oatd --avoid-storing-invocation --write-invocation-to=out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/oat/arm64/javalib.invocation --runtime-arg -Xms64m --runtime-arg -Xmx512m --runtime-arg -Xbootclasspath:out/soong/dexpreopt_arm64/dex_bootjars_input/core-oj.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/core-libart.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/okhttp.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/bouncycastle.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/apache-xml.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/framework-graphics.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/framework-location.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/ext.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/telephony-common.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/voip-common.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/ims-common.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/framework-ondeviceintelligence-platform.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/telephony-ext.jar:out/soong/dexpreopt_arm64/dex_bootjars_input/core-icu4j.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-adservices.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-sdksandbox.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-appsearch.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bluetooth.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-configinfrastructure.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/conscrypt.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-conscrypt-nsc.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-crashrecovery.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-devicelock.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-healthfitness.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/android.net.ipsec.ike.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/updatable-media.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-mediaprovider.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-pdf.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-pdf-v.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-photopicker.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-nfc.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-npumanager.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-ondevicepersonalization.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-statsd.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-permission.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-permission-s.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-anomaly-detector.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-profiling.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-scheduling.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-sdkextensions.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-telecom.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-telephony.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-connectivity.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-connectivity-b.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-connectivity-t.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-tethering.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-uprobestats.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-ranging.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-uwb.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-virtualization.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-webapp.jar:out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-wifi.jar --runtime-arg -Xbootclasspath-locations:/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/framework-location.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/framework-ondeviceintelligence-platform.jar:/system/framework/telephony-ext.jar:/apex/com.android.i18n/javalib/core-icu4j.jar:/apex/com.android.adservices/javalib/framework-adservices.jar:/apex/com.android.adservices/javalib/framework-sdksandbox.jar:/apex/com.android.appsearch/javalib/framework-appsearch.jar:/apex/com.android.bt/javalib/framework-bluetooth.jar:/apex/com.android.configinfrastructure/javalib/framework-configinfrastructure.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.conscrypt/javalib/framework-conscrypt-nsc.jar:/apex/com.android.crashrecovery/javalib/framework-crashrecovery.jar:/apex/com.android.devicelock/javalib/framework-devicelock.jar:/apex/com.android.healthfitness/javalib/framework-healthfitness.jar:/apex/com.android.ipsec/javalib/android.net.ipsec.ike.jar:/apex/com.android.media/javalib/updatable-media.jar:/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar:/apex/com.android.mediaprovider/javalib/framework-pdf.jar:/apex/com.android.mediaprovider/javalib/framework-pdf-v.jar:/apex/com.android.mediaprovider/javalib/framework-photopicker.jar:/apex/com.android.nfcservices/javalib/framework-nfc.jar:/apex/com.android.npumanager/javalib/framework-npumanager.jar:/apex/com.android.ondevicepersonalization/javalib/framework-ondevicepersonalization.jar:/apex/com.android.os.statsd/javalib/framework-statsd.jar:/apex/com.android.permission/javalib/framework-permission.jar:/apex/com.android.permission/javalib/framework-permission-s.jar:/apex/com.android.profiling/javalib/framework-anomaly-detector.jar:/apex/com.android.profiling/javalib/framework-profiling.jar:/apex/com.android.scheduling/javalib/framework-scheduling.jar:/apex/com.android.sdkext/javalib/framework-sdkextensions.jar:/apex/com.android.telephonycore/javalib/framework-telecom.jar:/apex/com.android.telephonycore/javalib/framework-telephony.jar:/apex/com.android.tethering/javalib/framework-connectivity.jar:/apex/com.android.tethering/javalib/framework-connectivity-b.jar:/apex/com.android.tethering/javalib/framework-connectivity-t.jar:/apex/com.android.tethering/javalib/framework-tethering.jar:/apex/com.android.uprobestats/javalib/framework-uprobestats.jar:/apex/com.android.uwb/javalib/framework-ranging.jar:/apex/com.android.uwb/javalib/framework-uwb.jar:/apex/com.android.virt/javalib/framework-virtualization.jar:/apex/com.android.webapp/javalib/framework-webapp.jar:/apex/com.android.wifi/javalib/framework-wifi.jar ${class_loader_context_arg} ${stored_class_loader_context_arg} --boot-image=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot.art:out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/boot-framework-adservices.art --dex-file=$1 --dex-location=/product/framework/com.google.android.dialer.support.jar --oat-file=out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/oat/arm64/javalib.odex --android-root=out/empty --instruction-set=arm64 --instruction-set-variant=generic --instruction-set-features=default --oat-symbols=out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/oat/arm64/javalib.symbols.odex --generate-debug-info --strip --generate-build-id --abort-on-hard-verifier-error --force-determinism --no-inline-from=core-oj.jar $(cat out/soong/dexpreopt/uffd_gc_flag.txt ) --copy-dex-files=false --compiler-filter=quicken --no-generate-mini-debug-info --compilation-reason=prebuilt $(cat out/soong/dexpreopt/assume_value_flags.txt ) $(cat out/soong/dexpreopt/allow_profile_code_flag.txt )

rm -rf out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/dexpreopt_install

mkdir -p out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/dexpreopt_install

mkdir -p out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/dexpreopt_install/product/framework/oat/arm64

cp -f out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/oat/arm64/javalib.odex out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/dexpreopt_install/product/framework/oat/arm64/com.google.android.dialer.support.odex

mkdir -p out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/dexpreopt_install/product/framework/oat/arm64

cp -f out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/oat/arm64/javalib.vdex out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/dexpreopt_install/product/framework/oat/arm64/com.google.android.dialer.support.vdex

out/host/linux-x86/bin/soong_zip -o $2 -C out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/dexpreopt_install -D out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/dexpreopt_install

rm -f $2.d
echo -n $2 > $2.d
cat >> $2.d <<'EOF'
: \
    out/host/linux-x86/bin/construct_context \
    out/host/linux-x86/bin/dex2oatd \
    out/host/linux-x86/bin/soong_zip \
    out/soong/dexpreopt/allow_profile_code_flag.txt \
    out/soong/dexpreopt/assume_value_flags.txt \
    out/soong/dexpreopt/uffd_gc_flag.txt \
    out/soong/dexpreopt_arm64/dex_bootjars_input/apache-xml.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/bouncycastle.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/core-icu4j.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/core-libart.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/core-oj.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/ext.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/framework-graphics.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/framework-location.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/framework-ondeviceintelligence-platform.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/ims-common.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/okhttp.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/telephony-common.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/telephony-ext.jar \
    out/soong/dexpreopt_arm64/dex_bootjars_input/voip-common.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/android.net.ipsec.ike.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/conscrypt.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-adservices.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-anomaly-detector.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-appsearch.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bluetooth.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-configinfrastructure.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-connectivity-b.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-connectivity-t.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-connectivity.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-conscrypt-nsc.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-crashrecovery.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-devicelock.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-healthfitness.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-mediaprovider.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-nfc.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-npumanager.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-ondevicepersonalization.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-pdf-v.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-pdf.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-permission-s.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-permission.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-photopicker.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-profiling.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-ranging.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-scheduling.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-sdkextensions.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-sdksandbox.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-statsd.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-telecom.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-telephony.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-tethering.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-uprobestats.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-uwb.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-virtualization.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-webapp.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-wifi.jar \
    out/soong/dexpreopt_arm64/dex_mainlinejars_input/updatable-media.jar \
    out/target/product/rtwo/obj/JAVA_LIBRARIES/com.google.android.dialer.support_intermediates/product_packages.txt \

EOF
