)]}'
{
  "commit": "20e363e2225843ff3cc7d6bea05ae2f4db83b408",
  "tree": "6542160e445dde94bab91f77268e4f91c6850b07",
  "parents": [
    "00344da68fce6ec4f7a1bf36f0ea3797805f00ce"
  ],
  "author": {
    "name": "Atneya Nair",
    "email": "atneya@google.com",
    "time": "Tue Jul 01 10:16:33 2025 -0700"
  },
  "committer": {
    "name": "Android Build Coastguard Worker",
    "email": "android-build-coastguard-worker@google.com",
    "time": "Fri Jul 11 12:12:56 2025 -0700"
  },
  "message": "[RESTRICT AUTOMERGE] [appops] Preflight skip datasource validation\n\nThe forDataDelivery logic always skips checking the first attribution in\nthe chain from datasources, either via singleReceiverFromDataSource, or\ninternal in startProxyOp, since skipProxy\u003dtrue is passed for non-trivial\nchains.\n\nMake the preflight check consistent with this behavior, by also skipping\na checkOp on the first entry in this case. This avoids cases where\nthe preflight fails when the delivery would succeed, which should never\nhappen. This is implicitly relied on by audioserver, as it happens to\nfail checkOp due to not having a valid Uid/PackageState.\n\nTest: manual: start and stop recording with toggle restriction\nTest: atest CtsMediaAudioPermissionTestCases\nTest: atest RuntimePermissionsAppOpTrackingTest\nTest: atest SensorPrivacyMicrophoneTest\nBug: 293603271\nBug: 325912429\nFlag: EXEMPT bugfix\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7157d28ef027ff6963dac0be07e265f5e560129b)\nMerged-In: I509e7f8da501f5e32d336adb412662e078eab500\nChange-Id: I509e7f8da501f5e32d336adb412662e078eab500\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7c6e351222e92f599ee2960e5caf11b02b72b15e",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/pm/permission/PermissionManagerService.java",
      "new_id": "567d4aab0ddc020f3ec6fb25852164757693b750",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/pm/permission/PermissionManagerService.java"
    }
  ]
}
