From 02f6124b052981fe89ae77c7520f907f583ebea5 Mon Sep 17 00:00:00 2001 From: Yan Yan Date: Wed, 7 Feb 2024 19:02:28 +0000 Subject: [PATCH] Check whether kernel is for X86 via JNI Bug: 319532485 Test: Verified the return value on husky (arm) and cuttlefish (x86_64) Change-Id: I8fd53b0f137ad701e051644eafaa12c2a5cf3e7f --- framework/jni/android_net_NetworkUtils.cpp | 5 +++++ framework/src/android/net/NetworkUtils.java | 3 +++ 2 files changed, 8 insertions(+) diff --git a/framework/jni/android_net_NetworkUtils.cpp b/framework/jni/android_net_NetworkUtils.cpp index 51eaf1c9b2..3779a00551 100644 --- a/framework/jni/android_net_NetworkUtils.cpp +++ b/framework/jni/android_net_NetworkUtils.cpp @@ -255,6 +255,10 @@ static jboolean android_net_utils_isKernel64Bit(JNIEnv *env, jclass clazz) { return bpf::isKernel64Bit(); } +static jboolean android_net_utils_isKernelX86(JNIEnv *env, jclass clazz) { + return bpf::isX86(); +} + // ---------------------------------------------------------------------------- /* @@ -278,6 +282,7 @@ static const JNINativeMethod gNetworkUtilMethods[] = { { "setsockoptBytes", "(Ljava/io/FileDescriptor;II[B)V", (void*) android_net_utils_setsockoptBytes}, { "isKernel64Bit", "()Z", (void*) android_net_utils_isKernel64Bit }, + { "isKernelX86", "()Z", (void*) android_net_utils_isKernelX86 }, }; // clang-format on diff --git a/framework/src/android/net/NetworkUtils.java b/framework/src/android/net/NetworkUtils.java index 785c029492..18feb84c92 100644 --- a/framework/src/android/net/NetworkUtils.java +++ b/framework/src/android/net/NetworkUtils.java @@ -440,4 +440,7 @@ public class NetworkUtils { /** Returns whether the Linux Kernel is 64 bit */ public static native boolean isKernel64Bit(); + + /** Returns whether the Linux Kernel is x86 */ + public static native boolean isKernelX86(); }