Add-Type -AssemblyName System.IO.Compression.FileSystem Write-Host "Opening outer zip..." $outerZip = [System.IO.Compression.ZipFile]::OpenRead('A:\firmware.zip') $innerEntry = $outerZip.Entries | Where-Object { $_.Name -like '*.zip' } | Select-Object -First 1 Write-Host "Extracting inner zip: $($innerEntry.Name) ($($innerEntry.Length) bytes)" $innerPath = 'A:\inner_firmware.zip' [System.IO.Compression.ZipFileExtensions]::ExtractToFile($innerEntry, $innerPath, $true) $outerZip.Dispose() Write-Host "Inner zip extracted to $innerPath" Write-Host "" Write-Host "Listing boot-related files in inner zip..." $innerZip = [System.IO.Compression.ZipFile]::OpenRead($innerPath) foreach ($entry in $innerZip.Entries) { if ($entry.FullName -match 'boot|init|scatter') { $sizeMB = [math]::Round($entry.Length / 1MB, 2) Write-Host " $($entry.FullName) - $sizeMB MB" } } $innerZip.Dispose()