scrcpy-git

maintainer DaniCatGames · 6 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The downloaded file is a prebuilt server binary from the project's own release script, verified with a checksum from the same source repository; this is a normal build step for scrcpy and not a supply-chain risk.

Triggered rules

LOW AI review downgraded a static finding llm_review

The static rules flagged this HIGH, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The downloaded file is a prebuilt server binary from the project's own release script, verified with a checksum from the same source repository; this is a normal build step for scrcpy and not a supply-chain risk.

1 higher static finding superseded - not the current verdict (shown for transparency)
HIGH Downloaded file is executed download_then_exec

A file fetched with curl/wget (not part of source=(), so never checksum-verified) is later made executable or run — a fetch-and-execute pattern split across statements.

  • PKGBUILD:46 -D prebuilt_server="../$_file" \

PKGBUILD

1 offending line(s) highlighted
1# Merged with official ABS scrcpy PKGBUILD by João, 2023/05/14 (all respective contributors apply herein)
2# Maintainer: Daniël Nazarkin <aur@danicatgames.nl>
3# Contributor: João Figueiredo & chaotic-aur <islandc0der@chaotic.cx>
4# Contributor: skydrome -at- protonmail
5
6pkgname=scrcpy-git
7pkgver=4.0_r3115.g1e085efc
8pkgrel=1
9pkgdesc='Display and control your Android device'
10arch=('x86_64')
11url='https://github.com/Genymobile/scrcpy'
12license=(Apache-2.0)
13depends=(android-tools ffmpeg sdl3 glibc libusb hicolor-icon-theme)
14makedepends=(git meson)
15conflicts=(${pkgname%-git})
16provides=(${pkgname%-git})
17source=("git+https://github.com/Genymobile/${pkgname%-git}.git#branch=dev")
18sha256sums=('SKIP')
19
20pkgver() {
21 cd ${pkgname%-git}
22 _ver="$(git describe | sed 's/^v//;s/-.*//')"
23 echo "${_ver}_r$(git rev-list --count HEAD).g$(git rev-parse --short HEAD)"
24}
25
26prepare() {
27 _url=$(grep '^PREBUILT_SERVER_URL=' "scrcpy/install_release.sh" | cut -d= -f2)
28 _sha256=$(grep '^PREBUILT_SERVER_SHA256=' "scrcpy/install_release.sh" | cut -d= -f2)
29 _file="${_url##*/}"
30
31 if [ ! -f "$_file" ]; then
32 curl -L -o "$_file" "$_url"
33 fi
34
35 echo "$_sha256 $_file" | sha256sum --check || {
36 echo "Error: server checksum failed"
37 exit 1
38 }
39}
40
41build() {
42 mkdir -p build
43 arch-meson build ${pkgname%-git} \
44 -D b_lto=true \
45 -D b_ndebug=true \
46 -D prebuilt_server="../$_file" \
47 --buildtype release
48 ninja -C build
49}
50
51package() {
52 DESTDIR="$pkgdir" ninja -C build install
53 install -Dm644 ${pkgname%-git}/LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
54}
55

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 LOW 2
2026-07-17 00:06:16 LOW 2
2026-07-16 00:05:41 LOW 2
2026-07-15 00:09:25 LOW 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion