xref: /aosp_15_r20/tools/aadevtools/avd/patch_all_avds.sh (revision b32fbb6340ee6fe4a25d7b39d84085c084465677)
1*b32fbb63SXin Li#!/bin/bash
2*b32fbb63SXin Li
3*b32fbb63SXin Li# Copyright (C) 2021 The Android Open Source Project
4*b32fbb63SXin Li#
5*b32fbb63SXin Li# Licensed under the Apache License, Version 2.0 (the "License");
6*b32fbb63SXin Li# you may not use this file except in compliance with the License.
7*b32fbb63SXin Li# You may obtain a copy of the License at
8*b32fbb63SXin Li#
9*b32fbb63SXin Li#      http://www.apache.org/licenses/LICENSE-2.0
10*b32fbb63SXin Li#
11*b32fbb63SXin Li# Unless required by applicable law or agreed to in writing, software
12*b32fbb63SXin Li# distributed under the License is distributed on an "AS IS" BASIS,
13*b32fbb63SXin Li# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*b32fbb63SXin Li# See the License for the specific language governing permissions and
15*b32fbb63SXin Li# limitations under the License.
16*b32fbb63SXin Li
17*b32fbb63SXin Lireadme() {
18*b32fbb63SXin Li  echo '''
19*b32fbb63SXin LiChange all AVD configuration for bigger RAM, heap & data-disk sizes. So it can perform better.
20*b32fbb63SXin LiIf TAG_ID of AVD is empty, it will change all AVDs. e.g.
21*b32fbb63SXin Li
22*b32fbb63SXin LiRAM=4096 HEAP=576 DATA_DISK=6000 AVD_ROOT_DIR="$HOME/.android/avd" TAG_ID="android-automotive" ./patch_all_avds.sh
23*b32fbb63SXin Li'''
24*b32fbb63SXin Li}
25*b32fbb63SXin Li
26*b32fbb63SXin Li# set up for Linux or macOS
27*b32fbb63SXin LiOS="$(uname -s)"
28*b32fbb63SXin Liecho "Running on $OS"
29*b32fbb63SXin Liif [[ $OS == "Linux" ]]; then
30*b32fbb63SXin Li  SED_I_CMD="sed -i "
31*b32fbb63SXin Lielif [[ $OS == "Darwin" ]]; then
32*b32fbb63SXin Li  SED_I_CMD="sed -i ''"
33*b32fbb63SXin Lielse
34*b32fbb63SXin Li  echo "ERROR: this does not work on $OS"
35*b32fbb63SXin Li  exit
36*b32fbb63SXin Lifi
37*b32fbb63SXin Li
38*b32fbb63SXin LiMY_NAME=$0
39*b32fbb63SXin LiSCRIPT_NAME=${MY_NAME##*/}
40*b32fbb63SXin LiSCRIPT_DIR=${MY_NAME%/$SCRIPT_NAME}
41*b32fbb63SXin Liecho Running from $SCRIPT_DIR
42*b32fbb63SXin Li
43*b32fbb63SXin Li# Export VAR with the value of the key in a file as:
44*b32fbb63SXin Li# getValue "VAR" "KEY" "config.ini FILE"
45*b32fbb63SXin Li# e.g. getValue "MY_AVD_ID" "AvdId" "$avd_dir/config.ini"
46*b32fbb63SXin LigetValue() {
47*b32fbb63SXin Li    VAR=$1
48*b32fbb63SXin Li    KEY=$2
49*b32fbb63SXin Li    FILE=$3
50*b32fbb63SXin Li    LINE=$(cat $FILE | grep $KEY)
51*b32fbb63SXin Li    VALUE=${LINE##*=}
52*b32fbb63SXin Li    export "${VAR}=$VALUE"
53*b32fbb63SXin Li    echo "${VAR}=$VALUE"
54*b32fbb63SXin Li}
55*b32fbb63SXin Li
56*b32fbb63SXin Liif [[ -z $AVD_ROOT_DIR ]]; then
57*b32fbb63SXin Li  AVD_ROOT_DIR="$HOME/.android/avd"
58*b32fbb63SXin Lifi
59*b32fbb63SXin Liecho "AVD_ROOT_DIR=$AVD_ROOT_DIR"
60*b32fbb63SXin Li
61*b32fbb63SXin Liif [[ -z $RAM ]]; then
62*b32fbb63SXin Li    RAM=4096
63*b32fbb63SXin Lifi
64*b32fbb63SXin Liecho "RAM=$RAM"
65*b32fbb63SXin Li
66*b32fbb63SXin Liif [[ -z $HEAP ]]; then
67*b32fbb63SXin Li    HEAP=576
68*b32fbb63SXin Lifi
69*b32fbb63SXin Liecho "HEAP=$HEAP"
70*b32fbb63SXin Li
71*b32fbb63SXin Liif [[ -z $DATA_DISK ]]; then
72*b32fbb63SXin Li    DATA_DISK=6000
73*b32fbb63SXin Lifi
74*b32fbb63SXin Liecho "DATA_DISK=$DATA_DISK"
75*b32fbb63SXin Li
76*b32fbb63SXin Lifor file in $(ls "$AVD_ROOT_DIR"); do
77*b32fbb63SXin Li  avd_dir="$AVD_ROOT_DIR/$file"
78*b32fbb63SXin Li  if [[ $file == *.avd ]]; then
79*b32fbb63SXin Li    # Filter AVD type by TAG_ID
80*b32fbb63SXin Li    config_file="$avd_dir/config.ini"
81*b32fbb63SXin Li    getValue "MY_AVD_ID"  "AvdId" $config_file
82*b32fbb63SXin Li    if [[ -n $TAG_ID  ]]; then
83*b32fbb63SXin Li      getValue "MY_TAG_ID" "tag.id" $config_file
84*b32fbb63SXin Li      if [[ $TAG_ID != $MY_TAG_ID ]]; then
85*b32fbb63SXin Li        echo "SKIP: $MY_AVD_ID is $MY_TAG_ID rather $TAG_ID "
86*b32fbb63SXin Li        echo
87*b32fbb63SXin Li        continue
88*b32fbb63SXin Li      fi
89*b32fbb63SXin Li    fi
90*b32fbb63SXin Li    RAM=$RAM HEAP=$HEAP DATA_DISK=$DATA_DISK AVD_DIR=$avd_dir $SCRIPT_DIR/patch_avd.sh
91*b32fbb63SXin Li    echo
92*b32fbb63SXin Li  fi
93*b32fbb63SXin Lidone