From e139c6d581122cdb7519f7c58f7161b921916f0e Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Wed, 14 Jul 2021 10:02:12 +0300 Subject: [PATCH] [macOS] Skip Intel HAXM installation on BigSur (#3698) * Remove HAXM installation as it doesn't work on Big Sur * Change test to validate successful kext load * Add HAXM to software report --- images/macos/provision/core/android-toolsets.sh | 11 +++++++---- .../macos/software-report/SoftwareReport.Android.psm1 | 8 ++++++++ .../software-report/SoftwareReport.Generator.ps1 | 6 +++++- images/macos/tests/Android.Tests.ps1 | 5 ++--- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh index ac9c6d03..6efe09c7 100755 --- a/images/macos/provision/core/android-toolsets.sh +++ b/images/macos/provision/core/android-toolsets.sh @@ -85,10 +85,13 @@ do done # Intel x86 Emulator Accelerator (HAXM installer) -# see Issue 31164 notes -# Command needs to be run under sudo. -chmod +x $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh -sudo $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh +# The Android Emulator uses the built-in Hypervisor.Framework by default, and falls back to using Intel HAXM if Hypervisor.Framework fails to initialize +# https://developer.android.com/studio/run/emulator-acceleration#vm-mac +# The installation doesn't work properly on macOS Big Sur, /dev/HAX is not created +if is_Less_BigSur; then + chmod +x $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh + sudo $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh +fi for addon_name in "${ANDROID_ADDON_LIST[@]}" do diff --git a/images/macos/software-report/SoftwareReport.Android.psm1 b/images/macos/software-report/SoftwareReport.Android.psm1 index 9be1d78a..7617e733 100644 --- a/images/macos/software-report/SoftwareReport.Android.psm1 +++ b/images/macos/software-report/SoftwareReport.Android.psm1 @@ -187,3 +187,11 @@ function Get-AndroidNDKVersions { return ($versions -Join "
") } + +function Get-IntelHaxmVersion { + kextstat | Where-Object { $_ -match "com.intel.kext.intelhaxm \((?(\d+\.){1,}\d+)\)" } | Out-Null + return [PSCustomObject] @{ + "Package Name" = "Intel HAXM" + "Version" = $Matches.Version + } +} \ No newline at end of file diff --git a/images/macos/software-report/SoftwareReport.Generator.ps1 b/images/macos/software-report/SoftwareReport.Generator.ps1 index 13252fb3..8321bd85 100644 --- a/images/macos/software-report/SoftwareReport.Generator.ps1 +++ b/images/macos/software-report/SoftwareReport.Generator.ps1 @@ -276,7 +276,11 @@ $markdown += New-MDNewLine # Android section $markdown += New-MDHeader "Android" -Level 3 -$markdown += Build-AndroidTable | New-MDTable +$androidTable = Build-AndroidTable +if ($os.IsLessThanBigSur) { + $androidTable += Get-IntelHaxmVersion +} +$markdown += $androidTable | New-MDTable $markdown += New-MDNewLine $markdown += New-MDHeader "Environment variables" -Level 4 $markdown += Build-AndroidEnvironmentTable | New-MDTable diff --git a/images/macos/tests/Android.Tests.ps1 b/images/macos/tests/Android.Tests.ps1 index 02fe6543..303a271f 100644 --- a/images/macos/tests/Android.Tests.ps1 +++ b/images/macos/tests/Android.Tests.ps1 @@ -83,8 +83,7 @@ Describe "Android" { } } - It "HAXM is installed" { - $haxmPath = Join-Path $ANDROID_SDK_DIR "extras" "intel" "Hardware_Accelerated_Execution_Manager" "silent_install.sh" - "$haxmPath -v" | Should -ReturnZeroExitCode + It "HAXM is installed" -Skip:($os.IsBigSur) { + "kextstat | grep 'com.intel.kext.intelhaxm'" | Should -ReturnZeroExitCode } } \ No newline at end of file