utools-wayland-bin

maintainer acgq · 0 votes · scanned 2026-08-18 00:03:42.021799
LOW
View on AUR ↗
Why flagged The .deb is downloaded from open.u-tools.cn which appears to be uTools' own official CDN (the project's official site is u.tools), has a pinned sha256 checksum, and the bundled patch-native.js is a local file with its own checksum; no obfuscation, exfiltration, or unverifiable remote code execution is present, making this a normal repackaging of an official binary with a Wayland workaround patch.

Triggered rules

LOW Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

LOW AI review downgraded a static finding llm_review

The static rules flagged this MEDIUM, but an AI model (anthropic/claude-sonnet-4.6) reviewed the full PKGBUILD and judged it LOW (confidence 70%): The .deb is downloaded from open.u-tools.cn which appears to be uTools' own official CDN (the project's official site is u.tools), has a pinned sha256 checksum, and the bundled patch-native.js is a local file with its own checksum; no obfuscation, exfiltration, or unverifiable remote code execution is present, making this a normal repackaging of an official binary with a Wayland workaround patch.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM source=() URL on a non-standard host 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:16 "utools-${pkgver}.deb::https://open.u-tools.cn/download/utools_${pkgver}_amd64.deb"

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: acgq <chen330021@live.com>
2
3pkgname=utools-wayland-bin
4_pkgname=uTools
5pkgver=7.8.0
6pkgrel=1
7pkgdesc='uTools with a native Wayland global-hotkey wake-up crash workaround'
8arch=('x86_64')
9url='https://github.com/acgq/utools-wayland-fix'
10license=('LicenseRef-uTools')
11provides=("utools=${pkgver}")
12conflicts=('utools' 'utools-bin')
13depends=('electron22')
14options=('!strip')
15source=(
16 "utools-${pkgver}.deb::https://open.u-tools.cn/download/utools_${pkgver}_amd64.deb"
17 'patch-native.js'
18 'LICENSE.uTools.html'
19)
20sha256sums=(
21 '38fd1a7d1b558c55756e1436bd58e7d6fd46eb0271319a4af2113a6188e1857b'
22 '535581aa117704314113ffba02727bde37c87322ebf3e733d8a0c1977ef4e912'
23 '986625f2970528f051391a41b1ede526de70c896209fc5bf818934b88cc12cfd'
24)
25
26prepare() {
27 bsdtar -xf "${srcdir}/data."*
28 node "${srcdir}/patch-native.js" \
29 "${srcdir}/opt/${_pkgname}/resources/app.asar.unpacked/node_modules/addon/linux-x64.node"
30 sed -i "s#/opt/${_pkgname}/##g" "${srcdir}/usr/share/applications/utools.desktop"
31
32 local files=(chrome_100_percent.pak chrome_200_percent.pak chrome-sandbox icudtl.dat
33 libEGL.so libffmpeg.so libGLESv2.so libvk_swiftshader.so libvulkan.so.1
34 resources.pak vk_swiftshader_icd.json)
35 for file in "${files[@]}"; do
36 ln -sf "/usr/lib/electron22/${file}" "${srcdir}/opt/${_pkgname}/${file}"
37 done
38}
39
40package() {
41 install -Dm755 -d "${pkgdir}/usr/bin"
42 cp -Pr --no-preserve=ownership "${srcdir}/opt" "${pkgdir}"
43 ln -sf "/opt/${_pkgname}/utools" "${pkgdir}/usr/bin/utools"
44 install -Dm644 "${srcdir}/usr/share/applications/utools.desktop" \
45 "${pkgdir}/usr/share/applications/utools.desktop"
46
47 local sizes=(16x16 32x32 48x48 64x64 128x128 256x256 512x512)
48 for size in "${sizes[@]}"; do
49 install -Dm644 "${srcdir}/usr/share/icons/hicolor/${size}/apps/utools.png" \
50 "${pkgdir}/usr/share/icons/hicolor/${size}/apps/utools.png"
51 done
52 install -Dm644 "${srcdir}/LICENSE.uTools.html" \
53 "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.html"
54}
55

Scan history

Scanned at (UTC)SeverityRules
2026-08-18 00:03:42 LOW 3
2026-08-17 07:36:55 LOW 3
2026-08-17 07:35:18 MEDIUM 3

Report a package

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

0 / 4000
Your suggestion