[Android General] koolkunz:
FINGERPRINT UNLOCK AFTER REBOOT WITHOUT PIN/PASSWORD/PATTERN​

Note : Do NOT Need GearUtils

1.Decompile SystemUI.apk

2.Open SystemUI\smali\com\android\keyguard\KeyguardUpdateMonitor.smali

3.Add the following lines in blue

.method public isFingerprintDisabled(I)Z
.locals 2

const/4 v1, 0x0

iget-object v0, p0, Lcom/android/keyguard/KeyguardUpdateMonitor;->mDpm:Landroid/app/admin/DevicePolicyManager;

if-eqz v0, :cond_0

iget-object v0, p0, Lcom/android/keyguard/KeyguardUpdateMonitor;->mDpm:Landroid/app/admin/DevicePolicyManager;

invoke-virtual {v0, v1, p1}, Landroid/app/admin/DevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;I)I

move-result v0

and-int/lit8 v0, v0, 0x20

if-eqz v0, :cond_0

const/4 v0, 0x1

:goto_0
[COLOR="Blue"] const/4 v1, 0x0	[/COLOR]

return v0

:cond_0
invoke-virtual {p0}, Lcom/android/keyguard/KeyguardUpdateMonitor;->isSimPinSecure()Z

move-result v0

goto :goto_0
.end method

.method public isUnlockCompleted()Z
.locals 1

const-class v0, Lcom/android/systemui/KnoxStateMonitor;

invoke-static {v0}, Lcom/android/systemui/Dependency;->get(Ljava/lang/Class;)Ljava/lang/Object;

move-result-object v0

check-cast v0, Lcom/android/systemui/KnoxStateMonitor;

invoke-virtual {v0}, Lcom/android/systemui/KnoxStateMonitor;->isMultifactorAuthEnforced()Z

move-result v0

if-eqz v0, :cond_0

const/4 v0, 0x1

return v0

:cond_0
iget-object v0, p0, Lcom/android/keyguard/KeyguardUpdateMonitor;->mStrongAuthTracker:Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;

invoke-virtual {v0}, Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;->hasUserAuthenticatedSinceBoot()Z

move-result v0

[COLOR="Blue"]	const/4 v0, 0x1	[/COLOR]

return v0
.end method

.method public isUnlockWithFingerprintPossible(I)Z
.locals 3

const/4 v0, 0x1

const/4 v1, 0x0

invoke-direct {p0, v0, p1}, Lcom/android/keyguard/KeyguardUpdateMonitor;->isBiometricLockEnabled(II)Z

move-result v2

if-eqz v2, :cond_2

iget-object v2, p0, Lcom/android/keyguard/KeyguardUpdateMonitor;->mFpm:Landroid/hardware/fingerprint/FingerprintManager;

if-eqz v2, :cond_1

iget-object v2, p0, Lcom/android/keyguard/KeyguardUpdateMonitor;->mFpm:Landroid/hardware/fingerprint/FingerprintManager;

invoke-virtual {v2}, Landroid/hardware/fingerprint/FingerprintManager;->isHardwareDetected()Z

move-result v2

if-eqz v2, :cond_1

invoke-virtual {p0, p1}, Lcom/android/keyguard/KeyguardUpdateMonitor;->isFingerprintDisabled(I)Z

move-result v2

xor-int/lit8 v2, v2, 0x1

if-eqz v2, :cond_1

iget-object v2, p0, Lcom/android/keyguard/KeyguardUpdateMonitor;->mFpm:Landroid/hardware/fingerprint/FingerprintManager;

invoke-virtual {v2, p1}, Landroid/hardware/fingerprint/FingerprintManager;->getEnrolledFingerprints(I)Ljava/util/List;

move-result-object v2

invoke-interface {v2}, Ljava/util/List;->size()I

move-result v2

if-lez v2, :cond_0

:goto_0
return v0

:cond_0
move v0, v1

goto :goto_0

:cond_1
move v0, v1

goto :goto_0

:cond_2
[COLOR="Blue"] const/4 v0, 0x1	[/COLOR]

return v1
.end method

4.Open SystemUI\smali\com\android\keyguard\KeyguardUpdateMonitor$StrongAuthTracker.smali

5.Add the following lines in blue

.method public isUnlockingWithFingerprintAllowed()Z
.locals 2

const-class v1, Lcom/android/systemui/KnoxStateMonitor;

invoke-static {v1}, Lcom/android/systemui/Dependency;->get(Ljava/lang/Class;)Ljava/lang/Object;

move-result-object v1

check-cast v1, Lcom/android/systemui/KnoxStateMonitor;

invoke-virtual {v1}, Lcom/android/systemui/KnoxStateMonitor;->isMultifactorAuthEnforced()Z

move-result v1

[COLOR="Blue"]const/4 v1, 0x1[/COLOR]

if-eqz v1, :cond_0

const/4 v1, 0x1

return v1

:cond_0
invoke-static {}, Lcom/android/keyguard/KeyguardUpdateMonitor;->getCurrentUser()I

move-result v0

invoke-virtual {p0, v0}, Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;->isFingerprintAllowedForUser(I)Z

move-result v1

return v1
.end method

6.Recompile SystemUI

Guide inspired from https://xdaforums.com/showpost.php?p=69797857&postcount=8​