patches: Bliss GSI v11.4 Release

Signed-off-by: Jackeagle <jackeagle102@gmail.com>
Change-Id: I372e872292ed19dde130635da2882309751f59dd
diff --git a/patches/frameworks/base/0023-Revert-LockSettingsService-Support-for-separate-clea.patch b/patches/frameworks/base/0023-Revert-LockSettingsService-Support-for-separate-clea.patch
new file mode 100644
index 0000000..b7a792e
--- /dev/null
+++ b/patches/frameworks/base/0023-Revert-LockSettingsService-Support-for-separate-clea.patch
@@ -0,0 +1,87 @@
+From d695b3ddea63624a658650291d58dab437688e98 Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Wed, 19 Dec 2018 17:05:29 +0100
+Subject: [PATCH 23/25] Revert "LockSettingsService: Support for separate clear
+ key api"
+
+This reverts commit 32b8f829d566bfd3d89c9b3eb018f0fc4d408e2d.
+---
+ .../android/os/storage/IStorageManager.aidl    |  1 -
+ .../android/server/StorageManagerService.java  | 18 ------------------
+ .../locksettings/LockSettingsService.java      | 14 +-------------
+ 3 files changed, 1 insertion(+), 32 deletions(-)
+
+diff --git a/core/java/android/os/storage/IStorageManager.aidl b/core/java/android/os/storage/IStorageManager.aidl
+index 49bc9e4d8d0..55a202fd3a6 100644
+--- a/core/java/android/os/storage/IStorageManager.aidl
++++ b/core/java/android/os/storage/IStorageManager.aidl
+@@ -187,5 +187,4 @@ interface IStorageManager {
+     void allocateBytes(String volumeUuid, long bytes, int flags, String callingPackage) = 78;
+     void runIdleMaintenance() = 79;
+     void abortIdleMaintenance() = 80;
+-    void clearUserKeyAuth(int userId, int serialNumber, in byte[] token, in byte[] secret) = 81;
+ }
+diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
+index e70e12c25da..aa0e33e15df 100644
+--- a/services/core/java/com/android/server/StorageManagerService.java
++++ b/services/core/java/com/android/server/StorageManagerService.java
+@@ -2530,24 +2530,6 @@ class StorageManagerService extends IStorageManager.Stub
+         }
+     }
+ 
+-    /*
+-     * Clear disk encryption key bound to the associated token / secret pair. Removing the user
+-     * binding of the Disk encryption key is done in two phases: first, this call will retrieve
+-     * the disk encryption key using the provided token / secret pair and store it by
+-     * encrypting it with a keymaster key not bound to the user, then fixateNewestUserKeyAuth
+-     * is called to delete all other bindings of the disk encryption key.
+-     */
+-    @Override
+-    public void clearUserKeyAuth(int userId, int serialNumber, byte[] token, byte[] secret) {
+-        enforcePermission(android.Manifest.permission.STORAGE_INTERNAL);
+-
+-        try {
+-            mVold.clearUserKeyAuth(userId, serialNumber, encodeBytes(token), encodeBytes(secret));
+-        } catch (Exception e) {
+-            Slog.wtf(TAG, e);
+-        }
+-    }
+-
+     /*
+      * Delete all disk encryption token/secret pairs except the most recently added one
+      */
+diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java
+index 66cc1a3334d..f04a36d4f78 100644
+--- a/services/core/java/com/android/server/locksettings/LockSettingsService.java
++++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java
+@@ -1564,18 +1564,6 @@ public class LockSettingsService extends ILockSettings.Stub {
+         addUserKeyAuth(userId, null, null);
+     }
+ 
+-    private void clearUserKeyAuth(int userId, byte[] token, byte[] secret) throws RemoteException {
+-        if (DEBUG) Slog.d(TAG, "clearUserKeyProtection user=" + userId);
+-        final UserInfo userInfo = mUserManager.getUserInfo(userId);
+-        final IStorageManager storageManager = mInjector.getStorageManager();
+-        final long callingId = Binder.clearCallingIdentity();
+-        try {
+-            storageManager.clearUserKeyAuth(userId, userInfo.serialNumber, token, secret);
+-        } finally {
+-            Binder.restoreCallingIdentity(callingId);
+-        }
+-    }
+-
+     private static byte[] secretFromCredential(String credential) throws RemoteException {
+         try {
+             MessageDigest digest = MessageDigest.getInstance("SHA-512");
+@@ -2519,7 +2507,7 @@ public class LockSettingsService extends ILockSettings.Stub {
+             getGateKeeperService().clearSecureUserId(userId);
+             // Clear key from vold so ActivityManager can just unlock the user with empty secret
+             // during boot.
+-            clearUserKeyAuth(userId, null, auth.deriveDiskEncryptionKey());
++            clearUserKeyProtection(userId);
+             fixateNewestUserKeyAuth(userId);
+             setKeystorePassword(null, userId);
+         }
+-- 
+2.17.1
+