2

我注意到我的设备和托管在https://example.com/.well-known/assetlinks.json的 DAL 之间的缓存机制的影响,我希望了解它是如何工作的,以及是否可以绕过它.

问题是我正在对 DAL 的更改进行原型设计(特别是添加另一个应用程序,但出于问题的目的,更改在这里应该是无关紧要的),并且从应用程序的角度来看,更改是不可见的。例子:

  1. 我从这个 DAL 开始:
[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "sha256_cert_fingerprints": [
        "<redacted>"
      ],
      "namespace": "android_app",
      "package_name": "com.my_app"
    }
  }
]
  1. 我安装com.my_app,验证成功。

  2. 我将 DAL 编辑为以下内容(注意添加了第二个应用程序条目):

[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "sha256_cert_fingerprints": [
        "<redacted>"
      ],
      "namespace": "android_app",
      "package_name": "com.my_app"
    }
  },
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "sha256_cert_fingerprints": [
        "<redacted>"
      ],
      "namespace": "android_app",
      "package_name": "com.my_other_app"
    }
  }
]
  1. 我安装com.my_other_app,验证失败。
  2. 等待24小时,重新安装com.my_other_app,验证成功。

使用Google的Statement List Tester可以观察到相同的情况;它将继续反映早期 DAL 的规范,最长可达 24 小时(因此问题不限于特定设备/它不是可以清除的设备上缓存层)。

这让我相信 Google 拥有 Statement List Tester 和 Android 设备都使用的 DAL 缓存。由于我正在对更改进行原型设计以了解 DAL 的未记录行为,因此必须等待任意且长时间的时间会适得其反。

我的问题是:缓存持续时间是否已知,是否可以绕过、重置?

4

0 回答 0