diff options
-rw-r--r-- | core/jni/Android.bp | 1 | ||||
-rw-r--r-- | core/jni/android_server_NetworkManagementSocketTagger.cpp | 42 | ||||
-rw-r--r-- | services/core/java/com/android/server/clipboard/ClipboardService.java | 14 |
3 files changed, 30 insertions, 27 deletions
diff --git a/core/jni/Android.bp b/core/jni/Android.bp index 2cfec4b17f63..07b16ed42624 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 afad08a87d37..1be18733e97d 100644 --- a/core/jni/android_server_NetworkManagementSocketTagger.cpp +++ b/core/jni/android_server_NetworkManagementSocketTagger.cpp @@ -15,24 +15,23 @@ */ #define LOG_TAG "NMST_QTagUidNative" -#include <utils/Log.h> - -#include <nativehelper/JNIPlatformHelp.h> -#include "jni.h" -#include <utils/misc.h> +#include <android/multinetwork.h> #include <cutils/qtaguid.h> - #include <errno.h> #include <fcntl.h> -#include <sys/types.h> +#include <nativehelper/JNIPlatformHelp.h> #include <sys/socket.h> +#include <sys/types.h> +#include <utils/Log.h> +#include <utils/misc.h> + +#include "jni.h" 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()) { @@ -40,15 +39,14 @@ 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; } 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()) { @@ -56,16 +54,14 @@ 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; } 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) { diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java index 093ecd57124f..3d5abfe83394 100644 --- a/services/core/java/com/android/server/clipboard/ClipboardService.java +++ b/services/core/java/com/android/server/clipboard/ClipboardService.java @@ -535,9 +535,6 @@ public class ClipboardService extends SystemService { mEmulatorClipboardMonitor.accept(clip); final int userId = UserHandle.getUserId(uid); - if (clip != null) { - startClassificationLocked(clip, userId); - } // Update this user setPrimaryClipInternalLocked(getClipboardLocked(userId), clip, uid, sourcePackage); @@ -593,6 +590,17 @@ public class ClipboardService extends SystemService { @GuardedBy("mLock") private void setPrimaryClipInternalLocked(PerUserClipboard clipboard, @Nullable ClipData clip, int uid, @Nullable String sourcePackage) { + final int userId = UserHandle.getUserId(uid); + if (clip != null) { + startClassificationLocked(clip, userId); + } + + setPrimaryClipInternalNoClassifyLocked(clipboard, clip, uid, sourcePackage); + } + + @GuardedBy("mLock") + private void setPrimaryClipInternalNoClassifyLocked(PerUserClipboard clipboard, + @Nullable ClipData clip, int uid, @Nullable String sourcePackage) { revokeUris(clipboard); clipboard.activePermissionOwners.clear(); if (clip == null && clipboard.primaryClip == null) { |