# 解压 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
}
