36 lines
1.3 KiB
PowerShell
36 lines
1.3 KiB
PowerShell
# 解压 XAPK 并通过 adb install-multiple 安装 TNG
|
||
param(
|
||
[Parameter(Mandatory = $true)]
|
||
[string]$XapkPath
|
||
)
|
||
$ErrorActionPreference = "Stop"
|
||
$adb = "C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools\adb.exe"
|
||
|
||
if (-not (Test-Path $XapkPath)) {
|
||
Write-Host "文件不存在: $XapkPath" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
|
||
$extractDir = Join-Path ([IO.Path]::GetDirectoryName($XapkPath)) "tng_xapk_extracted"
|
||
if (Test-Path $extractDir) { Remove-Item $extractDir -Recurse -Force }
|
||
New-Item -ItemType Directory -Path $extractDir | Out-Null
|
||
|
||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||
[System.IO.Compression.ZipFile]::ExtractToDirectory((Resolve-Path $XapkPath), $extractDir)
|
||
|
||
$apks = Get-ChildItem $extractDir -Filter "*.apk" -Recurse | Sort-Object Name
|
||
if ($apks.Count -eq 0) {
|
||
Write-Host "XAPK 内未找到 apk 文件" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
|
||
Write-Host "找到 $($apks.Count) 个 APK,开始安装..." -ForegroundColor Cyan
|
||
$apkArgs = @("install-multiple", "-r") + ($apks | ForEach-Object { $_.FullName })
|
||
& $adb @apkArgs
|
||
if ($LASTEXITCODE -eq 0) {
|
||
Write-Host "TNG 安装成功" -ForegroundColor Green
|
||
& $adb shell monkey -p my.com.tngdigital.ewallet -c android.intent.category.LAUNCHER 1
|
||
} else {
|
||
Write-Host "安装失败,exit=$LASTEXITCODE" -ForegroundColor Red
|
||
}
|