diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-10-11 19:05:27 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-10-11 19:05:27 +0000 |
commit | 546073a5b67601a39987a650fa176905149bd5c4 (patch) | |
tree | 47ab40edc844c9b588c706eed47587964e624188 | |
parent | cb90628990f63157abee9c2d241ce0b5cd6d0950 (diff) | |
parent | 569055dd608c21b2c763f896e73761007f125a50 (diff) | |
download | base-546073a5b67601a39987a650fa176905149bd5c4.tar.gz |
Merge changes I7070326d,I8346e53c
* changes:
Add OWNERS file to AndroidKeystoreSPI implementation
KeyguardStateMonitor looses connection with keystore if keystore dies
-rw-r--r-- | keystore/OWNERS | 4 | ||||
-rw-r--r-- | services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java | 20 |
2 files changed, 20 insertions, 4 deletions
diff --git a/keystore/OWNERS b/keystore/OWNERS new file mode 100644 index 000000000000..a63ca46df2a6 --- /dev/null +++ b/keystore/OWNERS @@ -0,0 +1,4 @@ +jbires@google.com +jdanis@google.com +robbarnes@google.com +swillden@google.com diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java index 1cba1c7bed1b..a55b49fe028d 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java @@ -95,10 +95,22 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub { mIsShowing = showing; mCallback.onShowingChanged(); - try { - mKeystoreService.onKeyguardVisibilityChanged(showing, mCurrentUserId); - } catch (RemoteException e) { - Slog.e(TAG, "Error informing keystore of screen lock", e); + int retry = 2; + while (retry > 0) { + try { + mKeystoreService.onKeyguardVisibilityChanged(showing, mCurrentUserId); + break; + } catch (RemoteException e) { + if (retry == 2) { + Slog.w(TAG, "Error informing keystore of screen lock. Keystore may have died" + + " -> refreshing service token and retrying"); + mKeystoreService = IKeystoreService.Stub.asInterface(ServiceManager + .getService("android.security.keystore")); + } else { + Slog.e(TAG, "Error informing keystore of screen lock after retrying once", e); + } + --retry; + } } } |