Skip to content

Commit 505053f

Browse files
committed
Properly support AVD with minor SDK version
1 parent ccb264f commit 505053f

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

scripts/avd.sh

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,17 @@ case $(uname -m) in
3232
esac
3333

3434
cleanup() {
35-
pkill -INT -P $$
36-
wait
37-
trap - EXIT
3835
rm -f magisk_*.img
3936
"$avd" delete avd -n test
40-
exit 1
4137
}
4238

4339
test_error() {
40+
trap - EXIT
4441
print_error "! An error occurred"
42+
pkill -INT -P $$
43+
wait
4544
cleanup
45+
exit 1
4646
}
4747

4848
wait_for_boot() {
@@ -72,13 +72,14 @@ wait_emu() {
7272

7373
dump_vars() {
7474
local val
75-
for name in $@; do
75+
for name in $@ emu_args; do
7676
eval val=\$$name
7777
echo $name=\"$val\"\;
7878
done
7979
}
8080

8181
resolve_vars() {
82+
set +x
8283
local arg_list="$1"
8384
local ver=$2
8485
local type=$3
@@ -138,8 +139,14 @@ dl_emu() {
138139

139140
setup_emu() {
140141
local avd_pkg=$1
142+
local ver=$2
141143
dl_emu $avd_pkg
142144
echo no | "$avd" create avd -f -n test -k $avd_pkg
145+
146+
# avdmanager is outdated, it might not set the proper target
147+
local ini=$ANDROID_AVD_HOME/test.ini
148+
sed "s:^target\s*=.*:target=android-$ver:g" $ini > $ini.new
149+
mv $ini.new $ini
143150
}
144151

145152
test_emu() {
@@ -169,16 +176,15 @@ test_emu() {
169176
}
170177

171178
test_main() {
172-
local avd_pkg ramdisk vars
173-
vars=$(resolve_vars "emu_args avd_pkg ramdisk" $1 $2)
174-
eval $vars
179+
local ver avd_pkg ramdisk
180+
eval $(resolve_vars "ver avd_pkg ramdisk" $1 $2)
175181

176182
# Specify an explicit port so that tests can run with other emulators running at the same time
177183
local emu_port=5682
178184
emu_args="$emu_args -port $emu_port"
179185
export ANDROID_SERIAL="emulator-$emu_port"
180186

181-
setup_emu "$avd_pkg"
187+
setup_emu "$avd_pkg" $ver
182188

183189
# Restart ADB daemon just in case
184190
adb kill-server
@@ -211,24 +217,21 @@ test_main() {
211217
test_emu release
212218
fi
213219

214-
# Cleanup
215-
rm -f magisk_*.img
216-
"$avd" delete avd -n test
220+
cleanup
217221
}
218222

219223
run_main() {
220-
local avd_pkg vars
221-
vars=$(resolve_vars "emu_args avd_pkg" $1 $2)
222-
eval $vars
223-
setup_emu "$avd_pkg"
224+
local ver avd_pkg
225+
eval $(resolve_vars "ver avd_pkg" $1 $2)
226+
setup_emu "$avd_pkg" $ver
224227
print_title "* Launching $avd_pkg"
225228
"$emu" @test $emu_args 2>/dev/null
229+
cleanup
226230
}
227231

228232
dl_main() {
229-
local avd_pkg vars
230-
vars=$(resolve_vars "avd_pkg" $1 $2)
231-
eval $vars
233+
local avd_pkg
234+
eval $(resolve_vars "avd_pkg" $1 $2)
232235
print_title "* Downloading $avd_pkg"
233236
dl_emu "$avd_pkg"
234237
}

0 commit comments

Comments
 (0)