夜雨聆风学习资料网

ARTICLE · 1272830

Hazel安卓下载器安全吗?72MB的APK里塞了一整套Python

Hazel安卓下载器安全吗?72MB的APK里塞了一整套Python

QUOTE

两个叫 Hazel 的软件,一个诞生在 2006 年、只跑在 Mac 上、按年收费;另一个诞生在 2026 年 8 月、活在安卓手机里、完全免费。它们连功能都对不上,却共用了一个名字——而搜索框里只有一个 Hazel。

—— T技研室

— 搜索框里只有一个 Hazel。而你装到手机上的这个,是 2026 年 8 月才出生的安卓下载器,跟 Mac 上那个用了二十年的文件整理工具,是两件毫不相干的事

本文看点

01

你在应用商店或者搜索结果里看到的那个 Hazel,和 macOS 上那个老牌文件整理工具毫无关系

02

72MB 的安装包里塞了一整套 CPython 解释器,外加 FFmpeg 和 QuickJS——这才是它体积失控的真正原因

03

签名、文件哈希、权限清单三项实测全部对上,官方渠道拿到的包是干净的

01

重名

两个 Hazel 其实是两个东西

先解决最容易踩的坑。

T技研室之前写过一篇讲旧金山地铁插软盘的文章,那期引了条评论说「Hazel 不是那个整理文件的软件吗」。这误会一点都不冤——同时占名。

macOS Hazel
Hazel
开发者
Noodlesoft
SibtainOcn(个人开发者)
干什么
按规则自动整理文件、重命名、归档
下载视频和音频
平台
只跑 macOS(需 macOS 12 以上)
安卓 7.0 以上
收费
付费订阅
免费,GPL-3.0 开源
出生年份
2006 年
2026 年 8 月

macOS 那个 Hazel 是老牌工具,靠「规则」吃饭——你在文件夹上设条件,它就按条件把文件挪走、改名、打标签,App Sweep 还能顺手清理已删软件留下的残留文件。二十年了。

而我们今天要拆的安卓这个 Hazel,是另一个东西。

— macOS Hazel 干的是这种活:按规则把文件自动改名、归档、挪到该去的位置。二十年了,收费订阅制

有意思的是,官方 README、CHANGELOG、官网三处没提过一个字,一个字都没有。项目自述的口号是「The art of saving media」,图标用的是一片叶子。

而 macOS Hazel 的经典图标,也是一片叶子。

两片叶子撞车,多半是巧合,也可能是致敬——不替它下结论。

02

本体

它到底做了什么

Hazel for Android 的自我定位很直白:把链接贴进去,它自己认出后面是什么。

核心能力:

项目
说明
支持站点
1500+ 个,含 YouTube、Instagram、TikTok、X、Reddit、SoundCloud、Bilibili
批量
粘贴单条、多条、整个播放列表、整个频道,排队下载
画质
360p / 720p / 1080p / 4K,下载前显示预计体积
后台
锁屏或切走 App 继续下载,通知栏看进度,可暂停恢复取消
后处理
SponsorBlock 去赞助片段、章节内嵌或拆分、字幕烧录或另存、离线视频转音频
特殊
直播录制;等首映开播后自动保存
隐私
隐身模式(不进媒体库、不记链接)、无账号、无广告、无统计
代理
HTTP / HTTPS / SOCKS5,所有连接都走代理不被绕过

界面上做了深浅色主题、多强调色、玻璃拟态,v1.1.15 那版还加了 8 种玻璃风格和 11 种强调色。语言支持 10 种,含简体中文。

一个细节值得注意:它支持自己搜索——不用先去别的网站找链接,直接在 App 里搜 YouTube、SoundCloud、Bandcamp,搜索用的是 NewPipe Extractor。

— Hazel for Android 干的完全是另一件事:把链接贴进去,它自己认出后面是什么,然后排队下载

03

拆包

72MB 到底装了什么

按惯例,安装包要先验一遍才敢说别的。我把官方 arm64 构建完整下下来拆开看。

先看体积构成。这个包 72.73 MB,其中 native 库有这些:

文件
体积
是什么
libpython.zip.so
14.3 MB
CPython
libffmpeg.so / libffprobe.so
数 MB
音视频合并与转码
libqjs.so
较小
QuickJS —— 一个 JS 引擎
libandroidx.graphics.path.so
较小
图形路径
libdatastore_shared_counter.so
很小
数据存储辅助

— 按官方 arm64-v8a 构建实测拆解,条目数 580。原生库体积取自实际文件

这很不寻常

