Bind Android smoke to build provenance and actual PCM assertions
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
param([Parameter(Mandatory)][string]$ApkPath, [Parameter(Mandatory)][string]$EvidenceDir)
|
||||
param([Parameter(Mandatory)][string]$ApkPath, [Parameter(Mandatory)][string]$EvidenceDir,
|
||||
[string]$SourceCommit=(& git rev-parse HEAD), [bool]$SourceDirty=[bool](& git status --porcelain), [string]$MetadataName='apk-inspection.json')
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$sdk = if ($env:ANDROID_SDK_ROOT) { $env:ANDROID_SDK_ROOT } else { Join-Path $env:LOCALAPPDATA 'Android/Sdk' }
|
||||
$aapt = Get-ChildItem -LiteralPath (Join-Path $sdk 'build-tools') -Filter aapt.exe -Recurse | Sort-Object FullName -Descending | Select-Object -First 1
|
||||
@@ -23,5 +24,5 @@ if (!$activity) { throw 'APK 시작 Activity를 찾지 못했습니다.' }
|
||||
if (($badging -join "`n") -match "uses-permission: name='android.permission.INTERNET'") { throw '오프라인 앱에 INTERNET 권한이 있습니다.' }
|
||||
[ordered]@{ apk=$ApkPath; apkSha256=(Get-FileHash -LiteralPath $ApkPath -Algorithm SHA256).Hash; package=$package;
|
||||
abis=$abis; activity=$activity; aaptCommand=('"' + $aapt.FullName + '" dump badging "' + $ApkPath + '"'); aaptExit=$nativeExit;
|
||||
sourceCommit=(& git rev-parse HEAD); sourceDirty=[bool](& git status --porcelain) } |
|
||||
ConvertTo-Json -Depth 4 | Set-Content -LiteralPath (Join-Path $EvidenceDir 'apk-metadata.json') -Encoding utf8
|
||||
sourceCommit=$SourceCommit; sourceDirty=$SourceDirty } |
|
||||
ConvertTo-Json -Depth 4 | Set-Content -LiteralPath (Join-Path $EvidenceDir $MetadataName) -Encoding utf8
|
||||
|
||||
Reference in New Issue
Block a user