diff --git a/services/core/java/com/android/server/appop/DiscreteRegistry.java b/services/core/java/com/android/server/appop/DiscreteRegistry.java index e9b61b3ab7fb7..fc48b3f45431b 100644 --- a/services/core/java/com/android/server/appop/DiscreteRegistry.java +++ b/services/core/java/com/android/server/appop/DiscreteRegistry.java @@ -179,17 +179,20 @@ final class DiscreteRegistry { } void systemReady() { - synchronized (mOnDiskLock) { - mDiscreteAccessDir = new File(new File(Environment.getDataSystemDirectory(), "appops"), - "discrete"); - createDiscreteAccessDirLocked(); - mDiscreteOps = new DiscreteOps(); - } DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_PRIVACY, AsyncTask.THREAD_POOL_EXECUTOR, (DeviceConfig.Properties p) -> { setDiscreteHistoryParameters(p); }); setDiscreteHistoryParameters(DeviceConfig.getProperties(DeviceConfig.NAMESPACE_PRIVACY)); + synchronized (mOnDiskLock) { + synchronized (mInMemoryLock) { + mDiscreteAccessDir = new File( + new File(Environment.getDataSystemDirectory(), "appops"), + "discrete"); + createDiscreteAccessDirLocked(); + mDiscreteOps = new DiscreteOps(); + } + } } private void setDiscreteHistoryParameters(DeviceConfig.Properties p) { diff --git a/services/core/java/com/android/server/appop/HistoricalRegistry.java b/services/core/java/com/android/server/appop/HistoricalRegistry.java index 72e582e594b4e..55560150d53ad 100644 --- a/services/core/java/com/android/server/appop/HistoricalRegistry.java +++ b/services/core/java/com/android/server/appop/HistoricalRegistry.java @@ -246,10 +246,10 @@ final class HistoricalRegistry { + " by which to push history on next write"); } } - mDiscreteRegistry.systemReady(); } } } + mDiscreteRegistry.systemReady(); } private boolean isPersistenceInitializedMLocked() {