Skip to content
Snippets Groups Projects
Commit abdb1631 authored by Janik Besendorf's avatar Janik Besendorf
Browse files

reformats Code according to Styleguide

parent 76493b90
No related branches found
No related tags found
No related merge requests found
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
</JetCodeStyleSettings>
<codeStyleSettings language="XML">
<option name="FORCE_REARRANGE_MODE" value="1" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
</code_scheme>
</component>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="AndroidStyle" />
</state>
</component>
\ No newline at end of file
......@@ -20,10 +20,9 @@
package com.besendorf.androidsecurityscanner;
import android.annotation.SuppressLint;
import androidx.biometric.BiometricManager;
//import androidx.biometric.BiometricPrompt;
import android.annotation.TargetApi;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.drm.DrmInfo;
import android.drm.DrmInfoRequest;
import android.drm.DrmManagerClient;
......@@ -39,12 +38,14 @@ import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.content.pm.PackageManager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.biometric.BiometricManager;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
......@@ -59,18 +60,62 @@ import java.util.UUID;
import javax.crypto.KeyGenerator;
import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMETRIC_STRONG;
//import androidx.biometric.BiometricPrompt;
public class MainActivity extends AppCompatActivity {
static final UUID WIDEVINE_UUID = new UUID(0xEDEF8BA979D64ACEL, 0xA3C827DCD51D21EDL);
private static final String TAG = "Collector";
KeyStore ks;
private TextView reportTextView;
private FingerprintManager fingerprintManager;
private PackageManager pm;
private JSONObject json;
private String sreport;
KeyStore ks;
static final UUID WIDEVINE_UUID = new UUID(0xEDEF8BA979D64ACEL, 0xA3C827DCD51D21EDL);
private static final String TAG = "Collector";
static String getProp(String s) {
// from https://bitbucket.org/oF2pks/kaltura-device-info-android/src/master/app/src/main
// /java/com/oF2pks/kalturadeviceinfos/Utils.java licenced under GPLv3
try {
@SuppressLint("PrivateApi")
Class<?> aClass = Class.forName("android.os.SystemProperties");
Method method = aClass.getMethod("get", String.class);
Object platform = method.invoke(null, s);
return platform instanceof String ? (String) platform : "<" + platform + ">";
} catch (Exception e) {
return "null(<" + e + ">)";
}
}
private static String getCpu() {
// from https://bitbucket.org/oF2pks/kaltura-device-info-android/src/master/app/src/main
// /java/com/oF2pks/kalturadeviceinfos/Collector.java licenced under GPLv3
try {
Process p = Runtime.getRuntime().exec("cat /proc/cpuinfo");
InputStream is = null;
//if (p.waitFor() == 0) {
is = p.getInputStream();
/*} else {
is = p.getErrorStream();
}*/
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String tmp;
String tmp2 = null;
while ((tmp = br.readLine()) != null) {
if (tmp.contains("Hardware")) return tmp.substring(11);
if (tmp.contains("model name")) tmp2 = tmp.substring(13);
}
is.close();
br.close();
if (tmp2 != null) return tmp2;
return "Unknow";
} catch (Exception ex) {
return "ERROR: " + ex.getMessage();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -111,6 +156,7 @@ public class MainActivity extends AppCompatActivity {
}
private boolean fingerprint() {
//FingerprintManager needs Android 6.0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
......@@ -123,21 +169,35 @@ public class MainActivity extends AppCompatActivity {
private String biometricQuality() {
//Biometric need to be enrolled or else only CREDENTIAL will be returned
if (BiometricManager.from(this).canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) == BiometricManager.BIOMETRIC_SUCCESS)
if (BiometricManager.from(this).canAuthenticate(
BiometricManager.Authenticators.BIOMETRIC_STRONG)
== BiometricManager.BIOMETRIC_SUCCESS) {
return "STRONG";
else if (BiometricManager.from(this).canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) == BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED)
} else if (BiometricManager.from(this).canAuthenticate(
BiometricManager.Authenticators.BIOMETRIC_STRONG)
== BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED) {
return "BIOMETRIC_ERROR_NONE_ENROLLED";
if (BiometricManager.from(this).canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_WEAK) == BiometricManager.BIOMETRIC_SUCCESS)
}
if (BiometricManager.from(this).canAuthenticate(
BiometricManager.Authenticators.BIOMETRIC_WEAK)
== BiometricManager.BIOMETRIC_SUCCESS) {
return "WEAK";
else if (BiometricManager.from(this).canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_WEAK) == BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED)
} else if (BiometricManager.from(this).canAuthenticate(
BiometricManager.Authenticators.BIOMETRIC_WEAK)
== BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED) {
return "BIOMETRIC_ERROR_NONE_ENROLLED";
if (BiometricManager.from(this).canAuthenticate(BiometricManager.Authenticators.DEVICE_CREDENTIAL) == BiometricManager.BIOMETRIC_SUCCESS)
}
if (BiometricManager.from(this).canAuthenticate(
BiometricManager.Authenticators.DEVICE_CREDENTIAL)
== BiometricManager.BIOMETRIC_SUCCESS) {
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
// to check for KeyStore presence we try to get an Instance of KeyStore and if we get the
// Exception we return false
try {
ks = KeyStore.getInstance(KeyStore.getDefaultType());
return true;
......@@ -147,7 +207,9 @@ public class MainActivity extends AppCompatActivity {
}
private boolean isStrongbox() {
// similar to keyStorePresence we use .setIsStrongBoxBacked to make using Strongbox mandatory for a dummy Key Generation which will result in StrongBoxUnavailableException if Strongbox is not available
// similar to keyStorePresence we use .setIsStrongBoxBacked to make using Strongbox
// mandatory for a dummy Key Generation which will result in
// StrongBoxUnavailableException if Strongbox is not available
KeyGenerator kg = null;
try {
......@@ -165,8 +227,7 @@ public class MainActivity extends AppCompatActivity {
} catch (InvalidAlgorithmParameterException e) {
e.printStackTrace();
}
}
else{
} else {
return false;
}
try {
......@@ -179,49 +240,9 @@ public class MainActivity extends AppCompatActivity {
}
static String getProp(String s) {
// from https://bitbucket.org/oF2pks/kaltura-device-info-android/src/master/app/src/main/java/com/oF2pks/kalturadeviceinfos/Utils.java licenced under GPLv3
try {
@SuppressLint("PrivateApi")
Class<?> aClass = Class.forName("android.os.SystemProperties");
Method method = aClass.getMethod("get", String.class);
Object platform = method.invoke(null, s);
return platform instanceof String ? (String) platform : "<" + platform + ">";
} catch (Exception e) {
return "null(<" + e + ">)";
}
}
private static String getCpu() {
// from https://bitbucket.org/oF2pks/kaltura-device-info-android/src/master/app/src/main/java/com/oF2pks/kalturadeviceinfos/Collector.java licenced under GPLv3
try {
Process p = Runtime.getRuntime().exec("cat /proc/cpuinfo");
InputStream is = null;
//if (p.waitFor() == 0) {
is = p.getInputStream();
/*} else {
is = p.getErrorStream();
}*/
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String tmp;
String tmp2 = null;
while ((tmp = br.readLine()) != null)
{
if (tmp.contains("Hardware")) return tmp.substring(11);
if (tmp.contains("model name")) tmp2= tmp.substring(13);
}
is.close();
br.close();
if (tmp2 != null) return tmp2;
return "Unknow";
} catch (Exception ex) {
return "ERROR: " + ex.getMessage();
}
}
//all following DRM Code from https://bitbucket.org/oF2pks/kaltura-device-info-android/src/master/app/src/main/java/com/oF2pks/kalturadeviceinfos/Collector.java licenced under GPLv3
//all following DRM Code from https://bitbucket
// .org/oF2pks/kaltura-device-info-android/src/master/app/src/main/java/com/oF2pks
// /kalturadeviceinfos/Collector.java licenced under GPLv3
private JSONObject drmInfo() throws JSONException {
return new JSONObject()
.put("drm.service.enabled", getProp("drm.service.enabled"))
......@@ -241,7 +262,8 @@ public class MainActivity extends AppCompatActivity {
try {
if (drmManagerClient.canHandle("", "video/wvm")) {
DrmInfoRequest request = new DrmInfoRequest(DrmInfoRequest.TYPE_REGISTRATION_INFO, "video/wvm");
DrmInfoRequest request = new DrmInfoRequest(DrmInfoRequest.TYPE_REGISTRATION_INFO,
"video/wvm");
request.put("WVPortalKey", "OEM");
DrmInfo response = drmManagerClient.acquireDrmInfo(request);
String status = (String) response.get("WVDrmInfoRequestStatusKey");
......@@ -301,9 +323,11 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onEvent(MediaDrm md, byte[] sessionId, int event, int extra, byte[] data) {
try {
String encodedData = data == null ? null : Base64.encodeToString(data, Base64.NO_WRAP);
String encodedData = data == null ? null : Base64.encodeToString(data,
Base64.NO_WRAP);
mediaDrmEvents.put(new JSONObject().put("event", event).put("extra", extra).put("data", encodedData));
mediaDrmEvents.put(new JSONObject().put("event", event).put("extra", extra).put(
"data", encodedData));
} catch (JSONException e) {
Log.e(TAG, "JSONError", e);
}
......@@ -319,8 +343,13 @@ public class MainActivity extends AppCompatActivity {
}
String[] stringProps = {MediaDrm.PROPERTY_VENDOR, MediaDrm.PROPERTY_VERSION, MediaDrm.PROPERTY_DESCRIPTION, MediaDrm.PROPERTY_ALGORITHMS, "securityLevel", "systemId", "privacyMode", "sessionSharing", "usageReportingSupport", "appId", "origin", "hdcpLevel", "maxHdcpLevel", "maxNumberOfSessions", "numberOfOpenSessions"};
String[] byteArrayProps = {MediaDrm.PROPERTY_DEVICE_UNIQUE_ID, "provisioningUniqueId", "serviceCertificate"};
String[] stringProps =
{MediaDrm.PROPERTY_VENDOR, MediaDrm.PROPERTY_VERSION, MediaDrm.PROPERTY_DESCRIPTION,
MediaDrm.PROPERTY_ALGORITHMS, "securityLevel", "systemId", "privacyMode",
"sessionSharing", "usageReportingSupport", "appId", "origin", "hdcpLevel",
"maxHdcpLevel", "maxNumberOfSessions", "numberOfOpenSessions"};
String[] byteArrayProps =
{MediaDrm.PROPERTY_DEVICE_UNIQUE_ID, "provisioningUniqueId", "serviceCertificate"};
JSONObject props = new JSONObject();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment