Fix potential deadlock in shutdown in HistoricalRegistry

Ensure that the memory lock is released before calling
persistPendingHistory in HistoricalRegistry.

Bug: 172776374
Test: none
Change-Id: I909de9f83cd43c695d0db99f82252ce36a0b972b
(cherry picked from commit 42387ceaedd6d6d53706e799486161db7fffcce5)
diff --git a/services/core/java/com/android/server/appop/HistoricalRegistry.java b/services/core/java/com/android/server/appop/HistoricalRegistry.java
index 3d22a15..f49b5dc 100644
--- a/services/core/java/com/android/server/appop/HistoricalRegistry.java
+++ b/services/core/java/com/android/server/appop/HistoricalRegistry.java
@@ -669,10 +669,12 @@
 
     void shutdown() {
         synchronized (mInMemoryLock) {
-            if (mMode != AppOpsManager.HISTORICAL_MODE_DISABLED) {
-                persistPendingHistory();
+            if (mMode == AppOpsManager.HISTORICAL_MODE_DISABLED) {
+                return;
             }
         }
+        // Do not call persistPendingHistory inside the memory lock, due to possible deadlock
+        persistPendingHistory();
     }
 
     void persistPendingHistory() {