Guise 中文文档 下载 App

三源交叉哈希 — Java API、系统属性、内核三层比对

三源交叉哈希是什么

Guise Test 的核心诊断逻辑。同一批设备事实(品牌、型号、指纹、GPU、序列号……),分别从三个完全独立的通道读取,各自哈希后比对。

通道读取方式Guise 能 Hook 吗
Java APIBuild.MODEL、GLES20.glGetString() 等✅ 大部分
系统属性SystemProperties.get("ro.product.model")✅ 23 个 ro.\* 键
内核/sys/devices/soc0/machine、/proc/cpuinfo 等❌ 不能

为什么三源

假设你在 Guise 里把 Build.MODEL 改成 Pixel 7。理想情况下:

Guise Test 告诉你:

结果含义
H1 ≠ H3Java 层和内核层不一致 — 你的 GPU 信息(来自内核)和 Build 型号(来自 Java)矛盾
H2 ≠ H1属性层和 Java 层不一致 — 你只改了 Build 类,忘了 SystemProperties
H1 = H2 ≠ H3Java 和属性层一致,只有内核层不同 — 这是正常的,内核层就是改不了
H1 = H2 = H3三层完全一致 — 除非你的真机本来就是目标设备,否则不可能(内核信息是物理事实)

一个具体例子

Guise Test 运行在一台红米 Note 10 上,配置伪装为「Pixel 7」:

通道 1 (Java API):
  Build.MODEL = Pixel 7
  Build.BRAND = Google
  Build.MANUFACTURER = Google
  GPU Renderer = Mali-G710
  [哈希 H1]

通道 2 (SystemProperties):
  ro.product.model = Pixel 7
  ro.product.brand = Google
  [哈希 H2] ✓ 和 H1 一致

通道 3 (内核):
  /sys/devices/soc0/machine = msmsteppe
  /proc/cpuinfo → Qualcomm SM6115
  GPU 实际是 Adreno 618
  [哈希 H3] ✗ 和 H1 不同

Guise Test 直接告诉你:

基线对照

Guise Test 还有一个有用的功能——基线对照:

  1. 第一次运行时,记录当前身份哈希作为「基线」
  2. 之后每次运行,对比基线和当前值,显示具体哪些字段变了
  3. 用来验证配置修改是否真的生效、或者应用是不是在偷偷采集你

这比「每次凭感觉看配置对不对」靠谱得多。