#! /bin/bash
#
# Copyright (C) 2018 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.

# Push ART artifacts and its dependencies to a chroot directory for on-device testing.

if [ -t 1 ]; then
  # Color sequences if terminal is a tty.
  red='\033[0;31m'
  green='\033[0;32m'
  yellow='\033[0;33m'
  magenta='\033[0;35m'
  nc='\033[0m'
fi

adb wait-for-device

if [[ -z "$ANDROID_BUILD_TOP" ]]; then
  echo 'ANDROID_BUILD_TOP environment variable is empty; did you forget to run `lunch`?'
  exit 1
fi

if [[ -z "$ANDROID_PRODUCT_OUT" ]]; then
  echo 'ANDROID_PRODUCT_OUT environment variable is empty; did you forget to run `lunch`?'
  exit 1
fi

if [[ -z "$ART_TEST_CHROOT" ]]; then
  echo 'ART_TEST_CHROOT environment variable is empty; please set it before running this script.'
  exit 1
fi

if [[ "$(build/soong/soong_ui.bash --dumpvar-mode TARGET_FLATTEN_APEX)" != "true" ]]; then
  echo -e "${red}This script only works when  APEX packages are flattened, but the build" \
    "configuration is set up to use non-flattened APEX packages.${nc}"
  echo -e "${magenta}You can force APEX flattening by setting the environment variable" \
    "\`OVERRIDE_TARGET_FLATTEN_APEX\` to \"true\" before starting the build and running this" \
    "script.${nc}"
  exit 1
fi

# Linker configuration.
# ---------------------

# Adjust the chroot environment to have it use the system linker configuration
# of the built target ("guest system"), located in `/system/etc` under the
# chroot directory, even if the linker configuration flavor of the "guest
# system" (e.g. legacy configuration) does not match the one of the "host
# system" (e.g. full-VNDK configuration). This is done by renaming the
# configuration file provided by the "guest system" (created according to the
# build target configuration) within the chroot environment, using the name of
# the configuration file expected by the linker (governed by system properties
# of the "host system").

# Default linker configuration file name/stem.
ld_config_file_path="/system/etc/ld.config.txt";
# VNDK-lite linker configuration file name.
ld_config_vndk_lite_file_path="/system/etc/ld.config.vndk_lite.txt";

# Find linker configuration path name on the "host system".
#
# The logic here partly replicates (and simplifies) Bionic's linker logic around
# configuration file search (see `get_ld_config_file_path` in
# bionic/linker/linker.cpp).
get_ld_host_system_config_file_path() {
  # Check whether the "host device" uses a VNDK-lite linker configuration.
  local vndk_lite=$(adb shell getprop "ro.vndk.lite" false)
  if [[ "$vndk_lite" = true ]]; then
    if adb shell test -f "$ld_config_vndk_lite_file_path"; then
      echo "$ld_config_vndk_lite_file_path"
      return
    fi
  fi
  # Check the "host device"'s VNDK version, if any.
  local vndk_version=$(adb shell getprop "ro.vndk.version")
  if [[ -n "$vndk_version" ]] && [[ "$vndk_version" != current ]]; then
    # Insert the VNDK version after the last period (and add another period).
    local ld_config_file_vdnk_path=$(echo "$ld_config_file_path" \
      | sed -e "s/^\\(.*\\)\\.\\([^.]\\)/\\1.${vndk_version}.\\2/")
    if adb shell test -f "$ld_config_file_vdnk_path"; then
      echo "$ld_config_file_vdnk_path"
      return
    fi
  else
    if adb shell test -f "$ld_config_file_path"; then
      echo "$ld_config_file_path"
      return
    fi
  fi
  # If all else fails, return the default linker configuration name.
  echo -e "${yellow}Cannot find linker configuration; using default path name:" \
    "\`$ld_config_file_path\`${nc}" >&2
  echo "$ld_config_file_path"
  return
}

