You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
3.1 KiB

#!/bin/bash
# Copyright (C) 2020 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.
echo pack_avd_img.sh packs AVD images you built to be used on other hosts.
echo It copies necessary files from ANDROID_PRODUCT_OUT to OUT_DIR.
if [[ -z $ANDROID_PRODUCT_OUT ]]; then
echo "err: please set ANDROID_PRODUCT_OUT='/android/out/target/product/generic_x86_64'"
exit
fi
if [[ -z $ANDROID_BUILD_TOP ]]; then
echo "err: please set ANDROID_BUILD_TOP='/android'"
exit
fi
if [[ -z $OUT_DIR ]]; then
echo "err: please set OUT_DIR='/my/out/dir/x86_64'"
exit
fi
echo Packing AVD images from $ANDROID_PRODUCT_OUT to $OUT_DIR
if [[ ! -d $OUT_DIR ]]; then
mkdir $OUT_DIR
fi
echo System, qemu verion
cp $ANDROID_PRODUCT_OUT/system-qemu.img $OUT_DIR/system.img
echo Vendor, qemu verion
cp $ANDROID_PRODUCT_OUT/vendor-qemu.img $OUT_DIR/vendor.img
if [[ -f $ANDROID_PRODUCT_OUT/kernel-ranchu-64 ]]; then
echo Kernel: 64-bit, prebuilt
cp $ANDROID_PRODUCT_OUT/kernel-ranchu-64 $OUT_DIR/kernel-ranchu-64
else
echo Kernel: 64-bit for 32-bit userspaces, prebuilt
cp $ANDROID_PRODUCT_OUT/kernel-ranchu $OUT_DIR/kernel-ranchu
fi
echo Ramdisk, prebuilt
cp $ANDROID_PRODUCT_OUT/ramdisk-qemu.img $OUT_DIR/ramdisk.img
echo Encryptionkey, prebuilt
cp $ANDROID_PRODUCT_OUT/encryptionkey.img $OUT_DIR/encryptionkey.img
echo Userdata, prebuilt
# take prebuilt userdata.img
#Ref:https://cs.android.com/android/platform/superproject/+/master:development/build/sdk.atree?q=userdata.img&ss=android%2Fplatform%2Fsuperproject:development%2Fbuild%2F
cp $ANDROID_BUILD_TOP/device/generic/goldfish/data/etc/userdata.img $OUT_DIR/userdata.img
echo User data
#Todo: will this replace the need of userdata.img?
cp -r $ANDROID_PRODUCT_OUT/data $OUT_DIR/data
echo build properties
cp $ANDROID_PRODUCT_OUT/system/build.prop $OUT_DIR/build.prop
echo Verified Boot Parameters
cp $ANDROID_PRODUCT_OUT/VerifiedBootParams.textproto $OUT_DIR/VerifiedBootParams.textproto
echo Default AVD config.ini
cp $ANDROID_PRODUCT_OUT/config.ini $OUT_DIR/config.ini
echo Android Emulator Adviced Feature settings
cp $ANDROID_PRODUCT_OUT/advancedFeatures.ini $OUT_DIR/advancedFeatures.ini
echo
echo In $OUT_DIR:
ls -l $OUT_DIR
if [[ -n $AVD_IMAGE_ZIP ]]; then
rm $AVD_IMAGE_ZIP
echo Zipping $OUT_DIR to $AVD_IMAGE_ZIP
# to perserve ABI in the zip, assuming OUT_DIR always ends with ABI
# e.g. /path/to/x86_64
ABI=${OUT_DIR##*/} # = "x86_64"
PATH_TO_IMG_DIR=${OUT_DIR%/$ABI} # = "/path/to"
cd $PATH_TO_IMG_DIR
zip -r $AVD_IMAGE_ZIP $ABI
cd -
unzip -l $AVD_IMAGE_ZIP
fi