ahmed-farhanur-rashid/rift-android

GitHub: ahmed-farhanur-rashid/rift-android

RIFT:室内射频环境映射与威胁分析Android应用

Stars: 0 | Forks: 0

# RIFT — RF 智能与威胁框架 一款用于室内射频环境映射的 Android 应用,具有设备端机器学习驱动的威胁分析功能。 ![Kotlin](https://img.shields.io/badge/Kotlin-7F52FF?logo=kotlin&logoColor=white) ![Python](https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white) ![Gradle](https://img.shields.io/badge/build-Gradle-02303A?logo=gradle&logoColor=white) ![Android](https://img.shields.io/badge/Android-API%2029%2B-3DDC84?logo=android&logoColor=white) ![Jetpack Compose](https://img.shields.io/badge/Jetpack%20Compose-4285F4?logo=jetpackcompose&logoColor=white) ![Hilt](https://img.shields.io/badge/DI-Hilt-brightgreen) ![Room](https://img.shields.io/badge/DB-Room-orange) ![ONNX Runtime](https://img.shields.io/badge/ML-ONNX%20Runtime-005CED?logo=onnx&logoColor=white) ![GitHub Actions](https://img.shields.io/badge/CI-GitHub%20Actions-2088FF?logo=githubactions&logoColor=white) ![License](https://img.shields.io/badge/license-MIT-brightgreen) ## 功能 RIFT 结合了行人死地定位 (PDR) 室内定位和被动 WiFi 扫描,以构建信号强度和射频风险的空間热图。在行走楼层平面图时,应用在每个位置收集 WiFi 扫描数据,在蓝图上渲染实时热图叠加,并运行 **专家混合 (MoE)** 机器学习管道,以呈现关于射频环境的观察结果。 ## 架构 ``` RIFT ├── core/ │ ├── data/ Room database — sessions, scan points, AP readings, threat reports │ ├── ml/ MoE ML layer │ │ ├── ThreatReport.kt — data classes for all expert outputs │ │ ├── CapabilitiesParser.kt — IEEE 802.11 capabilities string parser │ │ ├── RssiTracker.kt — per-BSSID RSSI ring buffer (size 10) │ │ ├── FeatureVector.kt — normalised [0,1] feature extraction │ │ ├── OuiLookup.kt — IEEE OUI vendor name resolution (CSV asset) │ │ ├── OnnxModel.kt — base class for ONNX Runtime sessions │ │ ├── MoEGate.kt — routes scans to experts, assembles ThreatReport │ │ └── experts/ │ │ ├── EvilTwinDetector.kt — duplicate-SSID impersonation detection │ │ ├── RiskScorer.kt — per-AP continuous risk score [0,1] │ │ ├── InterferencePredictor.kt — channel interference severity (4-class) │ │ └── AnomalyDetector.kt — self-supervised baseline + deviation detection │ ├── positioning/ PDR engine + IDW heatmap renderer (signal & risk palettes) │ └── scanner/ WifiScanEngine + foreground service ├── ui/ │ ├── scanning/ Live scanning screen — heatmap + shield threat indicator │ └── results/ Post-session heatmap viewer — signal/risk map toggle ├── di/ Hilt DI modules (Database, ML auto-wired) └── ml/training/ Python training scripts for all four ONNX experts ``` ## 机器学习层 — 专家混合 每个扫描周期 (~1.5 秒) 的 `MoEGate` 将观察到的 AP 列表路由到最多四个专家: | 专家 | 网关条件 | 模型 | 后备 | |--------|----------------|-------|----------| | EvilTwinDetector | ≥2 APs share an SSID | GradientBoostingClassifier | Rule-based MAC/encryption check | | RiskScorer | Always | GradientBoostingRegressor | Weighted encryption/WPS formula | | InterferencePredictor | Always | RandomForestClassifier | SINR threshold rules | | AnomalyDetector | Always; returns null until 10-scan baseline | PyTorch autoencoder + z-score | Z-score only | 所有模型都通过 **ONNX Runtime Mobile** (int8 量化,MIT 许可) 在本地运行。总资产预算 < 800 KB。每个专家推理 < 5 ms 在 Cortex-A55。 ### 训练 ``` cd ml/training pip install -r requirements.txt python 01_evil_twin_train.py python 02_risk_scorer_train.py python 03_interference_train.py python 04_anomaly_autoencoder_train.py python export_all.py # quantizes to int8, copies to assets/ ``` 有关 AWID3 数据集集成说明,请参阅 `ml/training/README.md`(专家 1)。 ## 构建 ``` ./gradlew assembleDebug ``` 最小 SDK:26(Android 8.0)。目标 SDK:35。Java 17。 应用包含所有四个专家的 **基于规则的后备** — 即使没有训练的 `.onnx` 模型文件,应用也能完全正常工作。后备使用与训练数据生成器相同的逻辑,并产生一致的结果。 ## OUI 供应商查找 `app/src/main/assets/oui.csv` 包含前 ~45 个消费者 AP 供应商。对于完整的 IEEE OUI 覆盖范围 (~35,000 个条目),请用官方文件替换: ``` curl -L https://standards-oui.ieee.org/oui/oui.csv \ -o app/src/main/assets/oui.csv ``` ## 威胁面板 在扫描会话期间,点击右上角的 **盾牌图标** 打开实时威胁分析面板。盾牌的色调反映了当前的总体风险水平: - 灰色 — 尚未进行分析 - 绿色 — 安全 - 黄色 — 警告(异常或中等干扰) - 橙色 — 警告(高风险 AP 或高置信度恶作剧双胞胎) - 红色 — 危急(降级加密或高置信度恶作剧双胞胎 ≥ 80%) ## 风险地图 在结果屏幕中,在 **信号** 和 **风险地图** 视图之间切换。风险地图渲染与信号热图相同的 IDW 空间插值,但根据从该位置可见的 AP 的 MoE 风险评分对位置进行着色(绿色 = 低风险,红色 = 高风险)。 ## 数据库模式 Room 数据库 `rift.db` 在版本 2: | 表 | 描述 | |-------|-------------| | `sessions` | 带有蓝图 URI 和元数据的扫描会话 | | `scan_points` | 无 GPS 位置(PDR x/y 以米为单位 + 像素坐标) | | `ap_readings` | 每个扫描点的原始 WiFi 扫描结果 | | `threat_reports` | 每个扫描点的 MoE 输出的摘要 | ## 权限 | 权限 | 目的 | |-----------|---------| | `ACCESS_FINE_LOCATION` | 需要 Android 9+ 上的 WiFi 扫描 | | `NEARBY_WIFI_DEVICES` | Android 13+ 的 WiFi 的替代位置 | | `ACTIVITY_RECOGNITION` | PDR 的步数计数器 | | `FOREGROUND_SERVICE_LOCATION` | 背景扫描连续性 | ## 许可证 MIT。ONNX Runtime Mobile:MIT。scikit-learn,PyTorch,skl2onnx:BSD/Apache。AWID3 数据集:仅限学术用途(请参阅数据集许可证)。
标签:AMSI绕过, Android API, Android应用, Apex, GitHub Actions, Gradle, Hilt, Jetpack Compose, Kotlin, ONNX Runtime, Python, RF环境映射, Room数据库, WiFi信号强度, 专家系统, 代码示例, 位置服务, 信号分析, 后台面板检测, 威胁检测, 室内定位, 室内导航, 开源框架, 持续集成, 数据分析, 无后门, 机器学习, 混合专家模型, 漏洞测试, 热力图, 目录枚举, 移动安全, 移动应用开发, 网络安全, 自动笔记, 软件架构, 逆向工具, 隐私保护