Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7282ffef authored by Luca Stefani's avatar Luca Stefani Committed by Michael Bestas
Browse files

trust: Add hooks for USB HAL 1.3



This makes the USB Restrict HAL optional

Signed-off-by: default avatarLuca Stefani <luca.stefani.ge1@gmail.com>
Change-Id: I3aa3eca4fb237b2c4e4ce7f5046002f3d1ae7dab
parent cbab7065
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -119,6 +119,7 @@ java_library_static {
        "android.hardware.gnss-V1-java",
        "android.hardware.power-V1-java",
        "android.hardware.power-V1.0-java",
        "android.hardware.usb-V1.3-java",
        "android.hardware.vibrator-V2-java",
        "app-compat-annotations",
        "framework-tethering.stubs.module_lib",
+20 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.internal.policy.IKeyguardService;
import com.android.internal.policy.IKeyguardStateCallback;
import com.android.internal.widget.LockPatternUtils;

import android.hardware.usb.V1_3.IUsb;
import lineageos.providers.LineageSettings;
import vendor.lineage.trust.V1_0.IUsbRestrict;

@@ -56,6 +57,7 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub {
    private final LockPatternUtils mLockPatternUtils;
    private final StateCallback mCallback;

    private IUsb mUsb;
    private IUsbRestrict mUsbRestrictor;
    private ContentResolver mContentResolver;

@@ -98,7 +100,19 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub {

        mCallback.onShowingChanged();

        if (mUsbRestrictor == null) {
        if (mUsb == null) {
            try {
                mUsb = IUsb.getService();
                if (mUsb == null) {
                    // Ignore, the hal is not available
                    // Try Usb Restrict
                }
            } catch (NoSuchElementException | RemoteException ignored) {
                // Try Usb Restrict
            }
        }

        if (mUsb == null && mUsbRestrictor == null) {
            try {
                mUsbRestrictor = IUsbRestrict.getService();
                if (mUsbRestrictor == null) {
@@ -114,7 +128,11 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub {
                LineageSettings.Secure.TRUST_RESTRICT_USB_KEYGUARD, 0) == 1;
        if (shouldRestrictUsb) {
            try {
                if (mUsb != null) {
                    mUsb.enableUsbDataSignal(!showing);
                } else {
                    mUsbRestrictor.setEnabled(showing);
                }
            } catch (RemoteException ignored) {
                // This feature is not supported
            }