)]}'
{
  "commit": "9bef8bf1eee45a434e10c40e61acaeb2f90e10ad",
  "tree": "2a1d1577816a4a5c54a818fef1c53e59b1ae4661",
  "parents": [
    "a38e8de8dac3052b6b65aea5689a363832a257cd"
  ],
  "author": {
    "name": "Evan Severson",
    "email": "evanseverson@google.com",
    "time": "Thu Feb 05 18:16:55 2026 -0800"
  },
  "committer": {
    "name": "Android Build Coastguard Worker",
    "email": "android-build-coastguard-worker@google.com",
    "time": "Thu Apr 09 20:03:43 2026 -0700"
  },
  "message": "DO NOT MERGE: Enforce suspend restrictions in startOp and noteOp paths\n\nSuspended apps could previously bypass AppOps restrictions by using the\nstartOp and noteOp code paths, as these did not check the package\nsuspended state. This change adds a check for isOpRestrictedDueToSuspend\nin noteOperationUnchecked, startOperationUnchecked, and\nstartOperationDryRun.\n\nRefactored FrameworksServicesTests to verify these restrictions. The\ntests now independently check checkOp, noteOp, and startOp paths for\nthree different operations: OP_RESERVED_FOR_TESTING, OP_VIBRATE, and\nOP_PLAY_AUDIO. This replaces the previous reliance on microphone and\ncamera ops, which cannot be directly changed.\n\nBug: 477935679\nTest: atest FrameworksServicesTests:SuspendPackagesTest \\\n          CtsSuspendAppsTestCases:SuspendPackagesTest\nFlag: EXEMPT CVE_FIX\nCherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:eb1c8fbf88d489a3044ce5171264a52bc7d159f3\nMerged-In: Ifeac8cebdec2fb8d6129ecfdf18b4413303b62f4\nChange-Id: Ifeac8cebdec2fb8d6129ecfdf18b4413303b62f4\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "85a5ac8bf3ca9ffefe4712f6ca6336b71181190e",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/appop/AppOpsService.java",
      "new_id": "46425561006420f8ee08f3c3f8d20f7b07ac53a2",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/appop/AppOpsService.java"
    },
    {
      "type": "modify",
      "old_id": "2e5feffd8673d58c39b54a19d86e3db1df6daaff",
      "old_mode": 33188,
      "old_path": "services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java",
      "new_id": "749f1fd552178facfa256c9aa21a57eaa814844e",
      "new_mode": 33188,
      "new_path": "services/tests/servicestests/src/com/android/server/pm/SuspendPackagesTest.java"
    }
  ]
}
