From 846fd78c062569635ac24fc7356510c0eb9b5992 Mon Sep 17 00:00:00 2001 From: Ken Chen Date: Fri, 7 Jan 2022 06:26:11 +0800 Subject: [PATCH 1/2] Calling NDK version of tagSocket/untagSocket Calling NDK version of tagSocket/untagSocket from android_server_NetworkManagementSocketTagger.cpp. This is required since the file is going to be mainlined. The platform functions it calls must be stable APIs. Bug: 29761778 Bug: 202086915 Test: atest TrafficStatsTest NetworkUsageStatsTest Change-Id: Ic6554d9b98cef9b41b7eae06315d284c574c0a45 --- core/jni/Android.bp | 1 + ...id_server_NetworkManagementSocketTagger.cpp | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/core/jni/Android.bp b/core/jni/Android.bp index 2cfec4b17f63c..07b16ed426248 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -242,6 +242,7 @@ cc_library_shared { "audioflinger-aidl-cpp", "av-types-aidl-cpp", "android.hardware.camera.device@3.2", + "libandroid_net", "libandroidicu", "libbpf_android", "libnetdbpf", diff --git a/core/jni/android_server_NetworkManagementSocketTagger.cpp b/core/jni/android_server_NetworkManagementSocketTagger.cpp index afad08a87d37c..cf740f538e984 100644 --- a/core/jni/android_server_NetworkManagementSocketTagger.cpp +++ b/core/jni/android_server_NetworkManagementSocketTagger.cpp @@ -15,18 +15,18 @@ */ #define LOG_TAG "NMST_QTagUidNative" -#include -#include - -#include "jni.h" -#include +#include #include - #include #include -#include +#include #include +#include +#include +#include + +#include "jni.h" namespace android { @@ -40,7 +40,7 @@ static jint QTagUid_tagSocketFd(JNIEnv* env, jclass, return (jint)-1; } - int res = qtaguid_tagSocket(userFd, tagNum, uid); + int res = android_tag_socket_with_uid(userFd, tagNum, uid); if (res < 0) { return (jint)-errno; } @@ -56,7 +56,7 @@ static jint QTagUid_untagSocketFd(JNIEnv* env, jclass, return (jint)-1; } - int res = qtaguid_untagSocket(userFd); + int res = android_untag_socket(userFd); if (res < 0) { return (jint)-errno; } From 3d83380b6f0c541c48f3ee82c3bc6afb898bbf42 Mon Sep 17 00:00:00 2001 From: Ken Chen Date: Thu, 13 Jan 2022 10:16:32 +0800 Subject: [PATCH 2/2] Remove QTagUid_ prefix from function names QTagUid_tagSocketFd -> tagSocketFd QTagUid_untagSocketFd -> untagSocketFd QTagUid_setCounterSet -> setCounterSet QTagUid_deleteTagData -> deleteTagData Bug: N/A Test: m Change-Id: I4753cae7ed132e020c5ef8d155dfe2551a792d04 --- ...d_server_NetworkManagementSocketTagger.cpp | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/core/jni/android_server_NetworkManagementSocketTagger.cpp b/core/jni/android_server_NetworkManagementSocketTagger.cpp index cf740f538e984..1be18733e97d3 100644 --- a/core/jni/android_server_NetworkManagementSocketTagger.cpp +++ b/core/jni/android_server_NetworkManagementSocketTagger.cpp @@ -30,9 +30,8 @@ namespace android { -static jint QTagUid_tagSocketFd(JNIEnv* env, jclass, - jobject fileDescriptor, - jint tagNum, jint uid) { +static jint tagSocketFd(JNIEnv* env, jclass, jobject fileDescriptor, + jint tagNum, jint uid) { int userFd = jniGetFDFromFileDescriptor(env, fileDescriptor); if (env->ExceptionCheck()) { @@ -47,8 +46,7 @@ static jint QTagUid_tagSocketFd(JNIEnv* env, jclass, return (jint)res; } -static jint QTagUid_untagSocketFd(JNIEnv* env, jclass, - jobject fileDescriptor) { +static jint untagSocketFd(JNIEnv* env, jclass, jobject fileDescriptor) { int userFd = jniGetFDFromFileDescriptor(env, fileDescriptor); if (env->ExceptionCheck()) { @@ -63,9 +61,7 @@ static jint QTagUid_untagSocketFd(JNIEnv* env, jclass, return (jint)res; } -static jint QTagUid_setCounterSet(JNIEnv* env, jclass, - jint setNum, jint uid) { - +static jint setCounterSet(JNIEnv* env, jclass, jint setNum, jint uid) { int res = qtaguid_setCounterSet(setNum, uid); if (res < 0) { return (jint)-errno; @@ -73,9 +69,7 @@ static jint QTagUid_setCounterSet(JNIEnv* env, jclass, return (jint)res; } -static jint QTagUid_deleteTagData(JNIEnv* env, jclass, - jint tagNum, jint uid) { - +static jint deleteTagData(JNIEnv* env, jclass, jint tagNum, jint uid) { int res = qtaguid_deleteTagData(tagNum, uid); if (res < 0) { return (jint)-errno; @@ -84,10 +78,10 @@ static jint QTagUid_deleteTagData(JNIEnv* env, jclass, } static const JNINativeMethod gQTagUidMethods[] = { - { "native_tagSocketFd", "(Ljava/io/FileDescriptor;II)I", (void*)QTagUid_tagSocketFd}, - { "native_untagSocketFd", "(Ljava/io/FileDescriptor;)I", (void*)QTagUid_untagSocketFd}, - { "native_setCounterSet", "(II)I", (void*)QTagUid_setCounterSet}, - { "native_deleteTagData", "(II)I", (void*)QTagUid_deleteTagData}, + { "native_tagSocketFd", "(Ljava/io/FileDescriptor;II)I", (void*)tagSocketFd}, + { "native_untagSocketFd", "(Ljava/io/FileDescriptor;)I", (void*)untagSocketFd}, + { "native_setCounterSet", "(II)I", (void*)setCounterSet}, + { "native_deleteTagData", "(II)I", (void*)deleteTagData}, }; int register_android_server_NetworkManagementSocketTagger(JNIEnv* env) {