#!/system/bin/sh

# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

. `dirname $0`/art_prepostinstall_utils || exit 100

log_info "Preparing boot image compilation parameters"

# Prefer DEX2OATBOOTCLASSPATH, then BOOTCLASSPATH.
USED_CLASSPATH=$DEX2OATBOOTCLASSPATH
if [ -z "$USED_CLASSPATH" ] ; then
  USED_CLASSPATH=$BOOTCLASSPATH
  if [ -z "$USED_CLASSPATH" ] ; then
    log_error "Could not find boot class-path to compile"
    exit 101
  fi
fi
BOOTCP=`echo $USED_CLASSPATH | tr ":" "\n"`

DEX_FILES=
DEX_LOCATIONS=
for component in $BOOTCP ; do
  DEX_FILES="$DEX_FILES --dex-file=$component"
  DEX_LOCATIONS="$DEX_LOCATIONS --dex-location=$component"
done

PROFILING=
if [ -f "/system/etc/boot-image.prof" ] ; then
  PROFILING="--compiler-filter=speed-profile --profile-file=/system/etc/boot-image.prof"
fi
if [ -f "/system/etc/dirty-image-objects" ] ; then
  PROFILING="$PROFILING --dirty-image-objects=/system/etc/dirty-image-objects"
fi

DEX2OAT_IMAGE_XMX=`getprop dalvik.vm.image-dex2oat-Xmx`

DEX2OAT_TARGET_ARCH=$1
DEX2OAT_TARGET_CPU_VARIANT=`getprop dalvik.vm.isa.${DEX2OAT_TARGET_ARCH}.variant`
DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES=`getprop dalvik.vm.isa.${DEX2OAT_TARGET_ARCH}.features`

log_info "Compiling boot image for $DEX2OAT_TARGET_ARCH"

dex2oat \
  --avoid-storing-invocation \
  --runtime-arg -Xmx$DEX2OAT_IMAGE_XMX \
  $PROFILING \
  $DEX_FILES \
  $DEX_LOCATIONS \
  --generate-mini-debug-info \
  --strip \
  --oat-file=/data/dalvik-cache/$DEX2OAT_TARGET_ARCH/system@framework@boot.oat \
  --oat-location=/data/dalvik-cache/$DEX2OAT_TARGET_ARCH/system@framework@boot.oat \
  --image=/data/dalvik-cache/$DEX2OAT_TARGET_ARCH/system@framework@boot.art --base=0x70000000 \
  --instruction-set=$DEX2OAT_TARGET_ARCH \
  --instruction-set-variant=$DEX2OAT_TARGET_CPU_VARIANT \
  --instruction-set-features=$DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES \
  --android-root=/system \
  --no-inline-from=core-oj.jar \
  --abort-on-hard-verifier-error \
  --force-determinism || { log_error "Dex2oat failed" ; exit 102 ; }
