aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2017-06-15 19:01:33 +0200
committerTobias Brunner <tobias@strongswan.org>2017-07-03 10:27:51 +0200
commitc5ba38175739f602408a78661ce174ba9ed38e76 (patch)
treecfd49cc0669ad0c152a85777e1c7c5bdf03dd861
parente5ec18009f6bef7a0c8bd54a4761c9abcd6780b2 (diff)
downloadstrongswan-c5ba38175739f602408a78661ce174ba9ed38e76.tar.bz2
strongswan-c5ba38175739f602408a78661ce174ba9ed38e76.tar.xz
android: Log some information about the Android version and the device
-rw-r--r--src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java17
-rw-r--r--src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.c27
-rw-r--r--src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h18
-rw-r--r--src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c3
4 files changed, 59 insertions, 6 deletions
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
index 4ebcb1432..6256392a0 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
@@ -939,6 +939,23 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
}
}
+ /**
+ * Function called via JNI to determine information about the Android version.
+ */
+ private static String getAndroidVersion()
+ {
+ return "Android " + Build.VERSION.RELEASE + " - " + Build.DISPLAY +
+ "/" + Build.VERSION.SECURITY_PATCH;
+ }
+
+ /**
+ * Function called via JNI to determine information about the device.
+ */
+ private static String getDeviceString()
+ {
+ return Build.MODEL + " - " + Build.BRAND + "/" + Build.PRODUCT + "/" + Build.MANUFACTURER;
+ }
+
/*
* The libraries are extracted to /data/data/org.strongswan.android/...
* during installation. On newer releases most are loaded in JNI_OnLoad.
diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.c b/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.c
index c16da86ee..ac108c347 100644
--- a/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.c
+++ b/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.c
@@ -1,8 +1,8 @@
/*
- * Copyright (C) 2012-2015 Tobias Brunner
+ * Copyright (C) 2012-2017 Tobias Brunner
* Copyright (C) 2012 Giuliano Grassi
* Copyright (C) 2012 Ralf Sager
- * Hochschule fuer Technik Rapperswil
+ * HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -46,6 +46,8 @@ jclass *android_charonvpnservice_class;
jclass *android_charonvpnservice_builder_class;
jclass *android_simple_fetcher_class;
android_sdk_version_t android_sdk_version;
+char *android_version_string;
+char *android_device_string;
/**
* Thread-local variable. Only used because of the destructor
@@ -97,6 +99,8 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved)
JNIEnv *env;
jclass jversion;
jfieldID jsdk_int;
+ jmethodID method_id;
+ jstring jstr;
int i;
android_jvm = vm;
@@ -131,6 +135,22 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved)
jsdk_int = (*env)->GetStaticFieldID(env, jversion, "SDK_INT", "I");
android_sdk_version = (*env)->GetStaticIntField(env, jversion, jsdk_int);
+ method_id = (*env)->GetStaticMethodID(env, android_charonvpnservice_class,
+ "getAndroidVersion", "()Ljava/lang/String;");
+ jstr = (*env)->CallStaticObjectMethod(env,
+ android_charonvpnservice_class, method_id);
+ if (jstr)
+ {
+ android_version_string = androidjni_convert_jstring(env, jstr);
+ }
+ method_id = (*env)->GetStaticMethodID(env, android_charonvpnservice_class,
+ "getDeviceString", "()Ljava/lang/String;");
+ jstr = (*env)->CallStaticObjectMethod(env,
+ android_charonvpnservice_class, method_id);
+ if (jstr)
+ {
+ android_device_string = androidjni_convert_jstring(env, jstr);
+ }
return JNI_VERSION_1_6;
}
@@ -151,5 +171,6 @@ void JNI_OnUnload(JavaVM *vm, void *reserved)
dlclose(libs[i].handle);
}
}
+ free(android_version_string);
+ free(android_device_string);
}
-
diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h b/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h
index e4c1372d8..aab12c412 100644
--- a/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h
+++ b/src/frontends/android/app/src/main/jni/libandroidbridge/android_jni.h
@@ -1,8 +1,8 @@
/*
- * Copyright (C) 2012 Tobias Brunner
+ * Copyright (C) 2012-2017 Tobias Brunner
* Copyright (C) 2012 Giuliano Grassi
* Copyright (C) 2012 Ralf Sager
- * Hochschule fuer Technik Rapperswil
+ * HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -67,6 +67,20 @@ typedef enum {
extern android_sdk_version_t android_sdk_version;
/**
+ * A description of the current Android release
+ *
+ * see android.os.Build
+ */
+extern char *android_version_string;
+
+/**
+ * A description of the current device
+ *
+ * see android.os.Build
+ */
+extern char *android_device_string;
+
+/**
* Attach the current thread to the JVM
*
* As local JNI references are not freed until the thread detaches
diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c b/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c
index 4bcd72b36..1e72cf5e0 100644
--- a/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c
+++ b/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c
@@ -644,7 +644,8 @@ JNI_METHOD(CharonVpnService, initializeCharon, jboolean,
{
memset(&utsname, 0, sizeof(utsname));
}
- DBG1(DBG_DMN, "Starting IKE charon daemon (strongSwan "VERSION", %s %s, %s)",
+ DBG1(DBG_DMN, "Starting IKE charon daemon (strongSwan "VERSION", %s, %s, "
+ "%s %s, %s)", android_version_string, android_device_string,
utsname.sysname, utsname.release, utsname.machine);
#ifdef PLUGINS_BYOD