ADB - Weryfikacja czy aplikacje są debuggowalne

Po dodaniu w zmiennej środowiskowej PATH ścieżki do katalogu z adb.exe uruchamiany w Powershell skrypt

function Get-AdbPath {
# 1) Najpierw: adb z PATH (jeśli istnieje)
$cmd = Get-Command adb -ErrorAction SilentlyContinue
if ($cmd -and $cmd.Source -and (Test-Path $cmd.Source)) {
return $cmd.Source
}
# 2) Typowe lokalizacje SDK/Platform-tools
$candidates = @()
if ($env:LOCALAPPDATA) {
$candidates += (Join-Path $env:LOCALAPPDATA "Android\Sdk\platform-tools\adb.exe")
}
if ($env:USERPROFILE) {
$candidates += (Join-Path $env:USERPROFILE "AppData\Local\Android\Sdk\platform-tools\adb.exe")
}
$candidates += "C:\Android\platform-tools\adb.exe"
if ($env:ProgramFiles) {
$candidates += (Join-Path $env:ProgramFiles "Android\Android Studio\platform-tools\adb.exe")
}
# Uwaga: ProgramFiles(x86) w PS trzeba pobrać przez ${}
$pf86 = ${env:ProgramFiles(x86)}
if ($pf86) {
$candidates += (Join-Path $pf86 "Android\Android Studio\platform-tools\adb.exe")
}
# 3) Jeśli ustawione: ANDROID_SDK_ROOT / ANDROID_HOME
foreach ($root in @($env:ANDROID_SDK_ROOT, $env:ANDROID_HOME)) {
if ($root) {
$candidates += (Join-Path $root "platform-tools\adb.exe")
}
}
foreach ($p in $candidates) {
if ($p -and (Test-Path $p)) { return $p }
}
throw "Nie znaleziono adb.exe. Zainstaluj Android Platform-Tools lub dodaj platform-tools do PATH."
}
$adb = Get-AdbPath
& $adb shell pm list packages -3 |
ForEach-Object { $_ -replace '^package:' } |
ForEach-Object { $_.Trim() } |
Where-Object { $_ } |
Sort-Object |
ForEach-Object {
$pkg = $_
# pobierz tekst (stdout + stderr) i zrób prosty match
$dump = & $adb shell dumpsys package $pkg 2>&1 | Out-String
$isDebuggable = $dump -match '(debuggable=true|\bDEBUGGABLE\b)'
"{0}`tdebuggable={1}" -f $pkg, $isDebuggable
}

Tags: