Skip to content

Commit

Permalink
Add fingerprint
Browse files Browse the repository at this point in the history
Add fingerprint
  • Loading branch information
oaliaga committed Sep 13, 2023
1 parent 62052da commit a3eac96
Show file tree
Hide file tree
Showing 22 changed files with 332 additions and 57 deletions.
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
<uses-permission android:name="android.permission.USES_POLICY_FORCE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />

<uses-feature
android:glEsVersion="0x00020000"
Expand All @@ -74,6 +75,7 @@
android:supportsRtl = "true"
android:usesCleartextTraffic="true"
android:requestLegacyExternalStorage="true"
android:enableOnBackInvokedCallback="true"
android:theme="@style/Theme.AppCompat" >

<meta-data
Expand Down
14 changes: 7 additions & 7 deletions app/src/main/assets/html/asset-manifest.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"main.css": "./static/css/main.cfa80321.chunk.css",
"main.js": "./static/js/main.d0b4e24f.chunk.js",
"main.js.map": "./static/js/main.d0b4e24f.chunk.js.map",
"main.css": "./static/css/main.cb793387.chunk.css",
"main.js": "./static/js/main.16a5ad27.chunk.js",
"main.js.map": "./static/js/main.16a5ad27.chunk.js.map",
"runtime~main.js": "./static/js/runtime~main.8c97409f.js",
"runtime~main.js.map": "./static/js/runtime~main.8c97409f.js.map",
"static/js/2.d9125aad.chunk.js": "./static/js/2.d9125aad.chunk.js",
"static/js/2.d9125aad.chunk.js.map": "./static/js/2.d9125aad.chunk.js.map",
"static/js/2.63e74b66.chunk.js": "./static/js/2.63e74b66.chunk.js",
"static/js/2.63e74b66.chunk.js.map": "./static/js/2.63e74b66.chunk.js.map",
"index.html": "./index.html",
"precache-manifest.41cfb20e9ef783cbd3aeed30e507a89b.js": "./precache-manifest.41cfb20e9ef783cbd3aeed30e507a89b.js",
"precache-manifest.0761acc79a4091e911f98bc46601b357.js": "./precache-manifest.0761acc79a4091e911f98bc46601b357.js",
"service-worker.js": "./service-worker.js",
"static/css/main.cfa80321.chunk.css.map": "./static/css/main.cfa80321.chunk.css.map",
"static/css/main.cb793387.chunk.css.map": "./static/css/main.cb793387.chunk.css.map",
"static/media/02-Track-Find.png": "./static/media/02-Track-Find.ed00c298.png",
"static/media/03-React-Protect.png": "./static/media/03-React-Protect.abee7ee7.png",
"static/media/04-Evidencev.png": "./static/media/04-Evidencev.6dd5ae67.png",
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/assets/html/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><link rel="shortcut icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><title>Prey Client</title><link href="./static/css/main.cfa80321.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="./";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])</script><script src="./static/js/2.d9125aad.chunk.js"></script><script src="./static/js/main.d0b4e24f.chunk.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><link rel="shortcut icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><title>Prey Client</title><link href="./static/css/main.cb793387.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="./";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])</script><script src="./static/js/2.63e74b66.chunk.js"></script><script src="./static/js/main.16a5ad27.chunk.js"></script></body></html>
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
self.__precacheManifest = [
{
"revision": "d0b4e24f0f6d76434e18",
"url": "./static/css/main.cfa80321.chunk.css"
"revision": "16a5ad274a2b089fbccc",
"url": "./static/css/main.cb793387.chunk.css"
},
{
"revision": "d0b4e24f0f6d76434e18",
"url": "./static/js/main.d0b4e24f.chunk.js"
"revision": "16a5ad274a2b089fbccc",
"url": "./static/js/main.16a5ad27.chunk.js"
},
{
"revision": "8c97409f0ee389fe75da",
"url": "./static/js/runtime~main.8c97409f.js"
},
{
"revision": "d9125aade798dfff92ba",
"url": "./static/js/2.d9125aad.chunk.js"
"revision": "63e74b669fd320806725",
"url": "./static/js/2.63e74b66.chunk.js"
},
{
"revision": "c3679e2d8686db6f8013ffe2ad603c2c",
Expand Down Expand Up @@ -119,14 +119,6 @@ self.__precacheManifest = [
"revision": "ada00d714f242a35966355f737998bb6",
"url": "./static/media/fondo2.ada00d71.png"
},
{
"revision": "c44603b2b93c1b7a984f21255d556ee9",
"url": "./static/media/magdaclean-regular-webfont.c44603b2.woff"
},
{
"revision": "6e8991140fc75b4927e2c440d9036429",
"url": "./static/media/regular-book-webfont.6e899114.woff"
},
{
"revision": "391159c582e0897e8d64ed22abe1ee2d",
"url": "./static/media/regular-bold-webfont.391159c5.woff"
Expand All @@ -136,7 +128,15 @@ self.__precacheManifest = [
"url": "./static/media/magdaclean-bold-webfont.baaac747.woff"
},
{
"revision": "b64cf56cd685186f876003de76209dce",
"revision": "6e8991140fc75b4927e2c440d9036429",
"url": "./static/media/regular-book-webfont.6e899114.woff"
},
{
"revision": "c44603b2b93c1b7a984f21255d556ee9",
"url": "./static/media/magdaclean-regular-webfont.c44603b2.woff"
},
{
"revision": "9dc5ec24d97ba2a714a76374f9a85bea",
"url": "./index.html"
}
];
2 changes: 1 addition & 1 deletion app/src/main/assets/html/service-worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js");

importScripts(
"./precache-manifest.41cfb20e9ef783cbd3aeed30e507a89b.js"
"./precache-manifest.0761acc79a4091e911f98bc46601b357.js"
);

workbox.clientsClaim();
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions app/src/main/assets/html/static/js/2.63e74b66.chunk.js.map

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion app/src/main/assets/html/static/js/2.d9125aad.chunk.js.map

This file was deleted.

2 changes: 2 additions & 0 deletions app/src/main/assets/html/static/js/main.16a5ad27.chunk.js

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions app/src/main/assets/html/static/js/main.d0b4e24f.chunk.js

This file was deleted.

This file was deleted.

35 changes: 35 additions & 0 deletions app/src/main/java/com/prey/PreyConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ public class PreyConfig {
public static final String PREFS_DISABLE_POWER_OPTIONS = "PREFS_DISABLE_POWER_OPTIONS";
public static final String PREFS_BLOCK_APP_UNINSTALL = "PREFS_BLOCK_APP_UNINSTALL";
public static final String PREFS_RUN_BACKGROUND = "PREFS_RUN_BACKGROUND";
public static final String PREFS_USE_BIOMETRIC = "PREFS_USE_BIOMETRIC";
public static final String PREFS_BACKGROUND = "PREFS_BACKGROUND";
public static final String IS_LOCK_SET = "IS_LOCK_SET";
public static final String NEXT_ALERT = "NEXT_ALERT";
Expand Down Expand Up @@ -158,6 +159,8 @@ public class PreyConfig {
public static final String INSTALLATION_STATUS = "INSTALLATION_STATUS";
public static final String LOCATION_INFO = "LOCATION_INFO";
public static final String CAPS_LOCK_ON = "CAPS_LOCK_ON";
public static final String VERIFICATE_BIOMETRIC = "VERIFICATE_BIOMETRIC";
public static final String TYPE_BIOMETRIC = "TYPE_BIOMETRIC";
public static final String OVER_LOCK = "OVER_LOCK";
public static final String FIRST = "FIRST";
public static final String PIN_NUMBER_ACTIVATE = "PIN_NUMBER_ACTIVATE";
Expand Down Expand Up @@ -689,6 +692,14 @@ public boolean getRunBackground() {
return getBoolean(PreyConfig.PREFS_RUN_BACKGROUND, false);
}

public boolean getUseBiometric() {
return getBoolean(PreyConfig.PREFS_USE_BIOMETRIC, false);
}

public void setUseBiometric(boolean useBiometric) {
saveBoolean(PreyConfig.PREFS_USE_BIOMETRIC, useBiometric);
}

public void setRunBackground(boolean disablePowerOptions) {
saveBoolean(PreyConfig.PREFS_RUN_BACKGROUND, disablePowerOptions);
saveBoolean(PreyConfig.PREFS_BACKGROUND, disablePowerOptions);
Expand Down Expand Up @@ -1023,6 +1034,12 @@ public void setTokenJwt(String tokenJwt) {
saveString(PreyConfig.TOKEN_JWT, tokenJwt);
}

public void removeTimePasswordOk(){
Calendar cal= Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.MINUTE,-3);
saveLong(TIME_PASSWORD_OK,cal.getTimeInMillis());
}
public void setTimePasswordOk(){
Calendar cal= Calendar.getInstance();
cal.setTime(new Date());
Expand Down Expand Up @@ -1326,6 +1343,24 @@ public void setCapsLockOn(boolean capsLockOn){
saveBoolean(PreyConfig.CAPS_LOCK_ON, capsLockOn);
}

public boolean getVerificateBiometric(){
boolean verificateBiometric = getBoolean(PreyConfig.VERIFICATE_BIOMETRIC, false);
if(verificateBiometric){
setVerificateBiometric(false);
}
return verificateBiometric;
}
public void setVerificateBiometric(boolean verificateBiometric){
saveBoolean(PreyConfig.VERIFICATE_BIOMETRIC, verificateBiometric);
}

public String getTypeBiometric() {
return getString(PreyConfig.TYPE_BIOMETRIC, "");
}
public void setTypeBiometric(String typeBiometric){
saveString(PreyConfig.TYPE_BIOMETRIC, typeBiometric);
}

public boolean getOverLock(){
return getBoolean(PreyConfig.OVER_LOCK, false);
}
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/java/com/prey/PreyPermission.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import android.os.Environment;
import android.provider.Settings;

import androidx.biometric.BiometricManager;
import androidx.core.app.ActivityCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.PermissionChecker;
Expand Down Expand Up @@ -109,7 +110,7 @@ public static boolean canDrawOverlays(Context ctx) {
}

public static boolean checkBiometricSupport(Context ctx) {
return false;
return BiometricManager.from(ctx).canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) == BiometricManager.BIOMETRIC_SUCCESS;
}

/**
Expand Down

0 comments on commit a3eac96

Please sign in to comment.