一个面向 ARM64 Android 设备的硬件执行断点(BP)与硬件观察点(WP)自检工具。
项目通过 Android NDK 和 ptrace 验证调试寄存器容量、既有槽位占用、写入与读回一致性、冷热路径触发、满槽状态和原始寄存器快照恢复。界面使用 Jetpack Compose,并支持循环检测与历史最低分记录。
- 检查
NT_ARM_HW_BREAK和NT_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:assembleDebugAPK 输出位置:
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、厂商内核策略或现有调试器限制,此时报告会显示“受限”。- 槽位结果是单轮快照,循环检测用于提高对短暂状态的覆盖率。