绝大多数下载器只是给 yt-dlp 套一层壳——点一下按钮,调用系统里某个现成的命令行。而 Hazel 是把 一整套工具链一起打包,塞进手机里跑。

这解释了它的两个特点:

一是为什么这么大。14MB 的 Python 加上 FFmpeg,剩下才是 App 本体。

二是敢承诺自动更新。yt-dlp 的更新不是发个 App 版本就能带上的——那是个独立可执行文件,需要替换。官方给的通道是 Stable / Nightly / Master 三档,可自动检查下载。

顺带一提,F-Droid 给它打了一个负面特征标签:NonFreeNet。理由写得很直白——「使用 GitHub API 来检查和下载 yt-dlp 引擎更新」。也就是说,这个号称「不向任何服务器发送数据」的 App,确实会为了更新引擎去连 GitHub。

04

验签

三方对账怎么做的

一个下载器要装到手机上,它装的东西是你自己下回来的。所以第一件事是确认:是不是同一个包

我把三处独立来源摆在一起对账:

第一处,官网公布值。 开发者自己的文档里给出了签名证书的 SHA-256 指纹:

「0377e9c8352c017e42583cea1715c40c400a51c4045c268825ffc9bae1305c86」

F-Droid 元数据 我去翻了 F-Droid 仓库里的构建定义文件,里面有一行 AllowedAPKSigningKeys,写的就是这个值。

这行的含义比看起来重要:不匹配就拒绝安装。这不是一句承诺,是一道写死在代码里的闸门。

第三处,包里实际的证书。 我没有现成的解析工具(这台机器上 androguard、apksigner 都没有),就自己写了脚本,去 APK 二进制里定位签名块、解析出证书、算哈希。绕了两处弯之后取到结果:

「0377e9c8352c017e42583cea1715c40c400a51c4045c268825ffc9bae1305c86 —— 完全一致」

— 本机实测:从 APK v2 签名块解析出的证书 DER,与官网公布值、F-Droid 构建元数据 AllowedAPKSigningKeys 逐位一致

文件本身也做了同样的核对。F-Droid 的官方索引(index-v2.json)里记着每个构建的 SHA-256,我从 GitHub 下回来的 -fdroid-arm64-v8a 变体算出来是 21d51275...,与官方索引逐位相同。

三处对账,全绿。这套做法其实就是 F-Droid 信任机制的手动复现——如果你以后要装任何不在应用商店的 App,值得照着走一遍。

顺便说一个观察到的细节:这个包只用了 v2 签名。v2 是 Android 7.0 引入的现代方案,签名覆盖整个 APK 文件而不只是清单部分,防篡改强度更高。用 v2 是个正常且正确的选择,只是很多小项目还在用老的 v1。

05

分歧

同一个软件,两种权限

到这里一切正常。但我在对比包的时候发现了一件事,值得单独讲。

GitHub 上的 Release 里有两套构建:fdroid 变体和stable 变体。我怀疑它们不一样,就把两个都下下来对比。

结果:两个包各 580 个条目,只有 3 个文件有差异——AndroidManifest.xml、一个 dexopt 配置文件、还有一个 dex。差别就出在清单里:

权限
-fdroid- 变体
-stable 变体
网络、通知、前台服务、存储读写、唤醒锁
✅
✅
忽略电池优化
✅
✅
自定义动态广播权限
✅
✅
安装其他应用包
❌ 没有
⚠️ 有

REQUEST_INSTALL_PACKAGES 这条权限,意思是可以装别的应用。

在 F-Droid 变体里它不存在;在 stable 变体里存在。

差异的来源不难推断:stable 变体要自己从 GitHub 拉 yt-dlp 引擎更新,那个更新是个独立的可执行文件;而 F-Droid 版本走的是 F-Droid 客户端的更新机制,不需要这条权限。

权限面不一样 而且 F-Droid 官方索引里记录的权限清单,确认只有 10 条,不含安装权限。

这也算解释了 F-Droid 为什么在页面上特意提醒你「直接下 APK 装不会收到更新通知,是一种不太安全的下载方式,建议用 F-Droid 客户端」——它不只是在说更新方便,是在给你权限更小的那一份。

顺便更正一个流传的说法:网上一些 APK 聚合站列出的 11 条权限清单,对应的是 stable 变体,不是 F-Droid 变体。两者混着看会得出偏大的风险判断。

06

清单

怎么自己判断一个 APK 值不值得装

这一节是这篇最实用的部分。上面那套流程不难,全部可以用现成工具完成:

