)]}'
{
  "commit": "cf0b6cd90ce0caf21fae7a58157fb8420013a174",
  "tree": "ca4a29898a367b0549c309017160384b09773e33",
  "parents": [
    "2e7f56e02d86189b3e90d25e03d47cb2bf315d26"
  ],
  "author": {
    "name": "Devarshi Bhatt",
    "email": "devarshimb@google.com",
    "time": "Wed Jun 17 20:59:08 2026 -0700"
  },
  "committer": {
    "name": "Android Build Coastguard Worker",
    "email": "android-build-coastguard-worker@google.com",
    "time": "Fri Jul 10 08:24:42 2026 -0700"
  },
  "message": "Add size validation and trimming for ShortcutInfo objects.\n\nIntroduces a maximum allowed size for a single ShortcutInfo object when parcelled (32KB). A new method `validateShortcutSize` is added to check this limit by writing the ShortcutInfo to a Parcel and checking its data size. If the shortcut size exceeds the limit, try to trim the Person array and Extras to get it under the limit. If the size still exceeds after trimming, drop the shortcut. This validation is applied to setDynamicShortcuts, addDynamicShortcuts, updateShortcuts, and pushDynamicShortcut to prevent apps from creating excessively large shortcuts.\n\nBug: 451602444\nTest: atest ShortcutSizeValidationTest\nFlag: EXEMPT CVE_FIX\nCherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:ab0a589a99bb3c45ad5d61753d5a8c7411197a5d\nCherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:1ec9aca7bdd927b34bf1a5f56def74f08175c2ce\nMerged-In: Icf99a408d16fb6b4e04b2e5014eff556e5948f95\nChange-Id: Icf99a408d16fb6b4e04b2e5014eff556e5948f95\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5779a448014cdd375a66fad7e1c5a302758eb8b8",
      "old_mode": 33188,
      "old_path": "core/java/android/content/pm/ShortcutInfo.java",
      "new_id": "8830483643a2d9695945f66e20ca656cc6febd11",
      "new_mode": 33188,
      "new_path": "core/java/android/content/pm/ShortcutInfo.java"
    },
    {
      "type": "modify",
      "old_id": "66e9e772e063212cef4a63c08c9060e48da67ffd",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/pm/ShortcutService.java",
      "new_id": "fe9a02d0e207a82057753d84fde4e9791b756092",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/pm/ShortcutService.java"
    },
    {
      "type": "modify",
      "old_id": "03ba3b655fa8ccdf00b6ceaf46382a6123603b78",
      "old_mode": 33188,
      "old_path": "services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java",
      "new_id": "5c6e3df43ce369a9151491f8a0d2c1af077fb8de",
      "new_mode": 33188,
      "new_path": "services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java"
    },
    {
      "type": "modify",
      "old_id": "46c532bc40facbd4f6acd010898563f9e2663fa7",
      "old_mode": 33188,
      "old_path": "services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java",
      "new_id": "f67bb47dc7088237f7b6c2fd7958c976a050fb54",
      "new_mode": 33188,
      "new_path": "services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest2.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "646a4bb55c6a36e98ceebdba4b899356ac57995e",
      "new_mode": 33188,
      "new_path": "services/tests/servicestests/src/com/android/server/pm/ShortcutSizeValidationTest.java"
    }
  ]
}
