mirror of
https://github.com/actions/runner-images.git
synced 2025-12-31 22:43:22 +08:00
move source code to public
This commit is contained in:
166
images/macos/software-report/SoftwareReport.Android.psm1
Normal file
166
images/macos/software-report/SoftwareReport.Android.psm1
Normal file
@@ -0,0 +1,166 @@
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
|
||||
$os = Get-OSVersion
|
||||
|
||||
function Split-TableRowByColumns {
|
||||
param(
|
||||
[string] $Row
|
||||
)
|
||||
return $Row.Split("|") | ForEach-Object { $_.trim() }
|
||||
}
|
||||
|
||||
function Build-AndroidTableObject {
|
||||
param(
|
||||
[string] $PackageName,
|
||||
[string] $Description
|
||||
)
|
||||
return [PSCustomObject] @{
|
||||
"Package Name" = $PackageName
|
||||
"Description" = $Description
|
||||
}
|
||||
}
|
||||
|
||||
function Get-AndroidSDKRoot {
|
||||
return Join-Path $env:HOME "Library" "Android" "sdk"
|
||||
}
|
||||
|
||||
function Get-AndroidSDKManagerPath {
|
||||
$androidSDKDir = Get-AndroidSDKRoot
|
||||
return Join-Path $androidSDKDir "tools" "bin" "sdkmanager"
|
||||
}
|
||||
|
||||
function Get-AndroidInstalledPackages {
|
||||
$androidSDKManagerPath = Get-AndroidSDKManagerPath
|
||||
$androidSDKManagerList = Invoke-Expression "$androidSDKManagerPath --list --include_obsolete"
|
||||
$androidInstalledPackages = @()
|
||||
foreach($packageInfo in $androidSDKManagerList) {
|
||||
if($packageInfo -Match "Available Packages:") {
|
||||
break
|
||||
}
|
||||
|
||||
$androidInstalledPackages += $packageInfo
|
||||
}
|
||||
return $androidInstalledPackages
|
||||
}
|
||||
|
||||
function Build-AndroidSDKToolsTable {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[object] $packageInfo
|
||||
)
|
||||
|
||||
return $packageInfo | ForEach-Object {
|
||||
$packageInfoParts = Split-TableRowByColumns $_
|
||||
$packageName = $packageInfoParts[0]
|
||||
$packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
|
||||
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
|
||||
}
|
||||
}
|
||||
|
||||
function Build-AndroidSDKPlatformTable {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[object] $packageInfo
|
||||
)
|
||||
|
||||
return $packageInfo | ForEach-Object {
|
||||
$packageInfoParts = Split-TableRowByColumns $_
|
||||
$packageName = $packageInfoParts[0].split(";")[1]
|
||||
$packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
|
||||
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
|
||||
}
|
||||
}
|
||||
|
||||
function Build-AndroidSDKBuildToolsTable {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[object] $packageInfo
|
||||
)
|
||||
|
||||
return $packageInfo | ForEach-Object {
|
||||
$packageInfoParts = Split-TableRowByColumns $_
|
||||
$packageName = $packageInfoParts[0].replace(";", "-")
|
||||
$packageDescription = "Android SDK Build-Tools, Revision " + $packageInfoParts[1]
|
||||
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
|
||||
}
|
||||
}
|
||||
|
||||
function Build-AndroidNDKTable {
|
||||
param (
|
||||
[Parameter(Mandatory)][AllowEmptyString()]
|
||||
[string[]] $installedPackages
|
||||
)
|
||||
|
||||
$ndkInfo = @()
|
||||
|
||||
if ($os.IsLessThanBigSur) {
|
||||
$ndkInfo += [PSCustomObject] @{
|
||||
# Hardcode NDK 15 as a separate case since it is installed manually without sdk-manager (to none default location)
|
||||
"Version" = "15.2.4203891"
|
||||
"Path" = Join-Path (Get-AndroidSDKRoot) "android-ndk-r15c"
|
||||
}
|
||||
|
||||
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
|
||||
$ndkInfo += Get-ChildItem -Path $ndkFolderPath | ForEach-Object {
|
||||
return [PSCustomObject] @{
|
||||
"Version" = $_.Name
|
||||
"Path" = $_.FullName
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$ndkBundleInfo = $installedPackages | Where-Object { $_ -Match "ndk-bundle" } | Select-Object -First 1
|
||||
$ndkBundleVersion = (Split-TableRowByColumns $ndkBundleInfo)[1]
|
||||
$ndkInfo += [PSCustomObject] @{
|
||||
"Version" = $ndkBundleVersion
|
||||
"Path" = Join-Path (Get-AndroidSDKRoot) "ndk-bundle"
|
||||
}
|
||||
|
||||
$ndkInfo | ForEach-Object {
|
||||
$_.Path = $_.Path.Replace($env:HOME, '$HOME')
|
||||
}
|
||||
|
||||
return $ndkInfo
|
||||
}
|
||||
|
||||
function Build-AndroidUtilsTable {
|
||||
param (
|
||||
[Parameter(Mandatory)][AllowEmptyString()]
|
||||
[string[]] $installedPackages
|
||||
)
|
||||
|
||||
$utilsList = @("cmake", "Android Emulator")
|
||||
return $utilsList | ForEach-Object {
|
||||
$packageName = $_
|
||||
$packageInfo = $installedPackages | Where-Object { $_ -Match $packageName } | Select-Object -First 1
|
||||
$packageInfoParts = Split-TableRowByColumns $packageInfo
|
||||
return [PSCustomObject] @{
|
||||
"Package Name" = $packageName
|
||||
"Version" = $packageInfoParts[1]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Build-AndroidExtraPackagesTable {
|
||||
param (
|
||||
[Parameter(Mandatory)][AllowEmptyString()]
|
||||
[string[]] $installedPackages
|
||||
)
|
||||
|
||||
$extraPackages = @(
|
||||
"Android Support Repository",
|
||||
"Google Play services",
|
||||
"Google Repository",
|
||||
"Hardware_Accelerated_Execution_Manager"
|
||||
)
|
||||
|
||||
return $extraPackages | ForEach-Object {
|
||||
$packageId = $_
|
||||
$packageInfo = $installedPackages | Where-Object { $_ -Like "*${packageId}*" } | Select-Object -First 1
|
||||
$packageInfoParts = Split-TableRowByColumns $packageInfo
|
||||
return [PSCustomObject] @{
|
||||
"Package Name" = $packageInfoParts[2]
|
||||
"Version" = $packageInfoParts[1]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user