xref: /aosp_15_r20/tools/aadevtools/avd/patch_avd.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 an AVD configuration for bigger RAM, heap & data-disk sizes. So it can perform better. e.g.
20*b32fbb63SXin LiRAM=4096 HEAP=576 DATA_DISK=6000 AVD_DIR="$HOME/.android/avd/Automotive_10_landscape_API_30.avd" ./patch_avd.sh
21*b32fbb63SXin Li
22*b32fbb63SXin Li'''
23*b32fbb63SXin Li}
24*b32fbb63SXin Li
25*b32fbb63SXin Liif [[ -z $AVD_DIR  ]]; then
26*b32fbb63SXin Li  readme
27*b32fbb63SXin Li  exit
28*b32fbb63SXin Lifi
29*b32fbb63SXin Li
30*b32fbb63SXin Li# set up for Linux or macOS
31*b32fbb63SXin LiOS="$(uname -s)"
32*b32fbb63SXin Liecho "Running on $OS"
33*b32fbb63SXin Liif [[ $OS == "Linux" ]]; then
34*b32fbb63SXin Li  SED_I_CMD="sed -i "
35*b32fbb63SXin Lielif [[ $OS == "Darwin" ]]; then
36*b32fbb63SXin Li  SED_I_CMD="sed -i ''"
37*b32fbb63SXin Lielse
38*b32fbb63SXin Li  echo "ERROR: this does not work on $OS"
39*b32fbb63SXin Li  exit
40*b32fbb63SXin Lifi
41*b32fbb63SXin Li
42*b32fbb63SXin LiMY_NAME=$0
43*b32fbb63SXin LiSCRIPT_NAME=${MY_NAME##*/}
44*b32fbb63SXin LiSCRIPT_DIR=${MY_NAME%/$SCRIPT_NAME}
45*b32fbb63SXin Liecho Running from $SCRIPT_DIR
46*b32fbb63SXin Li
47*b32fbb63SXin Liif [[ -z $RAM ]]; then
48*b32fbb63SXin Li    RAM=4096
49*b32fbb63SXin Lifi
50*b32fbb63SXin Liecho "RAM=$RAM"
51*b32fbb63SXin Li
52*b32fbb63SXin Liif [[ -z $HEAP ]]; then
53*b32fbb63SXin Li    HEAP=576
54*b32fbb63SXin Lifi
55*b32fbb63SXin Liecho "HEAP=$HEAP"
56*b32fbb63SXin Li
57*b32fbb63SXin Liif [[ -z $DATA_DISK ]]; then
58*b32fbb63SXin Li    DATA_DISK=6000
59*b32fbb63SXin Lifi
60*b32fbb63SXin Liecho "DATA_DISK=$DATA_DISK"
61*b32fbb63SXin Li
62*b32fbb63SXin LiAVD_CONFIG="$AVD_DIR/config.ini"
63*b32fbb63SXin Liif [[ ! -e $AVD_CONFIG ]]; then
64*b32fbb63SXin Li  echo "ERROR: no AVD config file at: $AVD_CONFIG"
65*b32fbb63SXin Li  exit
66*b32fbb63SXin Lifi
67*b32fbb63SXin Liecho "AVD_CONFIG=$AVD_CONFIG"
68*b32fbb63SXin Li
69*b32fbb63SXin Liecho "CHANGE: hw.ramSize=$RAM, vm.heapSize=$HEAP & disk.dataPartition.size=${DATA_DISK}M in $AVD_CONFIG"
70*b32fbb63SXin Li$SED_I_CMD '/^hw.ramSize/d' $AVD_CONFIG
71*b32fbb63SXin Li$SED_I_CMD '/^vm.heapSize/d' $AVD_CONFIG
72*b32fbb63SXin Li$SED_I_CMD '/^disk.dataPartition.size/d' $AVD_CONFIG
73*b32fbb63SXin Liecho "hw.ramSize=$RAM" >> $AVD_CONFIG
74*b32fbb63SXin Liecho "vm.heapSize=$HEAP" >> $AVD_CONFIG
75*b32fbb63SXin Liecho "disk.dataPartition.size=${DATA_DISK}M" >> $AVD_CONFIG
76*b32fbb63SXin Licat $AVD_CONFIG | grep "hw.ramSize"
77*b32fbb63SXin Licat $AVD_CONFIG | grep "vm.heapSize"
78*b32fbb63SXin Licat $AVD_CONFIG | grep "disk.dataPartition.size"
79