Skip to content
 
 

Repository files navigation

Android HW Detect

一个面向 ARM64 Android 设备的硬件执行断点(BP)与硬件观察点(WP)自检工具。

项目通过 Android NDK 和 ptrace 验证调试寄存器容量、既有槽位占用、写入与读回一致性、冷热路径触发、满槽状态和原始寄存器快照恢复。界面使用 Jetpack Compose,并支持循环检测与历史最低分记录。

功能

  • 检查 NT_ARM_HW_BREAKNT_ARM_HW_WATCH 可用性。
  • 验证设备至少提供 6 个 BP 和 4 个 WP 槽位。
  • 检测关键线程中的既有 BP/WP 激活槽位。
  • 执行 BP 单路与满槽冷热触发测试。
  • 执行 4 路 WP 安装、读回及 SIGTRAP 触发测试。
  • 验证检测前后的 SIGTRAP handler 保持稳定。
  • 区分“正常”“受限”和“异常”,避免把系统权限限制直接判为风险。

完整检测流程和判定规则见 检测业务逻辑

环境要求

  • Android Studio 或命令行 Android SDK
  • JDK 21
  • Android SDK 36.1
  • Android NDK 28.2+
  • CMake 3.22.1
  • ARM64 Android 13(API 33)或更高版本

构建

项目不会提交 local.properties。首次构建前可由 Android Studio 自动生成,或手动配置本机 SDK 路径。

./gradlew :app:assembleDebug

APK 输出位置:

app/build/outputs/apk/debug/app-debug.apk

验证

./gradlew :app:lintDebug :app:assembleDebug

安装到连接的 ARM64 设备:

adb install -r app/build/outputs/apk/debug/app-debug.apk

使用边界

  • 仅支持 arm64-v8a
  • 所有主动探针仅作用于本 App 及其自有 tracee 子进程,不读取或修改其它应用进程。
  • ptrace 可能被 SELinux、厂商内核策略或现有调试器限制,此时报告会显示“受限”。
  • 槽位结果是单轮快照,循环检测用于提高对短暂状态的覆盖率。

About

ARM64 Android hardware breakpoint and watchpoint self-check tool

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages