Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
Magisk
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Magisk
Commits
0b82fe19
Commit
0b82fe19
authored
Sep 16, 2022
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update avd_test.sh
parent
af99c1b8
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
64 additions
and
51 deletions
+64
-51
avd_test.sh
scripts/avd_test.sh
+64
-51
No files found.
scripts/avd_test.sh
View file @
0b82fe19
#!/usr/bin/env bash
#!/usr/bin/env bash
set
-xe
cleanup
()
{
echo
-e
'\n\033[41m! An error occurred\033[0m\n'
pkill
-INT
-P
$$
wait
}
trap
cleanup EXIT
emu
=
"
$ANDROID_SDK_ROOT
/emulator/emulator"
emu
=
"
$ANDROID_SDK_ROOT
/emulator/emulator"
avd
=
"
$ANDROID_SDK_ROOT
/cmdline-tools/latest/bin/avdmanager"
avd
=
"
$ANDROID_SDK_ROOT
/cmdline-tools/latest/bin/avdmanager"
sdk
=
"
$ANDROID_SDK_ROOT
/cmdline-tools/latest/bin/sdkmanager"
sdk
=
"
$ANDROID_SDK_ROOT
/cmdline-tools/latest/bin/sdkmanager"
emu_args
=
'-no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim'
emu_args
=
'-no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim'
case
$(
uname
-m
)
in
'arm64'
|
'aarch64'
)
arch
=
arm64-v8a
;;
*
)
arch
=
x86_64
;;
esac
# Should be either 'google_apis' or 'default'
# Should be either 'google_apis' or 'default'
type
=
'google_apis'
type
=
'google_apis'
# We test these API levels for the following reason
# API 23: legacy rootfs w/o Treble
# API 26: legacy rootfs with Treble
# API 28: legacy system-as-root
# API 29: 2 Stage Init
# API 33: latest Android
api_list
=
'23 26 28 29 33'
cleanup
()
{
echo
-e
'\n\033[41m! An error occurred\033[0m\n'
pkill
-INT
-P
$$
wait
for
api
in
$api_list
;
do
set_api_env
$api
restore_avd
done
"
$avd
"
delete avd
-n
test
}
wait_for_boot
()
{
wait_for_boot
()
{
while
true
;
do
while
true
;
do
if
[
-n
"
$(
adb shell getprop sys.boot_completed
)
"
]
;
then
if
[
-n
"
$(
adb shell getprop sys.boot_completed
)
"
]
;
then
...
@@ -36,29 +40,32 @@ wait_for_boot() {
...
@@ -36,29 +40,32 @@ wait_for_boot() {
done
done
}
}
export
-f
wait_for_boot
set_api_env
()
{
test_api
()
{
local
pkg pid img_dir ramdisk features
# Setup emulator
pkg
=
"system-images;android-
$1
;
$type
;
$arch
"
pkg
=
"system-images;android-
$1
;
$type
;
$arch
"
local
img_dir
=
"
$ANDROID_SDK_ROOT
/system-images/android-
$1
/
$type
/
$arch
"
echo
-e
"
\n\0
33[44m* Testing
$pkg
\0
33[0m
\n
"
"
$sdk
"
$pkg
echo
no |
"
$avd
"
create avd
-f
-n
test
-k
$pkg
# Launch emulator and patch
img_dir
=
"
$ANDROID_SDK_ROOT
/system-images/android-
$1
/
$type
/
$arch
"
ramdisk
=
"
$img_dir
/ramdisk.img"
ramdisk
=
"
$img_dir
/ramdisk.img"
features
=
"
$img_dir
/advancedFeatures.ini"
features
=
"
$img_dir
/advancedFeatures.ini"
}
restore_avd
()
{
if
[
-f
"
${
ramdisk
}
.bak"
]
;
then
if
[
-f
"
${
ramdisk
}
.bak"
]
;
then
cp
"
${
ramdisk
}
.bak"
"
$ramdisk
"
cp
"
${
ramdisk
}
.bak"
"
$ramdisk
"
fi
fi
if
[
-f
"
${
features
}
.bak"
]
;
then
if
[
-f
"
${
features
}
.bak"
]
;
then
cp
"
${
features
}
.bak"
"
$features
"
cp
"
${
features
}
.bak"
"
$features
"
fi
fi
}
run_test
()
{
local
pid
# Setup emulator
echo
-e
"
\n\0
33[44m* Testing
$pkg
\0
33[0m
\n
"
"
$sdk
"
$pkg
echo
no |
"
$avd
"
create avd
-f
-n
test
-k
$pkg
# Launch emulator and patch
restore_avd
"
$emu
"
@test
$emu_args
&
"
$emu
"
@test
$emu_args
&
pid
=
$!
pid
=
$!
timeout
60 adb wait-for-device
timeout
60 adb wait-for-device
...
@@ -76,29 +83,35 @@ test_api() {
...
@@ -76,29 +83,35 @@ test_api() {
kill
-INT
$pid
kill
-INT
$pid
wait
$pid
wait
$pid
# Restore patches
restore_avd
if
[
-f
"
${
ramdisk
}
.bak"
]
;
then
cp
"
${
ramdisk
}
.bak"
"
$ramdisk
"
fi
if
[
-f
"
${
features
}
.bak"
]
;
then
cp
"
${
features
}
.bak"
"
$features
"
fi
}
}
# Build our executables
trap
cleanup EXIT
./build.py binary
./build.py app
# We test these API levels for the following reason
export
-f
wait_for_boot
# API 23: legacy rootfs w/o Treble
set
-xe
# API 26: legacy rootfs with Treble
# API 28: legacy system-as-root
if
grep
-q
'ENABLE_AVD_HACK 0'
native/src/init/init.hpp
;
then
# API 29: 2 Stage Init
echo
-e
'\n\033[41m! Please patch init.hpp\033[0m\n'
# API 33: latest Android
exit
1
fi
case
$(
uname
-m
)
in
'arm64'
|
'aarch64'
)
arch
=
arm64-v8a
;;
*
)
arch
=
x86_64
;;
esac
# Build our executables
./build.py all
for
api
in
23 26 28 29 33
;
do
for
api
in
$api_list
;
do
test_api
$api
set_api_env
$api
run_test
done
done
"
$avd
"
delete avd
-n
test
"
$avd
"
delete avd
-n
test
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment