123 lines
3.6 KiB
Batchfile
123 lines
3.6 KiB
Batchfile
@echo off
|
|
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
|
|
|
|
set AVD_DEVICE=%1
|
|
set DEVICE_API_VERSION=%2
|
|
set DEVICE_DATA_SIZE=%3
|
|
set DEVICE_RAM_SIZE=%4
|
|
|
|
if "%5" equ "-noninteractive" (
|
|
set PAUSE=
|
|
) else (
|
|
set PAUSE=pause
|
|
)
|
|
|
|
rem hardcoded versions for compatibility with non-Turnkey manual running
|
|
if "%AVD_DEVICE%" equ "" set AVD_DEVICE=pixel_6
|
|
if "%DEVICE_API_VERSION%" equ "" set DEVICE_API_VERSION=35
|
|
if "%DEVICE_DATA_SIZE%" equ "" set DEVICE_DATA_SIZE=48G
|
|
if "%DEVICE_RAM_SIZE%" equ "" set DEVICE_RAM_SIZE=6144
|
|
|
|
if not exist "%ANDROID_HOME%" (
|
|
echo Android SDK not found at: %ANDROID_HOME%
|
|
echo Unable to locate local Android SDK location. Did you run Android Studio after installing?
|
|
echo If Android Studio is installed, please run again with SDK path as parameter, otherwise download Android Studio 2022.2.1 from https://developer.android.com/studio/archive
|
|
%PAUSE%
|
|
exit /b 1
|
|
)
|
|
|
|
echo Android Studio SDK Path: %ANDROID_HOME%
|
|
|
|
set CMDLINETOOLS_PATH=%ANDROID_HOME%\cmdline-tools\latest\bin
|
|
if not exist "%CMDLINETOOLS_PATH%" (
|
|
set CMDLINETOOLS_PATH=%ANDROID_HOME%\tools\bin
|
|
if not exist "!CMDLINETOOLS_PATH!" (
|
|
echo Unable to locate sdkmanager.bat. Did you run Android Studio and install cmdline-tools after installing?
|
|
%PAUSE%
|
|
exit /b 2
|
|
)
|
|
)
|
|
|
|
if /i "%PROCESSOR_ARCHITECTURE%" equ "AMD64" (
|
|
set ABI=x86_64
|
|
) else if /i "%PROCESSOR_ARCHITECTURE%" equ "ARM64" (
|
|
set ABI=arm64-v8a
|
|
) else (
|
|
echo Unsupported architecture %ABI%.
|
|
%PAUSE%
|
|
exit /b 3
|
|
)
|
|
|
|
set AVD_TAG=google_apis_playstore
|
|
set AVD_PACKAGE=system-images^;android-%DEVICE_API_VERSION%^;%AVD_TAG%^;%ABI%
|
|
|
|
call "%CMDLINETOOLS_PATH%\sdkmanager.bat" "emulator" "%AVD_PACKAGE%" || (
|
|
echo Update failed. Please check the Android Studio install.
|
|
%PAUSE%
|
|
exit /b 4
|
|
)
|
|
|
|
set EMULATOR_PATH=%ANDROID_HOME%\emulator
|
|
if not exist "%EMULATOR_PATH%" (
|
|
echo Update failed. Did you accept the license agreement?
|
|
%PAUSE%
|
|
exit /b 5
|
|
)
|
|
|
|
set DEVICE_NAME=UE_%AVD_DEVICE%_API_%DEVICE_API_VERSION%
|
|
|
|
for /f "tokens=*" %%G in ('%EMULATOR_PATH%\emulator.exe -list-avds') do (
|
|
if "%%G" equ "%DEVICE_NAME%" (
|
|
echo Android virtual device %DEVICE_NAME% already exists...creation skipped.
|
|
goto :DONE
|
|
)
|
|
)
|
|
|
|
call "%CMDLINETOOLS_PATH%\avdmanager.bat" create avd -n "%DEVICE_NAME%" -k "%AVD_PACKAGE%" -g "%AVD_TAG%" -b "%ABI%" -d "%AVD_DEVICE%" -f || (
|
|
echo Android virtual device %DEVICE_NAME% creation failed.
|
|
%PAUSE%
|
|
exit /b 6
|
|
)
|
|
|
|
echo Android virtual device %DEVICE_NAME% created.
|
|
|
|
if "%ANDROID_USER_HOME%" equ "" set ANDROID_USER_HOME=%USERPROFILE%\.android
|
|
if "%ANDROID_EMULATOR_HOME%" equ "" set ANDROID_EMULATOR_HOME=%ANDROID_USER_HOME%
|
|
if "%ANDROID_AVD_HOME%" equ "" set ANDROID_AVD_HOME=%ANDROID_EMULATOR_HOME%\avd
|
|
|
|
set DEVICE_PATH=%ANDROID_AVD_HOME%\%DEVICE_NAME%.avd
|
|
set DEVICE_CONFIG=config.ini
|
|
set DEVICE_CONFIG_PATH=%DEVICE_PATH%\%DEVICE_CONFIG%
|
|
set DEVICE_TEMP_CONFIG_PATH=%DEVICE_CONFIG_PATH%.tmp
|
|
|
|
(echo AvdId=%DEVICE_NAME% & echo avd.ini.displayname=%DEVICE_NAME:_= %) > "%DEVICE_TEMP_CONFIG_PATH%"
|
|
|
|
for /f "tokens=1* delims=\=" %%G in (%DEVICE_CONFIG_PATH%) do (
|
|
(if "%%G" equ "PlayStore.enabled" (
|
|
echo %%G=yes
|
|
) else if "%%G" equ "disk.dataPartition.size" (
|
|
echo %%G=%DEVICE_DATA_SIZE%
|
|
) else if "%%G" equ "hw.gpu.enabled" (
|
|
echo %%G=yes
|
|
) else if "%%G" equ "hw.initialOrientation" (
|
|
echo %%G=landscape
|
|
) else if "%%G" equ "hw.keyboard" (
|
|
echo %%G=yes
|
|
) else if "%%G" equ "hw.ramSize" (
|
|
echo %%G=%DEVICE_RAM_SIZE%
|
|
) else (
|
|
echo %%G=%%H
|
|
)) >> "%DEVICE_TEMP_CONFIG_PATH%"
|
|
)
|
|
|
|
move /y "%DEVICE_TEMP_CONFIG_PATH%" "%DEVICE_CONFIG_PATH%" || (
|
|
echo Android virtual device %DEVICE_NAME% %DEVICE_CONFIG% update failed.
|
|
%PAUSE%
|
|
exit /b 7
|
|
)
|
|
|
|
:DONE
|
|
echo Success^^!
|
|
%PAUSE%
|
|
exit /b 0
|