douyin-bin
maintainer zxp19821005
· 0 votes
· scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged
The package installs a prebuilt .deb from a GitHub repository not officially affiliated with Douyin, which could be a supply-chain risk if the host is compromised or the source is swapped.
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.
MEDIUM
AI review of an ambiguous pattern
llm_review
The static rules found a suspicious pattern they could not resolve, so an AI model (qwen/qwen3-235b-a22b-2507) reviewed it and judged it MEDIUM (confidence 85%): The package installs a prebuilt .deb from a GitHub repository not officially affiliated with Douyin, which could be a supply-chain risk if the host is compromised or the source is swapped.
PKGBUILD
1
# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2
pkgname=douyin-bin
3
_debname="com.${pkgname%-bin}.otohime"
4
pkgver=8.1.201
5
_electronversion=42
6
pkgrel=1
7
pkgdesc="Third-party Linux client for Douyin.(Prebuilt version.Use system-wide electron)第三方抖音 Linux 客户端"
8
arch=(
9
'aarch64'
10
'x86_64'
11
)
12
url="https://www.douyin.com"
13
_dlurl="https://github.com/kota-rina3/hokeshi"
14
license=('LicenseRef-douyin')
15
provides=("${pkgname%-bin}=${pkgver}")
16
conflicts=("${pkgname%-bin}")
17
depends=(
18
"electron${_electronversion}"
19
'nodejs'
20
)
21
source=(
22
"LICENSE-${pkgver}.html::${url}/draft/douyin_agreement/douyin_agreement_user.html?id=6773906068725565448"
23
"${pkgname%-bin}.sh"
24
)
25
source_aarch64=("${pkgname%-bin}-${pkgver}-aarch64.deb::${_dlurl}/releases/download/${pkgname%-bin}${pkgver}/${_debname}_${pkgver}_arm64.deb")
26
source_x86_64=("${pkgname%-bin}-${pkgver}-x86_64.deb::${_dlurl}/releases/download/${pkgname%-bin}${pkgver}/${_debname}_${pkgver}_amd64.deb")
27
sha256sums=('12e8d0a130a2dae1d6f52c9bc18c4ea572ae1366c21b083936310b780b9cf2c7'
28
'a774c2f54fbbeeaac3cefc0f7250796d30c86d27f0fd40b7eaf9c0fdb021623d')
29
sha256sums_aarch64=('bf686de21bca3cba3a9ea2a12caf644dc05527e8062c67baff3d3e954494c057')
30
sha256sums_x86_64=('9acf2c48052695f71c5341beb410db613b002bf56dccff2168daf3228227c953')
31
_get_app_dir() {
32
find "${srcdir}" -type f -name "resources.pak" -exec dirname {} + | head -n 1
33
}
34
_check_electron_version() {
35
echo "Verifying Electron version..."
36
local _main_exe=$(find "$(_get_app_dir)" -maxdepth 1 -type f -executable -printf '%s %p\n' | sort -nr | head -1 | cut -d' ' -f2-)
37
[[ -z "${_main_exe}" ]] && echo -e "\033[1;33mNote: Could not find Electron binary.\033[0m" && return
38
local _elec_ver=$(strings "${_main_exe}" | grep -oP 'Electron/\K[0-9]+' | head -1)
39
[[ -z "${_elec_ver}" ]] && echo -e "\033[1;33mNote: Could not determine Electron version.\033[0m" && return
40
[[ "${_elec_ver}" != "${_electronversion}" ]] &&
41
echo -e "\033[1;31mWarning: Electron version mismatch! Detected: ${_elec_ver}, Expected: ${_electronversion}\033[0m" ||
42
echo -e "Electron version verified: \033[1;31m${_elec_ver}\033[0m"
43
}
44
prepare() {
45
sed -i -e "
46
s/@electronversion@/${_electronversion}/g
47
s/@appname@/${pkgname%-bin}/g
48
s/@runname@/app/g
49
s/@cfgdirname@/${pkgname%-bin}/g
50
" "${srcdir}/${pkgname%-bin}.sh"
51
bsdtar -xf "${srcdir}/data."*
52
_check_electron_version
53
sed -i -e "
54
s/Categories=Video;/Categories=AudioVideo;/g
55
s/Exec=\/opt\/apps\/${_debname}\/files\/${pkgname%-bin}/Exec=${pkgname%-bin}/g
56
s/Icon=\/opt\/apps\/${_debname}\/files\/resources\/app\/${pkgname%-bin}.png/Icon=${pkgname%-bin}/g
57
" "${srcdir}/opt/apps/${_debname}/entries/applications/${pkgname%-bin}.desktop"
58
}
59
package() {
60
install -Dm755 "${srcdir}/${pkgname%-bin}.sh" "${pkgdir}/usr/bin/${pkgname%-bin}"
61
install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-bin}"
62
local _app_dir=$(_get_app_dir)
63
cp -a "${_app_dir}/resources/"* "${pkgdir}/usr/lib/${pkgname%-bin}/"
64
install -Dm644 "${srcdir}/opt/apps/${_debname}/entries/applications/${pkgname%-bin}.desktop" \
65
-t "${pkgdir}/usr/share/applications"
66
find "${srcdir}" -type f \( -name "*.png" -o -name "*.svg" \) -path "*share/icons/*" | while read -r _i; do
67
_extension="${_i##*.}"
68
_icon_path="${_i#*share/icons/}"
69
_target_dir="/usr/share/icons/$(dirname "${_icon_path}")"
70
install -Dm644 "${_i}" "${pkgdir}${_target_dir}/${pkgname%-bin}.${_extension}"
71
done
72
install -Dm644 "${srcdir}/LICENSE-${pkgver}.html" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.html"
73
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 11:14:12 | MEDIUM | 2 |