vladimiracunadev-create/rootcause-mobile-inspector

GitHub: vladimiracunadev-create/rootcause-mobile-inspector

一款基于 Flutter 的 Android/iOS 移动端取证诊断传感器,通过本地规则引擎检测设备资源异常并生成可导出的取证证据。

Stars: 0 | Forks: 0

# RootCause Mobile Inspector ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ ██████╗ ██████╗ ██████╗ ████████╗ ██████╗ █████╗ ██╗ ██╗███████╗███████╗ ║ ██╔══██╗██╔═══██╗██╔═══██╗╚══██╔══╝██╔════╝██╔══██╗██║ ██║██╔════╝██╔════╝ ║ ██████╔╝██║ ██║██║ ██║ ██║ ██║ ███████║██║ ██║███████╗█████╗ ║ ██╔══██╗██║ ██║██║ ██║ ██║ ██║ ██╔══██║██║ ██║╚════██║██╔══╝ ║ ██║ ██║╚██████╔╝╚██████╔╝ ██║ ╚██████╗██║ ██║╚██████╔╝███████║███████╗ ║ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝ ║ M O B I L E I N S P E C T O R ║ Sensor forense de diagnóstico · Flutter · v0.1.0 ╚══════════════════════════════════════════════════════════════════════╝ ``` [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/vladimiracunadev-create/rootcause-mobile-inspector/actions/workflows/ci.yml) [![Release Android](https://static.pigsec.cn/wp-content/uploads/repos/cas/a1/a148d3afe7f71fea6195e5b2a1e8ef5761d1c08caee02c748541ca310eb9f56d.svg)](https://github.com/vladimiracunadev-create/rootcause-mobile-inspector/actions/workflows/release-android.yml) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![Platform](https://img.shields.io/badge/platform-Android%20%7C%20iOS-lightgrey.svg)](docs/LIMITACIONES.md) [![Version](https://img.shields.io/badge/version-0.1.0-green.svg)](docs/ROADMAP.md) 📲 **[下载 APK(最新版本) →](https://github.com/vladimiracunadev-create/rootcause-mobile-inspector/releases/latest)** · 📘 **[用户手册 →](docs/MANUAL_USUARIO.md)** (通俗易懂地解释每个功能) **RootCause Mobile Inspector 是 [rootcause-windows-inspector](https://github.com/vladimiracunadev-create/rootcause-windows-inspector) 的移动版兄弟项目:** 一款用于 **Android 和 iOS** 的取证诊断传感器,使用 **Flutter** 构建 (共享 Dart 代码 + Kotlin 和 Swift 原生收集器)。 它继承了同样的存在意义:**设备资源的任何异常扭曲——内存、存储、电池、网络、权限表面—— 都可能是某些事情正在发生的最初迹象。** RootCause 以不可知论的方式监控这些 扭曲,使用本地规则引擎对其进行评估, 并用证据解释判定结果。所有数据都保留在设备上:**零 遥测,零对外网络请求。** 它是一个**决策支持传感器**,而不是杀毒软件:它不会清除恶意软件,也不会 拦截任何东西——它只检测迹象(内存压力、存储告急、 电池温度异常、具有危险权限表面的 apps、 root/越狱指标)并留下可导出的证据。 ## 📱 平台 | 平台 | 状态 | 分发 | |---|---|---| | **Android** (8.0+, API 26) | 生产环境 | [Releases](../../releases) 中发布的签名 APK | | **iOS** (13+) | 在 CI 中编译 (`--no-codesign`) · 分发**已暂停** | 需要 Apple Developer 账户 → [`docs/RELEASE_MOVIL.md`](docs/RELEASE_MOVIL.md) | 共享代码 (`lib/`) 在两个平台上完全相同;原生 收集器如实声明了在每个操作系统上可以观察到什么 (→ [`docs/LIMITACIONES.md`](docs/LIMITACIONES.md))。 ## ⚡ 快速开始 ``` # 1. Dependencias flutter pub get # 2. Validar (格式 + 分析 + tests) dart format --output=none --set-exit-if-changed lib test flutter analyze flutter test # 3. 在已连接的设备上运行 flutter run # 4. APK release flutter build apk --release ``` ## 🔍 解决什么问题 | 问题 | RootCause 如何提供帮助 | |---|---| | 为什么手机运行缓慢? | 全局指示灯 + 带有阈值的内存和存储压力 | | 哪个 app 具有危险的权限表面? | 针对每个 app 的危险权限审计及风险评分 (Android) | | 有 root/越狱的迹象吗? | 如实呈现的指标(`su` 二进制文件,build `test-keys`)—— 是迹象,而非证据 | | 电池表现奇怪吗? | 带有警报阈值的温度、健康状态和充电状态 | | 我该如何保留当前状态的证据? | 取证 JSON 导出 + 本地捕获历史记录 | ## 🛡️ App 板块 | 标签页 | 描述 | |---|---| | **摘要** | 全局指示灯 + 规则引擎的发现 + 内存、存储和电池 | | **Apps** | 针对已安装 app 的危险权限审计,包含评分和标志 (overlay, sideload, device-admin) — Android | | **网络** | 活动传输 (WiFi/蜂窝网络)、VPN、测量到的网络、估算带宽和累计流量 | | **存储** | 数据卷的可用/已用空间 + app 自身的缓存 | | **设备** | 硬件、操作系统版本、安全补丁及 root/越狱指标 | | **历史记录** | 本地持久化的捕获记录,包含严重程度和基本差值 | | **关于** | 版本、作者、理念和本地隐私政策 | 每次捕获都可以导出为**取证 JSON**,其中包含与语言无关的发现 ID (可在不同设备以及 Windows 版本之间进行比较)。 ## 🧠 本地规则引擎 与桌面版 RootCause 的规则引擎原理相同,移植到 纯 Dart(100% 无需设备即可测试): - 内存压力(基于可用比率的警告/严重阈值) - 存储告急(数据卷的可用比率) - 电池温度与健康状态 - 因权限表面导致风险评分较高的 apps - root/越狱指标 每项发现都包含严重程度、证据和建议。全局判定结果 是最高严重程度 + 累积评分之和。 ## 📐 仓库结构 ``` rootcause-mobile-inspector/ ├── pubspec.yaml ← versión, dependencias Flutter ├── lib/ ← código compartido Dart │ ├── main.dart ← entrada + UI Material 3 (tabs, semáforo, export) │ ├── core/ │ │ ├── models.dart ← Snapshot, Finding, Verdict, severidades │ │ ├── rule_engine.dart ← motor de reglas puro (testeable) │ │ ├── snapshot_json.dart ← export forense JSON │ │ └── history_store.dart ← historial local (JSON Lines) │ ├── platform/collectors.dart ← puente MethodChannel a nativo │ └── ui/ ← pantallas y tema ├── android/ ← proyecto Android + colectores Kotlin (MethodChannel) ├── ios/ ← proyecto iOS + colectores Swift (MethodChannel) ├── test/ ← tests Dart del motor de reglas y export ├── docs/ ← arquitectura, manual, CI, releases, limitaciones └── .github/workflows/ ← ci.yml (Android+iOS+tests) · release-android.yml ``` ## 🚀 自动化验证 - **`ci.yml`** — Dart 格式检查、静态分析、测试、release APK 构建 (ubuntu) 以及未签名的 iOS 构建,在每次向 `main` 推送/PR 时运行。 - **`release-android.yml`** — tag `v*` → 以测试为关卡 + 签名的 release APK + `SHA256SUMS.txt` + 自动创建 GitHub Release。 - Actions 被锁定到 commit SHA,并且每个 workflow 的权限最小化。 完整指南 → [`docs/CI_GITHUB.md`](docs/CI_GITHUB.md) ## 📦 Releases 每次 Android release 会发布: | 文件 | 内容 | |---|---| | `RootCause-Mobile-Inspector--android.apk` | 已签名的 Android release App | | `SHA256SUMS.txt` | 完整性哈希值 | ### 在你的手机上安装 APK 1. 在手机上,打开[最新 release](../../releases/latest) 并 下载 `.apk`。 2. 打开时,Android 会要求授权你的浏览器或文件管理器**从未知 来源安装** —— 对于不在 Play Store 中的 apps 来说, 这是正常现象。 3. (推荐)验证完整性:文件的 SHA-256 必须 与 release 中的 `SHA256SUMS.txt` 一致。 4. 打开 **RootCause** 并按下 ↻ 进行你的首次捕获。 完整流程(包括签名以及通往 iOS/App Store 的路径) → [`docs/RELEASE_MOVIL.md`](docs/RELEASE_MOVIL.md) ## 📁 仓库交付状态 ### ✅ 包含 - 完整源代码(共享 Dart + Kotlin + Swift) - 在 Releases 中发布带有完整性哈希的已签名 release APK - 带有可配置阈值和 6 个发现类别的本地规则引擎 - 针对 app 的权限表面审计 (Android) - 本地捕获历史记录 + 取证 JSON 导出 - 支持西班牙语/英语双语界面,包含浅色/深色主题 - 多平台 CI 及基于 tag 的自动化 release(Actions 锁定到 SHA) - 架构、操作、威胁和各平台限制的文档 ### ❌ 不包含 - 可分发的 iOS `.ipa`(需要 Apple Developer 账户;**已暂停**) - 在 Google Play / App Store 上发布 - 基于 app 的网络流量检查(超出 v0.1 的范围) - Android/iOS 不允许普通用户 app 履行的任何承诺 ## ⚠️ 如实呈现的限制 - **iOS 不允许列出已安装的 apps 或检查其他进程**: apps 审计仅存在于 Android;在 iOS 上,根据操作系统的设计,它会报告为不可用。 - **自 Android 8 起,Android 也不再公开其他 apps 的 CPU/RAM**: 审计基于权限表面,而不是其他 app 的资源消耗。 - root/越狱指标是**迹象,而非证据**。 - 它不是杀毒软件或 EDR;它是补充,而不是替代品。 完整细节 → [`docs/LIMITACIONES.md`](docs/LIMITACIONES.md) ## 📚 阅读路径 | 角色 | 文档 | |---|---| | 🧑‍💻 开发者 | [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) · [`docs/BUILD_MOVIL.md`](docs/BUILD_MOVIL.md) | | 👤 最终用户 | [`docs/MANUAL_USUARIO.md`](docs/MANUAL_USUARIO.md) · [`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md) | | 🛡️ 安全 | [`docs/DETECCION_AMENAZAS.md`](docs/DETECCION_AMENAZAS.md) · [`docs/POLITICA_DE_PRIVACIDAD_LOCAL.md`](docs/POLITICA_DE_PRIVACIDAD_LOCAL.md) · [`SECURITY.md`](SECURITY.md) | | 📋 Release | [`docs/RELEASE_MOVIL.md`](docs/RELEASE_MOVIL.md) · [`docs/ROADMAP.md`](docs/ROADMAP.md) | | 📑 全部 | [`docs/INDEX.md`](docs/INDEX.md) | ## 📄 许可证 Apache 2.0 — 见 [`LICENSE`](LICENSE)。 ## ✍️ 作者 Vladimir Acuña · [@vladimiracunadev-create](https://github.com/vladimiracunadev-create)
标签:Android, DSL, Flutter, iOS, 安全诊断, 移动取证, 移动开发