From: Tobias Brunner Date: Thu, 15 Jun 2017 17:01:33 +0000 (+0200) Subject: android: Log some information about the Android version and the device X-Git-Tag: 5.6.0dr1~24^2~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c5ba38175739f602408a78661ce174ba9ed38e76;p=thirdparty%2Fstrongswan.git android: Log some information about the Android version and the device --- 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 4ebcb14321..6256392a08 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 c16da86ee8..ac108c347f 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 e4c1372d8f..aab12c4128 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 @@ -66,6 +66,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 * 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 4bcd72b36e..1e72cf5e08 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