“我在手机上跑了一下 PoC”不是可复现研究。真实手机混有账户、厂商改动、Root 模块和历史状态;未知样例一旦越界,回滚也不完整。本篇只使用 OWASP 官方 Android UnCrackable App,在无账号的 Android Studio AVD 中观察启动结果,不绕过检测、不提取 secret、不测试真实 App。最后从干净快照重复并销毁环境。
你会完成什么#
- 把一个模糊问题改写成可观察、可证伪的实验假设。
- 创建不含个人账号、文件与 USB 设备的可重置 AVD。
- 从 OWASP 官方页固定样例、版本、URL、大小和 SHA-256。
- 安装后只观察界面、包信息与限定日志,不做检测绕过。
- 恢复干净快照后重复一次,比较结果并删除实验状态。
先看结论#
| 样例类型 | 本篇处理方式 | 允许观察 | 禁止动作 |
|---|---|---|---|
| OWASP UnCrackable App | 在离线 AVD 安装并运行 | 启动画面、检测提示、包/版本、过滤日志 | 绕过 Root 检测、破解 secret、攻击真实 App |
| OWASP MASTG 测试 App | 作为后续安全训练候选 | 官方练习说明规定的范围 | 把技术迁移到无授权目标 |
| 自己写的 Debug APK | 适合替代样例 | 自己控制的日志与状态 | 夹带真实生产密钥/账号 |
| 未知论坛 PoC APK | 不执行 | 静态记录来源即可 | 安装、授 Root、联网 |
| unlocked-bootloader-backdoor-demo | 只读 README/源码与威胁模型 | 比较它假设的旧平台/解锁状态 | 编译、刷入、启动 reverse shell |
| 真实恶意软件 | 本篇不处理 | 无 | 下载、解包、运行或上传公共扫描服务 |
心智模型#
研究问题 → 单一假设 → 明确观察指标
↓
无账号 AVD → 冷启动 → 干净快照 S0
↓
官方样例 + URL/版本/SHA-256
↓
安装 → 只观察 → 保存限定证据 → 关机
↓
恢复 S0 → 同样步骤再做一次
├─ 一致:报告可复现范围
└─ 不一致:记录环境变量,不下结论
↓
删除 AVD/样例,保留去敏研究笔记
快照是实验状态的复位按钮,不是恶意代码的绝对隔离墙。AVD 仍与主机共享网络/NAT,剪贴板、共享文件、ADB 和开发工具也可能成为通道。因此只运行已知安全训练 App,并将网络、账户和宿主共享降到最低;未知恶意样本需要专业隔离设施,不属于新手教程。
工具清单#
| 工具/资料 | 本篇角色 | 输出 | 安全边界 |
|---|---|---|---|
| Android Studio AVD | 一次性 Android 运行环境 | AVD 配置、Android API/镜像、启动状态 | 不登录 Google、不映射个人目录、不接 USB |
| Emulator Snapshot | 保存 S0 并恢复重复实验 | 快照名、创建/恢复时间 | 快照不替代宿主隔离和可信样例 |
| OWASP UnCrackable App | 安全训练对象 | APK、包信息、启动提示 | 只观察 Level 1,不解题/绕过 |
| ADB | 安装、读包信息、过滤日志 | install 结果、dumpsys 摘要、logcat 片段 | 不授 Root、不改系统设置、不连接真实手机 |
| SHA-256 | 固定样例身份 | APK 摘要 | 证明两次是同一文件,不证明所有行为 |
| Cuttlefish | 以后做可编排 AOSP 实验 | 可配置虚拟设备 | 环境建设更复杂,本篇不用 |
项目全景:示例与研究记录的 36 个项目,一个不漏#
把样例仓库按“能否在隔离测试环境复现”组织:Android Root/模块样例、Hook 与完整性、无 Root API、攻击性 PoC、跨平台提权和普通 Android 示例;最后清理 root 词义误收。
| 技术路线 | 项目数 | 处理等级 | 在主题任务中的位置 |
|---|---|---|---|
| Android Root、模块与系统进程样例 | 5 | 候选路线 | 覆盖 Magisk/KernelSU/APatch 性能模块、SurfaceFlinger Hook、Huawei NVE、ZRoot 与 mkshrc 修改,要求模拟器或备用机、完整备份和逐项撤销。 |
| Hook、虚拟化与完整性检测样例 | 2 | 参考/审计 | 用 vbox/Pine、JNI 检测和 Xposed/Root 检测样例展示观测点,先运行自建 demo,再记录 Android 版本、ABI 和误报;不用于绕过第三方保护。 |
| 无 Root API、无障碍与静默安装示例 | 6 | 候选路线 | 集中说明 Android/data 测试、Auto.js、无障碍消息读取、SilentInstall、SMS Gateway 和 non-root demo 的真实权限,提示“示例能运行”不等于能读取任意私有数据。 |
| 攻击性 PoC 与靶场样例 | 6 | 隔离审计 | 后门、rootkit、CTF、Wi-Fi/PIN 暴力破解和解锁 Bootloader 持久化项目只做防守分析:说明影响、检测信号与隔离要求,不给部署或持久化步骤。 |
| FreeBSD、macOS、AWS 与 Linux 权限样例 | 4 | 参考/审计 | 将 FreeBSD non-root、macOS helper/DirtyCow、AWS root user 与 Linux eBPF 条目放在跨平台对照区,解释术语差异,不映射为 Android 操作。 |
| 其它 Android 开发样例 | 1 | 候选路线 | 对仍包含 Android 信号的项目逐项给出用途、是否真的需要 root、最小运行条件和验收结果,描述为空的仓库不得补写推测性教程。 |
| Root 词义误收与无关示例 | 12 | 边界复核 | 逐项覆盖剩余的 CNC、前端 root store、SwiftUI pop-to-root、家谱 roots、AI root cause、数学/水印论文和 root repository,明确迁类,不强行融入刷机步骤。 |
1. Android Root、模块与系统进程样例 · 5#
覆盖 Magisk/KernelSU/APatch 性能模块、SurfaceFlinger Hook、Huawei NVE、ZRoot 与 mkshrc 修改,要求模拟器或备用机、完整备份和逐项撤销。
本组共 5 项:5 个源项目、0 个 Fork,其中 1 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| R0rt1z2/hisi-nve | 主题用途:将 R0rt1z2/hisi-nve 纳入「Android Root、模块与系统进程样例」候选路线,根据 bootloader · huawei · kernel · C 核对功能、平台与版本适配。 上游自述(保留原文):Read and write Huawei's nvme image with ADB | 未归档源项目 · ★ 48 · GPL-3.0 · 2023-08-08。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
| PShocker/Android_hook_sf_draw_arm64 | 主题用途:将 PShocker/Android_hook_sf_draw_arm64 纳入「Android Root、模块与系统进程样例」候选路线,根据 C++ 核对功能、平台与版本适配。 上游自述(保留原文):hook surfaceflinger进程的eglSwapBuffers方式实现绘制,适用arm64 root下的安卓真机 | 未归档源项目 · ★ 37 · 协议未声明 · 2022-03-21。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
| gogogoghost/ZRoot | 主题用途:将 gogogoghost/ZRoot 纳入「Android Root、模块与系统进程样例」候选路线,根据 Java 核对功能、平台与版本适配。 上游自述(保留原文):Easy to use root on Android. For calling system service and more. | 未归档源项目 · ★ 8 · 协议未声明 · 2025-02-05。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
| DEMONNICA/Android-Performance-Optimizer | 主题用途:将 DEMONNICA/Android-Performance-Optimizer 纳入「Android Root、模块与系统进程样例」候选路线,根据 apatch-module · gaming · gaming-tools · Shell 核对功能、平台与版本适配。 上游自述(保留原文):Improve the speed and smoothness of your Android experience. | 未归档源项目 · ★ 8 · Apache-2.0 · 2026-06-13。活跃候选:先核对 README、最新 Release、目标版本与已知问题。 |
| luisadha/M3P | 主题用途:将 luisadha/M3P 纳入「Android Root、模块与系统进程样例」候选路线,根据 7175 · android · installation-scripts · Shell 核对功能、平台与版本适配。 上游自述(保留原文):$ANDROID_ROOT/etc/mkshrc : Mkshrc Mood Mod Project | 已归档源项目 · ★ 5 · GPL-3.0 · 2023-08-24。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。 |
2. Hook、虚拟化与完整性检测样例 · 2#
用 vbox/Pine、JNI 检测和 Xposed/Root 检测样例展示观测点,先运行自建 demo,再记录 Android 版本、ABI 和误报;不用于绕过第三方保护。
本组共 2 项:2 个源项目、0 个 Fork,其中 0 项已归档。它们用于对照、诊断或审计,不组成可批量安装的推荐清单。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| zhxacg/module_safetools | 主题用途:将 zhxacg/module_safetools 放在「Hook、虚拟化与完整性检测样例」中作对照或审计参考,使用 jni-aes-encryption · jni-check-tools · C 判断它与当前任务的边界。 上游自述(保留原文):jni加密解密,jni签名检测,jni模拟器检测,jni-xpose框架检测,jni-root机器检测 | 未归档源项目 · ★ 49 · 协议未声明 · 2025-06-23。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。 |
| cloak-box/vbox-demo | 主题用途:将 cloak-box/vbox-demo 放在「Hook、虚拟化与完整性检测样例」中作对照或审计参考,使用 Java 判断它与当前任务的边界。 上游自述(保留原文):基于vbox sdk 和 pine 在非ROOT环境下运行Xposed模块的实现(支持Android 9.0~14.0)。 | 未归档源项目 · ★ 6 · GPL-3.0 · 2024-09-01。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。 |
3. 无 Root API、无障碍与静默安装示例 · 6#
集中说明 Android/data 测试、Auto.js、无障碍消息读取、SilentInstall、SMS Gateway 和 non-root demo 的真实权限,提示“示例能运行”不等于能读取任意私有数据。
本组共 6 项:4 个源项目、2 个 Fork,其中 1 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| neal365/SilentInstall | 主题用途:将 neal365/SilentInstall 纳入「无 Root API、无障碍与静默安装示例」候选路线,根据 Java 核对功能、平台与版本适配。 上游自述(保留原文):android 9.0 silent install demo code (not root) | 未归档源项目 · ★ 11 · 协议未声明 · 2022-06-23。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
| charlesbel/Instagram-Messages-Extractor | 主题用途:将 charlesbel/Instagram-Messages-Extractor 纳入「无 Root API、无障碍与静默安装示例」候选路线,根据 Java 核对功能、平台与版本适配。 上游自述(保留原文):A demo of what we can do with an Accessibility Service on Android, like here, we can extract Instagram Messages withtout rooting the phone | 已归档源项目 · ★ 10 · 协议未声明 · 2020-08-29。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。 |
| demoshang/Auto.js | 主题用途:将 demoshang/Auto.js 纳入「无 Root API、无障碍与静默安装示例」候选路线,根据 Java 核对功能、平台与版本适配。 上游自述(保留原文):A UiAutomator on android, does not need root access(安卓平台上的JavaScript自动化工具) | 未归档 Fork · ★ 6 · NOASSERTION · 2021-09-06。Fork:采用前先与上游比较提交、Release 和维护者说明。 |
| xvisiosupport/android-non-root-demo | 主题用途:将 xvisiosupport/android-non-root-demo 纳入「无 Root API、无障碍与静默安装示例」候选路线,根据 C++ 核对功能、平台与版本适配。 上游自述(保留原文):未提供仓库简介 | 未归档源项目 · ★ 6 · 协议未声明 · 2026-05-15。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
| jaycee0610/RootScratch-SMS-API | 主题用途:将 jaycee0610/RootScratch-SMS-API 纳入「无 Root API、无障碍与静默安装示例」候选路线,根据 php · rootscratch · sms · PHP 核对功能、平台与版本适配。 上游自述(保留原文):Android SMS Gateway transforms your Android smartphone into an SMS gateway. It is a lightweight application that enables you to send SMS messages programmatically via an API, making it ideal for integrating SMS functionality into your applications or services. | 未归档源项目 · ★ 5 · 协议未声明 · 2025-02-25。边界命中:先读 README,确认它确实属于当前任务,再决定是否使用。 |
| k0mraid3/androidDataWithoutRootAPI33_TEST | 主题用途:将 k0mraid3/androidDataWithoutRootAPI33_TEST 纳入「无 Root API、无障碍与静默安装示例」候选路线,根据 仓库名、README 与发布记录 核对功能、平台与版本适配。 上游自述(保留原文):TEST | 未归档 Fork · ★ 5 · Apache-2.0 · 2023-01-16。Fork:采用前先与上游比较提交、Release 和维护者说明。 |
4. 攻击性 PoC 与靶场样例 · 6#
后门、rootkit、CTF、Wi-Fi/PIN 暴力破解和解锁 Bootloader 持久化项目只做防守分析:说明影响、检测信号与隔离要求,不给部署或持久化步骤。
本组共 6 项:6 个源项目、0 个 Fork,其中 0 项已归档。它们是风险名录,不是新手安装候选;阅读顺序只用于识别威胁、比较上游与 Fork,或在经授权的隔离环境做防御性审计。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| Esonhugh/sshd_backdoor | 主题用途:将 Esonhugh/sshd_backdoor 作为「攻击性 PoC 与靶场样例」的风险识别样本,只根据 backdoor · ebpf · offensive-security · C 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。 | 未归档源项目 · ★ 351 · 协议未声明 · 2023-02-05。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。 |
| sdushantha/meobrute | 主题用途:将 sdushantha/meobrute 作为「攻击性 PoC 与靶场样例」的风险识别样本,只根据 adb · android · bruteforce · Shell 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。 | 未归档源项目 · ★ 124 · MIT · 2022-03-30。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。 |
| LuigiVampa92/unlocked-bootloader-backdoor-demo | 主题用途:将 LuigiVampa92/unlocked-bootloader-backdoor-demo 作为「攻击性 PoC 与靶场样例」的风险识别样本,只根据 android · android-boot · android-root · C++ 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。 | 未归档源项目 · ★ 74 · GPL-3.0 · 2021-07-14。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。 |
| JFR-C/Boot2root-CTFs-Writeups | 主题用途:将 JFR-C/Boot2root-CTFs-Writeups 作为「攻击性 PoC 与靶场样例」的风险识别样本,只根据 仓库名、README 与发布记录 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。 | 未归档源项目 · ★ 62 · 协议未声明 · 2022-10-02。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。 |
| gojue/rootkit-sample | 主题用途:将 gojue/rootkit-sample 作为「攻击性 PoC 与靶场样例」的风险识别样本,只根据 C 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。 | 未归档源项目 · ★ 48 · 协议未声明 · 2022-03-19。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。 |
| stryker-project/swb | 主题用途:将 stryker-project/swb 作为「攻击性 PoC 与靶场样例」的风险识别样本,只根据 Shell 做防御性分流。 为避免转载攻击步骤或载荷,不复制上游操作性简介。 | 未归档源项目 · ★ 33 · Apache-2.0 · 2023-09-26。隔离条目:只用于风险识别、源码审计或经授权的防御实验;不要在日用机部署,也不要对第三方目标运行。 |
5. FreeBSD、macOS、AWS 与 Linux 权限样例 · 4#
将 FreeBSD non-root、macOS helper/DirtyCow、AWS root user 与 Linux eBPF 条目放在跨平台对照区,解释术语差异,不映射为 Android 操作。
本组共 4 项:4 个源项目、0 个 Fork,其中 0 项已归档。它们用于对照、诊断或审计,不组成可批量安装的推荐清单。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| zhuowei/MacDirtyCowDemo | 主题用途:将 zhuowei/MacDirtyCowDemo 放在「FreeBSD、macOS、AWS 与 Linux 权限样例」中作对照或审计参考,使用 C 判断它与当前任务的边界。 上游自述(保留原文):Get root on macOS 13.0.1 with CVE-2022-46689 (macOS equivalent of the Dirty Cow bug), using the testcase extracted from Apple's XNU source. | 未归档源项目 · ★ 411 · 协议未声明 · 2022-12-21。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。 |
| amclubs/am-serv00-x-ui | 主题用途:将 amclubs/am-serv00-x-ui 放在「FreeBSD、macOS、AWS 与 Linux 权限样例」中作对照或审计参考,使用 JavaScript 判断它与当前任务的边界。 上游自述(保留原文):serv00搭建x-ui面板, x-ui for freebsd 支持多协议多用户的 xray 面板, 本版本支持FreeBSD非root安装 | 未归档源项目 · ★ 219 · GPL-3.0 · 2025-06-25。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。 |
| trilemma-dev/SwiftAuthorizationSample | 主题用途:将 trilemma-dev/SwiftAuthorizationSample 放在「FreeBSD、macOS、AWS 与 Linux 权限样例」中作对照或审计参考,使用 authorization · macos · root · Swift 判断它与当前任务的边界。 上游自述(保留原文):Swift sample app for running privileged operations on macOS using a helper tool | 未归档源项目 · ★ 111 · MIT · 2024-03-08。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。 |
| aws-samples/aws-iam-root-user-activity-monitor | 主题用途:将 aws-samples/aws-iam-root-user-activity-monitor 放在「FreeBSD、macOS、AWS 与 Linux 权限样例」中作对照或审计参考,使用 HCL 判断它与当前任务的边界。 上游自述(保留原文):未提供仓库简介 | 未归档源项目 · ★ 37 · MIT-0 · 2023-02-13。参考条目:用于防御性观测、概念对照或实验室审计;不是可直接照搬的安装方案。 |
6. 其它 Android 开发样例 · 1#
对仍包含 Android 信号的项目逐项给出用途、是否真的需要 root、最小运行条件和验收结果,描述为空的仓库不得补写推测性教程。
本组共 1 项:1 个源项目、0 个 Fork,其中 1 项已归档。新手应先从“未归档的源项目”核对 README 和 Release,再用 Fork 追溯设备适配或历史差异;分组本身不等于推荐安装。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| nyngwang/NeoRoot.lua | 主题用途:将 nyngwang/NeoRoot.lua 纳入「其它 Android 开发样例」候选路线,根据 lua · neovim · Lua 核对功能、平台与版本适配。 上游自述(保留原文):Yet another light-weight rooter written in Lua | 已归档源项目 · ★ 65 · 协议未声明 · 2023-02-08。已归档:保留作历史、迁移或兼容性参考,不作为默认安装源。 |
7. Root 词义误收与无关示例 · 12#
逐项覆盖剩余的 CNC、前端 root store、SwiftUI pop-to-root、家谱 roots、AI root cause、数学/水印论文和 root repository,明确迁类,不强行融入刷机步骤。
本组共 12 项:12 个源项目、0 个 Fork,其中 0 项已归档。它们的平台、用途或分类存在边界,只作逐项核验,不当作默认安装候选。
| 项目 | 上游定位与识别信号 | 状态与采用前检查 |
|---|---|---|
| pluralitybook/plurality | 主题用途:将 pluralitybook/plurality 作为「Root 词义误收与无关示例」边界条目,通过 Jupyter Notebook 核对它实际是否属于本教程。 上游自述(保留原文):Root repository for ⿻數位 Plurality: The Future of Collaborative Technology and Democracy by E. Glen Weyl, Audrey Tang and the Plurality Community | 未归档源项目 · ★ 642 · CC0-1.0 · 2026-07-12。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| facebookresearch/stable_signature | 主题用途:将 facebookresearch/stable_signature 作为「Root 词义误收与无关示例」边界条目,通过 digital-watermarking · watermarking · Jupyter Notebook 核对它实际是否属于本教程。 上游自述(保留原文):Official implementation of the paper "The Stable Signature Rooting Watermarks in Latent Diffusion Models" | 未归档源项目 · ★ 523 · NOASSERTION · 2026-07-13。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| svobik7/next-roots | 主题用途:将 svobik7/next-roots 作为「Root 词义误收与无关示例」边界条目,通过 TypeScript 核对它实际是否属于本教程。 上游自述(保留原文):Next.js utility to generate i18n routes in the new APP directory. | 未归档源项目 · ★ 339 · MIT · 2026-04-24。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| go2ismail/Free-CRM | 主题用途:将 go2ismail/Free-CRM 作为「Root 词义误收与无关示例」边界条目,通过 adminlte · asp-net-core · clean-architecture · C# 核对它实际是否属于本教程。 上游自述(保留原文):Take control of your business with Free CRM, an open-source Customer Relationship Management (CRM) software. Built for businesses of all sizes, Free CRM is your all-in-one solution for driving growth. Experience the power of open-source CRM software without hidden costs. Powered by ASP.NET Core 9.x (Demo username: admin@root.com / pwd:123456) | 未归档源项目 · ★ 237 · NOASSERTION · 2026-07-12。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| banisterious/obsidian-charted-roots | 主题用途:将 banisterious/obsidian-charted-roots 作为「Root 词义误收与无关示例」边界条目,通过 ancestry · d3js · data-visualization · TypeScript 核对它实际是否属于本教程。 上游自述(保留原文):Professional genealogical tools for Obsidian. Interactive family charts, geographic maps, PDF reports, GEDCOM/Gramps import-export, evidence tracking, and fictional calendar support. Built for genealogists, historians, and worldbuilders. | 未归档源项目 · ★ 145 · MIT · 2026-06-26。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| ningyu1991/ArtificialGANFingerprints | 主题用途:将 ningyu1991/ArtificialGANFingerprints 作为「Root 词义误收与无关示例」边界条目,通过 Python 核对它实际是否属于本教程。 上游自述(保留原文):The official PyTorch implementation for ICCV'21 Oral paper 'Artificial GAN Fingerprints: Rooting Deepfake Attribution in Training Data' | 未归档源项目 · ★ 78 · NOASSERTION · 2023-04-16。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| Whiffer/SwiftUI-PopToRootExample | 主题用途:将 Whiffer/SwiftUI-PopToRootExample 作为「Root 词义误收与无关示例」边界条目,通过 Swift 核对它实际是否属于本教程。 上游自述(保留原文):SwiftUI example to Pop to Root View | 未归档源项目 · ★ 61 · 协议未声明 · 2022-07-02。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| RootLinkFE/roothub | 主题用途:将 RootLinkFE/roothub 作为「Root 词义误收与无关示例」边界条目,通过 blocks · lowcode · material · Vue 核对它实际是否属于本教程。 上游自述(保留原文):前端物料资产统一管理平台 | 未归档源项目 · ★ 55 · 协议未声明 · 2022-09-17。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| ivandotv/mobx-nextjs-root-store | 主题用途:将 ivandotv/mobx-nextjs-root-store 作为「Root 词义误收与无关示例」边界条目,通过 demo · mobx · mobx-react · TypeScript 核对它实际是否属于本教程。 上游自述(保留原文):Mobx root store implementation for next.js with server-side rendering | 未归档源项目 · ★ 53 · 协议未声明 · 2026-07-16。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| benmoggee/sre-agent | 主题用途:将 benmoggee/sre-agent 作为「Root 词义误收与无关示例」边界条目,通过 Python 核对它实际是否属于本教程。 上游自述(保留原文):SRE Agent — An AI-powered MCP server for production incident triage. Takes natural-language symptom reports, plans structured investigations using Gemini, executes parallel workers (logs, metrics, deploys, runbooks), synthesizes root-cause reports, and proposes remediation patches with human approval gates. | 未归档源项目 · ★ 36 · MIT · 2026-03-06。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| mercerheather476/turbo-garbanzo | 主题用途:将 mercerheather476/turbo-garbanzo 作为「Root 词义误收与无关示例」边界条目,通过 仓库名、README 与发布记录 核对它实际是否属于本教程。 上游自述(保留原文):!(AppAuth for Android)(https://rawgit.com/openid/AppAuth-Android/master/appauth_lockup.svg) (!(Download)(https://img.shields.io/maven-central/v/net.openid/appauth))(https://search.maven.org/search?q=g:net.openid%20appauth) (!(Javadocs)(http://javadoc.io/badge/net.openid/appauth.svg))(http://javadoc.io/doc/net.openid/appauth) (!(Build Status)(https://github.com/openid/AppAuth-Android/actions/workflows/build.yml/badge.svg))(https://github.com/openid/AppAuth-Android/actions/workflows/build.yml) (! | 未归档源项目 · ★ 34 · GPL-3.0 · 2022-08-07。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
| RootCNC/Root-Controller-ISO | 主题用途:将 RootCNC/Root-Controller-ISO 作为「Root 词义误收与无关示例」边界条目,通过 仓库名、README 与发布记录 核对它实际是否属于本教程。 上游自述(保留原文):ESP32 GRBL Controller for the Root CNC machines | 未归档源项目 · ★ 29 · NOASSERTION · 2023-12-19。边界条目:先核对实际平台、用途和分类理由,不作为默认安装源。 |
开始前#
使用单独工作目录,不放密钥、照片、工作代码或浏览器下载。Android Studio 与 Emulator 使用官方稳定版本;创建不含 Play Store/个人账号的 AVD,选择一个仍受支持的 API 镜像。关闭主机文件拖放/共享剪贴板(若当前前端提供),不把物理 Android 设备连接到同一 ADB 会话。
假设写成:“在固定 API、固定系统镜像、干净快照上,OWASP UnCrackable Level 1 的首次启动会产生可记录的挑战或环境检测界面;恢复快照后结果一致。”这个实验不评价检测“强不强”,也不尝试让 App 接受被 Root 环境。
操作步骤#
1. 写实验卡与允许范围#
记录研究问题、假设、唯一自变量(是否为第一次/恢复后运行)、观察指标(首屏文字、进程是否存活、限定日志)和停止条件。写下 Android API、AVD 名、系统镜像 build、Emulator 版本与主机系统。
从 OWASP Android Crackmes 页面选择 UnCrackable Level 1,只做观察。将“找 secret”“绕过检测”“附加动态 Hook”“比较银行 App”列为明确的非目标。
2. 创建干净 AVD 与快照 S0#
新建 AVD,不登录账号、不添加文件。启动后等待系统空闲,检查设置中没有工作资料/VPN/证书。运行 adb devices,确认只有 emulator- 开头的目标;若有真实设备,断开后重新核对。
完全关机再冷启动一次,确认环境稳定,然后在 Android Studio/Emulator 快照界面保存 S0-clean。记录创建时间与当前系统 build。不要在安装样例后覆盖 S0。
3. 固定样例并离线安装#
从 OWASP 官方 Crackmes 页面下载 APK到实验目录,记录页面 URL、下载时间、文件名和大小,计算 SHA-256。关闭 AVD 的网络(飞行模式或模拟器网络控制)后,使用 adb install 指向这个明确 APK。
记录安装结果,再读取包名、versionName/versionCode 和安装路径的只读信息。若系统要求降级、替换已有包或签名冲突,恢复 S0 后重新检查,不用 -d 或强制覆盖。
4. 观察一次并保存最小证据#
清空当前 logcat 缓冲后从启动器打开样例。只记录首屏/对话框、时间、进程是否继续存在,以及按包名/进程过滤的短日志片段;日志可能含设备信息,发布前去敏。不点击任何来自未知来源的链接,不输入真实凭据。
关闭 App,保存截图与实验卡,导出仅与样例时间窗口相关的日志,然后关闭 AVD。不要在这一步使用 Frida、调试器、反编译修改或 Root 环境绕过。
5. 恢复重复并销毁实验#
从 S0-clean 恢复,确认样例已不存在。再次核对 APK SHA-256,按完全相同顺序离线安装、启动和记录。比较两次首屏、进程状态和限定日志;一致只说明在所列环境可复现,不外推到所有 Android。
完成后关机并删除实验 AVD/快照与 APK,只保留去敏的实验卡、摘要和必要截图。最后只读浏览 unlocked-bootloader-backdoor-demo 的 README/源码,列出其对解锁 Bootloader、系统版本和执行链的假设,再用 2026 年 Android 安全公告检查这些假设的时代背景;不编译、不刷写、不连接监听器。
验证#
| 检查项 | 成功标准 | 不合格 |
|---|---|---|
| 样例身份 | OWASP 官方 URL、文件名、大小、SHA-256 完整 | 论坛镜像、短链或未知重新打包 |
| 实验隔离 | 无账号/个人文件/真实 USB,只有目标 emulator | ADB 同时连接主力手机或共享工作目录 |
| 基线 | S0 在安装前创建,恢复后样例不存在 | 快照在实验后覆盖或状态不明 |
| 观察范围 | 只记录 UI、包信息和限定日志 | 绕过检测、破解 secret 或连接外部目标 |
| 重复性 | 两次步骤/版本相同且结果可比较 | 中途更换镜像、APK 或网络条件 |
| 清理 | AVD、快照、APK删除,笔记已去敏 | 样例常驻、网络开启或日志含标识符 |
排错#
| 现象 | 常见原因 | 安全处理 |
|---|---|---|
| adb devices 看到真实手机 | 同一电脑仍连 USB/无线调试 | 断开并撤销无线调试,直到只剩 emulator |
| 快照恢复失败 | Emulator/系统镜像更新或快照损坏 | 删除 AVD重建 S0,不在脏状态继续 |
| APK 提示签名/降级冲突 | S0 不干净或选了错误文件 | 恢复/重建,不使用强制降级参数 |
| 两次界面不同 | 启动时序、API状态、网络或残留数据不同 | 记录变量并做第三次全新 S0 实验,不挑结果 |
| logcat 太多或含隐私 | 没按包/时间过滤、主机/AVD状态不干净 | 删除原始导出,重新采最小窗口并去敏 |
| PoC README 要刷写/反连 | 样例超出安全训练范围 | 只做源码威胁模型阅读,不构建执行 |
完成清单#
- 我写了可证伪假设、观察指标、非目标和停止条件。
- AVD 无账号/个人文件/真实设备,S0 在安装前创建。
- 样例来自 OWASP 官方页并记录 SHA-256。
- 我只观察 UI、包信息与限定日志,没有绕过或破解。
- 恢复 S0 后以同样步骤复现并报告适用环境。
- 我删除 AVD/快照/APK,只保留去敏笔记;高风险 demo 仅阅读源码。