From 2e5ac943c243da08ec054cd2050d9078c0c396d9 Mon Sep 17 00:00:00 2001 From: Janik Besendorf <janik@besendorf.org> Date: Thu, 21 Jan 2021 18:37:50 +0100 Subject: [PATCH] Includes BiometricsAPI --- app/build.gradle | 4 ++-- app/src/main/AndroidManifest.xml | 6 +++++- .../androidsecurityscanner/MainActivity.java | 15 +++++++++++++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 5 files changed, 25 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7670359..31b95af 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,10 +29,10 @@ android { } dependencies { - + implementation 'androidx.biometric:biometric:1.0.1' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.2.1' - implementation 'androidx.constraintlayout:constraintlayout:2.0.2' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d3f3238..0ecf6b2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,8 +19,12 @@ </activity> </application> <uses-feature android:name="android.hardware.fingerprint" + android:required="false" + /> + <uses-feature android:name="android.hardware.biometrics" android:required="false"/> <!--Required so Google Play won't prevent app installation when a fingerprint sensor isn't present--> <uses-permission - android:name="android.permission.USE_FINGERPRINT" /> + android:name="android.permission.USE_FINGERPRINT"/> + <uses-permission android:name="android.permission.USE_BIOMETRIC"/> </manifest> \ No newline at end of file diff --git a/app/src/main/java/com/besendorf/androidsecurityscanner/MainActivity.java b/app/src/main/java/com/besendorf/androidsecurityscanner/MainActivity.java index 35f4f77..1a60ce8 100644 --- a/app/src/main/java/com/besendorf/androidsecurityscanner/MainActivity.java +++ b/app/src/main/java/com/besendorf/androidsecurityscanner/MainActivity.java @@ -20,6 +20,8 @@ package com.besendorf.androidsecurityscanner; import android.annotation.SuppressLint; +import androidx.biometric.BiometricManager; +//import androidx.biometric.BiometricPrompt; import android.hardware.fingerprint.FingerprintManager; import android.os.Build; import android.os.Bundle; @@ -44,6 +46,8 @@ import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import javax.crypto.KeyGenerator; +import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMETRIC_STRONG; + public class MainActivity extends AppCompatActivity { private TextView reportTextView; @@ -77,6 +81,7 @@ public class MainActivity extends AppCompatActivity { json.put("ro.boot.veritymode",getProp("ro.boot.veritymode")); //unklar json.put("KeyStore",keyStorePresence()); json.put("Strongbox", isStrongbox()); + json.put("FingerprintQuality", fingerprintQuality()); } catch (JSONException e) { e.printStackTrace(); } @@ -99,6 +104,16 @@ public class MainActivity extends AppCompatActivity { } return false; } + + private String fingerprintQuality(){ + if (BiometricManager.from(this).canAuthenticate(BIOMETRIC_STRONG)) + return "STRONG"; + if (BiometricManager.from(this).canAuthenticate(BIOMETRIC_WEAK)) + return "WEAK"; + if (BiometricManager.from(this).canAuthenticate(BIOMETRIC_CREDENTIAL)) + return "CREDENTIAL"; + return null; + } private boolean keyStorePresence(){ // to check for KeyStore presence we try to get an Instance of KeyStore and if we get the Exception we return false diff --git a/build.gradle b/build.gradle index 04baf1e..46397e1 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.1' + classpath 'com.android.tools.build:gradle:4.1.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c87f5d2..3ed5e6b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Nov 03 16:27:54 CET 2020 +#Tue Jan 19 20:33:34 CET 2021 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip -- GitLab