惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
云风的 BLOG
云风的 BLOG
I
InfoQ
小众软件
小众软件
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
雷峰网
雷峰网
P
Proofpoint News Feed
腾讯CDC
H
Help Net Security
V
Visual Studio Blog
美团技术团队
F
Fortinet All Blogs
MongoDB | Blog
MongoDB | Blog
阮一峰的网络日志
阮一峰的网络日志

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次
Universal Android Debloater NG:跨平台 Rust 安卓去 bloate...
Cheman · 2026-06-16 · via BlogFinder

今天在 GitHub Trending 上看到一个很有意思的项目:Universal Android Debloater Next Generation(UAD-ng),一个用 Rust 编写的跨平台 GUI 工具,帮你安全移除 Android 手机上的臃肿系统和厂商预装应用。

一、项目概述

UAD-ng 是经典 UAD 项目 的独立分支,由 Universal-Debloater-Alliance 社区维护。它的核心使命很明确:通过删除不必要的和可疑的系统应用来提升设备的隐私、能效、速度和内存占用,同时通过减少攻击面来增强安全性。

项目使用 Rust 语言和 Iced GUI 框架构建,支持 Windows、macOS 和 Linux 三大平台。目前最新版本为 v1.2.0。

核心特性:

  • 跨平台原生 GUI 应用(Iced 框架,原生渲染)
  • 基于 Community-Driven 的 Universal Debloat List(持续更新的包清单)
  • 支持对已连接 Android 设备的 ADB 调试
  • 对每个系统应用提供安全等级建议(Recommended / Safe / Unsafe 等)
  • 纯离线运行,无遥测和数据收集
  • 支持自动更新检查

二、技术原理

2.1 架构设计

UAD-ng 采用 Rust 全栈方案,摒弃了传统 Electron 或 Java 方案,带来更小的二进制体积和更低的内存占用。整个应用的架构分为三层:

  1. GUI 层 — 基于 Iced v0.14 构建,使用 Elm 架构(Model-View-Update)管理状态
  2. 核心逻辑层 — 包清单解析、ADB 命令封装、设备状态管理
  3. 数据层 — 社区维护的 JSON 包清单 (uad_lists.json),从 GitHub 远程获取或使用本地缓存

看一下项目核心依赖(Cargo.toml):

iced = { version = "=0.14.0", features = ["advanced"] }
ureq = { version = "3", features = ["json"] }
serde = { version = "^1.0", features = ["derive"] }
retry = "^2.0.0"

选择 iced = "=0.14.0"(精确锁定版本)是因为 Iced 的 API 仍在演进中,精确版本控制确保了 GUI 层面的稳定性。

2.2 编译特性系统

项目通过 Rust 的 features 机制提供了模块化编译选项,让用户按需构建:

[features]
default = ["wgpu", "self-update", "img"]
wgpu = []
self-update = ["flate2", "tar"]
no-self-update = []
img = ["image", "iced/image"]
  • wgpu:使用 wgpu 后端渲染(默认),VS OpenGL 后端,在 M1/M2/M3 Mac、高 DPI 屏幕上有更好表现
  • self-update:内置自更新能力(基于 flate2 + tar)
  • img:图片处理支持,用于显示应用图标

特别值得注意的是项目还定义了 profile.opt 优化配置,使用 LTO、strip 和 abort-on-panic,可以让二进制约再缩小 30-40%:

[profile.opt]
inherits = "release"
opt-level = "s"
codegen-units = 1
lto = "fat"
strip = true
panic = "abort"

2.3 包清单机制

UAD-ng 的核心资产是社区维护的包清单。这是一个 JSON 文件,记录了数千个 Android 系统包的安全等级、功能描述和移除建议。应用启动时会通过 GET 请求从 GitHub 拉取最新版本,同时保留本地缓存作为离线备份。

用 Rust 的 serde 进行强类型反序列化,用 retry 库处理网络请求失败重试,整体设计体现了 Rust 的错误处理哲学:明确、优雅、不 panic。

三、安装与快速开始

3.1 环境要求

  • 一台 Windows / macOS / Linux 电脑
  • Android 设备开启了 USB 调试(开发者选项 → USB 调试)
  • 电脑上安装了 ADB(Android Debug Bridge)
  • 一根数据线(或无线 ADB 连接)

3.2 安装方式

方式一:下载预编译二进制(推荐)

前往 Releases 页面 下载对应平台的版本,解压即可运行。

方式二:从源码构建

# 克隆仓库
git clone https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation.git
cd universal-android-debloater-next-generation

# 标准构建
cargo build --release

# 极致优化构建(更小体积)
cargo build --profile opt

四、使用方法与实战

4.1 基础用法

  1. 将 Android 设备通过 USB 连接电脑
  2. 在设备上允许 USB 调试授权
  3. 运行 UAD-ng
  4. 应用会自动识别已连接设备,加载包列表
  5. 浏览系统应用列表,每个应用都有安全等级标签
  6. 勾选需要移除的应用,点击「Uninstall」

4.2 进阶用法

UAD-ng 支持对预装应用执行两种操作:

  • 卸载(Uninstall):针对用户可卸载的应用
  • 禁用(Disable):对系统级强行预装的应用,通过 pm disable-user 命令使其隐藏

友情提示:操作前建议使用 pm list packages 导出当前包列表,以备恢复之需。

五、常见问题与解决方案

Q1:卸载后系统出问题怎么办?

UAD-ng 社区维护的清单已经对每个包的安全等级做了分级。建议仅移除标记为 Recommended 和 Safe 的包。如果不慎卸载了关键系统组件,可以通过 ADB 手动恢复:

adb shell cmd package install-existing <package.name>

Q2:设备无法被识别?

  • 确认 USB 调试已开启
  • 尝试 adb devices 检查连接状态
  • 更换 USB 数据线(部分线缆不支持数据传输)
  • 在 Linux 上可能需要配置 udev 规则

Q3:需要 root 权限吗?

不需要。UAD-ng 完全通过 ADB (Android Debug Bridge)工作,无需 root。不过有些系统级应用可能需要 root 才能彻底移除,UAD-ng 会标注这些限制。

六、总结

Universal Android Debloater Next Generation 不仅是一个去 bloatware 工具,更是一个社区驱动的隐私保护方案。使用 Rust + Iced 的技术选型体现了对性能和安全性的极致追求。如果你希望清理手机上的臃肿应用、降低隐私泄露风险,UAD-ng 是一个非常值得一试的选择。

关联生态中还衍生出了 Canta(手机端去 bloat 工具,使用 Shizuku 提权)和 AppManager(高级 Android 应用管理器),整个去 bloat 生态已经相当成熟。