pixelflasher
The non-standard host is a legitimate project source (android.googlesource.com) used to fetch update_engine for regenerating protos; this is a normal part of building the project from source and not a supply-chain risk.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The non-standard host is a legitimate project source (android.googlesource.com) used to fetch update_engine for regenerating protos; this is a normal part of building the project from source and not a supply-chain risk.
1 higher static finding superseded - not the current verdict (shown for transparency)
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:39
'git+https://android.googlesource.com/platform/system/update_engine.git'
PKGBUILD
1 offending line(s) highlighted# Maintainer: Mark Wagie <mark dot wagie at proton dot me>
pkgname=pixelflasher
pkgver=10.2.0.0
pkgrel=1
pkgdesc="Pixel phone flashing GUI utility with features."
arch=('any')
url="https://github.com/badabing2005/PixelFlasher"
license=('GPL-3.0-or-later')
depends=(
'hicolor-icon-theme'
'payload_dumper'
'python-beautifulsoup4'
'python-bsdiff4'
'python-chardet'
'python-cryptography'
'python-darkdetect'
'python-json5'
'python-lz4'
'python-markdown'
'python-packaging'
'python-platformdirs'
'python-polib'
'python-protobuf'
'python-psutil'
'python-pyperclip'
'python-requests'
'python-rsa'
'python-wxpython'
'xdg-utils'
)
makedepends=('git')
optdepends=(
'android-tools: Use system platform tools'
'libnotify: Display system toast notifications'
'scrcpy: Launch Screen Copy'
)
options=('!strip')
source=("PixelFlasher-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz"
'git+https://android.googlesource.com/platform/system/update_engine.git'
'PixelFlasher.desktop')
sha256sums=('853a5a4aa64f54eec79545210c0a4c7a8e2590062c03ec24fd53b40e3a9e7937'
'SKIP'
'cd96ad8759d7cb5b530aa7b542b422be5f08d92ad92f28fcdf8413d3015dc7cb')
prepare() {
# Regenerate protos
protoc --proto_path=update_engine --python_out=. update_metadata.proto
cp -vf update_metadata_pb2.py "PixelFlasher-$pkgver/update_metadata_pb2.py"
}
build() {
cd "PixelFlasher-$pkgver"
python compile_po.py
}
package() {
cd "PixelFlasher-$pkgver"
install -Dm755 bin/* -t "$pkgdir/opt/$pkgname/bin/"
# Remove Windows & Mac binaries
rm "$pkgdir/opt/$pkgname/bin"/7z{.dll,.exe}
rm "$pkgdir/opt/$pkgname/bin"/erofs-extract-{macos,windows}-*
rm "$pkgdir/opt/$pkgname/bin"/pluck-{darwin,windows}-*
for f in *.py *.json *.pem *.crt; do
install -m644 "${f}" -t "$pkgdir/opt/$pkgname/"
done
install -Dm644 images/*.png -t "$pkgdir/opt/$pkgname/images/"
install -Dm644 images/pif/*.png -t "$pkgdir/opt/$pkgname/images/pif/"
chmod +x "$pkgdir/opt/$pkgname/PixelFlasher.py"
install -d "$pkgdir/usr/bin"
ln -s "/opt/$pkgname/PixelFlasher.py" "$pkgdir/usr/bin/PixelFlasher"
for i in 64 128 256; do
install -Dm644 "images/icon-dark-${i}.png" \
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
done
pushd locale
for lang in $(ls -d */); do
install -Dm644 "${lang%%/}/LC_MESSAGES/$pkgname.mo" -t \
"$pkgdir/opt/$pkgname/locale/${lang%%/}/LC_MESSAGES/"
done
popd
install -Dm644 "$srcdir/PixelFlasher.desktop" -t "$pkgdir/usr/share/applications/"
# Compile Python bytecode
python -m compileall -d / "$pkgdir/opt/$pkgname"
python -O -m compileall -d / "$pkgdir/opt/$pkgname"
}
Changes since previous scan
--- PKGBUILD @ 2026-10-31 00:07+++ PKGBUILD @ 2026-11-01 00:21@@ -1,6 +1,6 @@ # Maintainer: Mark Wagie <mark dot wagie at proton dot me> pkgname=pixelflasher-pkgver=10.1.1.1+pkgver=10.2.0.0 pkgrel=1 pkgdesc="Pixel phone flashing GUI utility with features." arch=('any')@@ -38,7 +38,7 @@ source=("PixelFlasher-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz" 'git+https://android.googlesource.com/platform/system/update_engine.git' 'PixelFlasher.desktop')-sha256sums=('c106652b9de4dc1e2a12e15f6d02816d3173855d2050d26ce9868ae50df81e7f'+sha256sums=('853a5a4aa64f54eec79545210c0a4c7a8e2590062c03ec24fd53b40e3a9e7937' 'SKIP' 'cd96ad8759d7cb5b530aa7b542b422be5f08d92ad92f28fcdf8413d3015dc7cb') Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 17:58:44 | Medium | 1 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |