)]}'
{
  "commit": "563fdf4259d0e28fd960acbb63431e146707d11b",
  "tree": "8da1935ab585d18f7b5c4a41ed41a2ae3c0bd7b8",
  "parents": [
    "d5c2fb380af22b799eeb3f2a01e793be61f11a68"
  ],
  "author": {
    "name": "Matt Pietal",
    "email": "mpietal@google.com",
    "time": "Fri Oct 01 11:03:16 2021 -0400"
  },
  "committer": {
    "name": "Matt Pietal",
    "email": "mpietal@google.com",
    "time": "Fri Feb 11 17:04:02 2022 +0000"
  },
  "message": "[DO NOT MERGE] Keyguard - Treat messsages to lock with priority\n\nWhen switching users and attempting to lock the device, the sysui main\nthread becomes overwhelmed with events, creating a significant lag\nbetween the time a message is posted and processed on the main\nthread. This can be dangerous when these events are critical for\nsecurity, such as calls coming from PhoneWindowManager#lockNow() that\ncall KeyguardViewMediator#doKeyguardTimeout(). On older devices with\nslower CPUs and less memory, the delay in processing can be\nsignificant (15 - 30s).\n\nThe result of not prioritizing these events leads to a window of time\nwhere a guest user can switch back to the owner, and gain access to\nthe owner\u0027s homescreen without needing to unlock the device with the\nowner\u0027s credentials.\n\nAs a mitigation, prioritize two events originating in two specific\nmethods to make sure the device locks as soon as possible as well as\nhave the system server preemptively update its local cache.\n\nBug: 151095871\nTest: Very manual race condition - follow steps listed in bug\nChange-Id: I7585a0a5eeb308e0e32a4f77f581556d883b5cda\nMerged-In: I7585a0a5eeb308e0e32a4f77f581556d883b5cda\n(cherry picked from commit 28c53ab8bca26af58b45625c1ebba8b9051c107d)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8e454db4cb040146664e9e58f5c0829680ead6eb",
      "old_mode": 33188,
      "old_path": "core/java/com/android/internal/policy/IKeyguardStateCallback.aidl",
      "new_id": "a8003a1169e9a3c45bd866bd4cbb00586699d449",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/policy/IKeyguardStateCallback.aidl"
    },
    {
      "type": "modify",
      "old_id": "2bb9423553d5109cfc137055345dbc671cfe7c02",
      "old_mode": 33188,
      "old_path": "packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java",
      "new_id": "78be3b81e05b8148b8af23bed21353de4f5a21e0",
      "new_mode": 33188,
      "new_path": "packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java"
    },
    {
      "type": "modify",
      "old_id": "4e848686254a640e618d823b698c0054d6341548",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java",
      "new_id": "cf5c587e049427365b92d73b6752c0c8d9b4550e",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java"
    },
    {
      "type": "modify",
      "old_id": "add0b01f18799dc33079a30dd6eec9fe1ae4a752",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java",
      "new_id": "f0f62edf877929f134f22742abc319f3b18f6029",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java"
    }
  ]
}