# Find linker configuration path name on the "guest system".
#
# The logic here tries to "guess" the name of the linker configuration file,
# based on the contents of the build directory.
get_ld_guest_system_config_file_path() {
  if [[ -z "$ANDROID_PRODUCT_OUT" ]]; then
    echo -e "${red}ANDROID_PRODUCT_OUT environment variable is empty;" \
      "did you forget to run \`lunch\`${nc}?" >&2
    exit 1
  fi
  local ld_config_file_location="$ANDROID_PRODUCT_OUT/system/etc"
  local ld_config_file_paths=$(find "$ld_config_file_location" -name "ld.*.txt")
  local ld_config_file_path_number=$(wc -l <<< "$ld_config_file_paths")
  if [[ "$ld_config_file_path_number" -eq 0 ]]; then
    echo -e "${red}No linker configuration file found in \`$ld_config_file_location\`${nc}" >&2
    exit 1
  fi
  if [[ "$ld_config_file_path_number" -gt 1 ]]; then
    echo -e \
      "${red}More than one linker configuration file found in \`$ld_config_file_location\`:" \
      "\n${ld_config_file_paths}${nc}" >&2
    exit 1
  fi
  # Strip the build prefix to make the path name relative to the "guest root directory".
  sed -e "s|^$ANDROID_PRODUCT_OUT||" <<< "$ld_config_file_paths"
}


# Synchronization recipe.
# -----------------------

# Sync the system directory to the chroot.
echo -e "${green}Syncing system directory...${nc}"
adb shell mkdir -p "$ART_TEST_CHROOT/system"
adb push "$ANDROID_PRODUCT_OUT/system" "$ART_TEST_CHROOT/"
# Overwrite the default public.libraries.txt file with a smaller one that
# contains only the public libraries pushed to the chroot directory.
adb push "$ANDROID_BUILD_TOP/art/tools/public.libraries.buildbot.txt" \
  "$ART_TEST_CHROOT/system/etc/public.libraries.txt"

# Manually "activate" the flattened APEX $1 by syncing it to /apex/$2 in the
# chroot. $2 defaults to $1.
#
# TODO: Handle the case of build targets using non-flatted APEX packages.
# As a workaround, one can run `export OVERRIDE_TARGET_FLATTEN_APEX=true` before building
# a target to have its APEX packages flattened.
activate_apex() {
  local src_apex=${1}
  local dst_apex=${2:-${src_apex}}
  echo -e "${green}Activating APEX ${src_apex} as ${dst_apex}...${nc}"
  # We copy the files from `/system/apex/${src_apex}` to `/apex/${dst_apex}` in
  # the chroot directory, instead of simply using a symlink, as Bionic's linker
  # relies on the real path name of a binary (e.g.
  # `/apex/com.android.art/bin/dex2oat`) to select the linker configuration.
  adb shell mkdir -p "$ART_TEST_CHROOT/apex"
  adb shell rm -rf "$ART_TEST_CHROOT/apex/${dst_apex}"
  adb shell cp -a "$ART_TEST_CHROOT/system/apex/${src_apex}" "$ART_TEST_CHROOT/apex/${dst_apex}" \
    || exit 1
}

# "Activate" the required APEX modules.
activate_apex com.android.art.testing com.android.art
activate_apex com.android.i18n
activate_apex com.android.runtime
activate_apex com.android.tzdata

# Adjust the linker configuration file (if needed).
#
# Check the linker configurations files on the "host system" and the "guest
# system". If these file names are different, rename the "guest system" linker
# configuration file within the chroot environment using the "host system"
# linker configuration file name.
ld_host_system_config_file_path=$(get_ld_host_system_config_file_path) || exit 1
echo -e "${green}Determining host system linker configuration:" \
  "\`$ld_host_system_config_file_path\`${nc}"
ld_guest_system_config_file_path=$(get_ld_guest_system_config_file_path) || exit 1
echo -e "${green}Determining guest system linker configuration:" \
  "\`$ld_guest_system_config_file_path\`${nc}"
if [[ "$ld_host_system_config_file_path" != "$ld_guest_system_config_file_path" ]]; then
  echo -e "${green}Renaming linker configuration file in chroot environment:" \
    "\`$ART_TEST_CHROOT$ld_guest_system_config_file_path\`" \
    "-> \`$ART_TEST_CHROOT$ld_host_system_config_file_path\`${nc}"
  adb shell mv -f "$ART_TEST_CHROOT$ld_guest_system_config_file_path" \
      "$ART_TEST_CHROOT$ld_host_system_config_file_path"
fi

# Sync the data directory to the chroot.
echo -e "${green}Syncing data directory...${nc}"
adb shell mkdir -p "$ART_TEST_CHROOT/data"
adb push "$ANDROID_PRODUCT_OUT/data" "$ART_TEST_CHROOT/"
