)]}'
{
  "commit": "c54faf3e691b3d952f649756578eab6f8a5d3208",
  "tree": "e89211a81c294507778cc982eccfa97e2d070ace",
  "parents": [
    "f67b906f0691e46fef86162c954fc7a3ab69a8fb"
  ],
  "author": {
    "name": "Robert Carr",
    "email": "racarr@google.com",
    "time": "Sat Jan 22 16:49:31 2022 -0800"
  },
  "committer": {
    "name": "Rob Carr",
    "email": "racarr@google.com",
    "time": "Wed Feb 09 03:05:50 2022 +0000"
  },
  "message": "DO NOT MERGE: WM: Call Transaction#sanitize\n\nVarious elements of the Transaction interface require\na permission in order to apply. In particular the setTrustedOverlay\nand setInputWindowInfo fields. These permission checks are\nimplemented by checking the PID and the UID of the process which\nsent the transaction. Unfortunately widespread use of transaction\nmerging makes this inadequate. At the moment\nIWindowSession#finishDrawing seems to be the only boundary on which\ntransactions move from client to system processes, and so we expose\na sanitize method and use it from there to resolve the situation\nin an easily backportable way.\n\nMoving forward it likely make sense to move security sensitive\ninterfaces off of Transaction. Most of the things behind permissions\ncurrently are not truly security sensitive, more of just a request\nnot to use them.\n\nIt was also considered to sanitize transactions at all process\nboundaries through writeToParcel, however this could be disruptive\nas previously permissioned processes (WM and SysUI) could freely\nexchange transactions. As the change needs to be backportable the\nlowest risk option was chosen.\n\nBug: 213644870\nTest: Existing tests pass\nChange-Id: I8d4a0ebe0cdfaed7ff1ad862724d49a14ed04478\n(cherry picked from commit cdf139841567a625608b94339fa49cb895f6a69f)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4dc9807aca5d057aea647f5b943262dc4b4e6792",
      "old_mode": 33188,
      "old_path": "core/java/android/view/SurfaceControl.java",
      "new_id": "1e290920b00b8c9a254700150ae3a068be7ef412",
      "new_mode": 33188,
      "new_path": "core/java/android/view/SurfaceControl.java"
    },
    {
      "type": "modify",
      "old_id": "7f99e2998b13d8960fa16da81f0f7d6204645549",
      "old_mode": 33188,
      "old_path": "core/jni/android_view_SurfaceControl.cpp",
      "new_id": "4cb258dc0bbdec84ab542729348d238597c5d7ee",
      "new_mode": 33188,
      "new_path": "core/jni/android_view_SurfaceControl.cpp"
    },
    {
      "type": "modify",
      "old_id": "fac953910e927348ee3901de81c663f071c2c9a3",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/wm/WindowManagerService.java",
      "new_id": "b69182f41b76f45affeaa409bbd381b35d1977a6",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/wm/WindowManagerService.java"
    }
  ]
}