步骤
怎么做
查什么
1 · 认包名
设置里看应用信息
是不是官方那个名,跟宣传是否一致
2 · 验签名
AppVerifier,或用 apksigner 打印证书指纹
与官方公布的指纹逐位比对
3 · 对哈希
从 F-Droid 的 index-v2.json 里查该版本的 sha256
与你手上的文件逐位比对
4 · 查权限
F-Droid 页面或解包读清单
有没有超出功能所需的敏感权限
5 · 认渠道
只走官方列出的那几个
第三方聚合站常挂旧版,还可能被二次打包

第 3 步是最容易忽略、也最有效的一步。改签名就换哈希,而哈希是公开可查的——只要拿 F-Droid 索引当基准,改过包就一定露馅。

还有一条通用原则:优先选权限更小的那份。F-Droid 之所以值得多花一步,就是这个原因。

07

结论

一个值得信任,但还很年轻的东西

回到开头那个问题:这个 Hazel 安卓下载器安全吗。

安装包本身是干净的——签名三方对账一致,文件哈希与官方索引逐位相同,功能代码全在 GitHub 上开源,GPL-3.0。

但有两件事得说清楚。

第一,它很年轻。 仓库建于 2026 年 8 月 28 日,到今天满打满算两个月。12 个版本里有 5 个是 10 月一个月内发的——v1.1.11 到 v1.1.15,平均三天一版。这种节奏说明开发者非常勤奋,也说明没经历长期检验。GitHub 上 129 个 star、8 个 fork,全渠道累计下载 3610 次(arm64 单变体 2363 次),是一个刚起步的项目。

它不在 Play 上架 官方给的理由很简单:Play 的政策要求这个应用不能再分发它下载到的内容。而这一限制反过来解释了为什么它的功能设计得比同类更激进——直播录制、首映自动保存、SOCKS5 全局代理,这些在应用商店里都很难过审。

— 数据取自 GitHub API Releases 与仓库元数据实测。下载量为全部 12 个版本、所有架构构建的累计值

所以我的判断是:认准渠道 对一个两个月大、由个人开发者维护的下载器来说,把上面那套核验流程走一遍,两分钟的事。

∞

索引

硬核考古 · 第 07 期

这一期拆的是软件,继续把前六期串起来看,规律其实很清楚:标准滞后于现实。

期号
文章
搜关键词
01
无人出租车都上街了,旧金山地铁还在插软盘发车
地铁 软盘
02
你连的 5G Wi-Fi,比 5G 手机老了二十岁
5G WiFi
03
翻完 179 条评论,我找到个 4.9 分、没广告的听书 App
听书 App
04
110V 和 220V 打了 144 年,标准早就能统一了
110V 220V
05
加油站禁打手机与静电:真凶是静电,不是手机信号
加油站 静电
06
飞机上要开飞行模式 35 年,它保护的不是飞机
飞行模式
07
Hazel 安卓下载器安全吗?72MB 的 APK 拆解
Hazel 下载器 安卓下载器

「下一期讲【为什么手机充到 80% 就变慢】,写完会在搜『充电变慢』时排在前面。」

T技研室 · 只做标准考据与机制拆解

END

REFERENCE

F-Droid 软件页《Hazel》(com.hazel.android),含版本历史、构建日志、PGP 签名与 anti-features 说明,f-droid.org/zh_Hans/packages/com.hazel.android/

F-Droid 官方仓库索引 index-v2.json(com.hazel.android 条目),含各构建 SHA-256 与 IPFS CID,f-droid.org/repo/index-v2.json

F-Droid 构建定义 fdroiddata/metadata/com.hazel.android.yml,含 AllowedAPKSigningKeys、AutoUpdateMode、VercodeOperation

F-Droid 可复现构建验证服务器条目,verification.f-droid.org/packages/com.hazel.android/

F-Droid《Anti-Features》说明文档(NonFreeNet 释义),f-droid.org/docs/Anti-Features/

Hazel for Android 官方网站与使用文档,sibtainocn.github.io/Hazel/hazel/

GitHub 仓库 SibtainOcn/Hazel(源码、Releases、CHANGELOG、README),github.com/SibtainOcn/Hazel

本机实测记录:官方 arm64 构建文件 SHA-256、APK v2 签名块证书 DER 指纹、AndroidManifest 权限清单、两变体条目差异比对

Noodlesoft《Hazel》官方站与手册(macOS 版功能与授权信息),noodlesoft.com

yt-dlp / NewPipe Extractor / Media3 / FFmpeg 项目文档(Hazel 所依赖的开源组件)

Pexels License(配图授权说明),pexels.com/license

相关学习资料