pixelflasher
The non-standard host is git.android.com, which is the official Android project source; the downloaded code is used to regenerate protobuf definitions locally and is not executed as a prebuilt binary, representing normal build behavior for the project.
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 git.android.com, which is the official Android project source; the downloaded code is used to regenerate protobuf definitions locally and is not executed as a prebuilt binary, representing normal build behavior for the project.
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:38
'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=9.2.1.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'
'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=('66471ec6ae39bd08d7b7e98805e1bae004a815ce4c824b1f327636b8d7a8816f'
'SKIP'
'dbb31a1b359bdda2d6501ccf5d80fb888508619da948c3f98d4b0cb74f907615')
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/"
rm "$pkgdir/opt/$pkgname/bin"/7z{.dll,.exe}
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"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |