Loading packages/Connectivity/framework/Android.bp +9 −50 Original line number Diff line number Diff line Loading @@ -23,26 +23,6 @@ package { default_applicable_licenses: ["frameworks_base_license"], } java_library { name: "framework-connectivity-protos", sdk_version: "module_current", min_sdk_version: "30", proto: { type: "nano", }, srcs: [ // TODO: consider moving relevant .proto files directly to the module directory ":framework-javastream-protos", ], apex_available: [ "com.android.tethering", ], jarjar_rules: "jarjar-rules-proto.txt", visibility: [ "//visibility:private", ], } filegroup { name: "framework-connectivity-internal-sources", srcs: [ Loading Loading @@ -109,9 +89,6 @@ java_sdk_library { libs: [ "unsupportedappusage", ], static_libs: [ "framework-connectivity-protos", ], jarjar_rules: "jarjar-rules.txt", permitted_packages: ["android.net"], impl_library_visibility: [ Loading @@ -137,8 +114,9 @@ java_sdk_library { ], } cc_defaults { name: "libframework-connectivity-defaults", cc_library_shared { name: "libframework-connectivity-jni", min_sdk_version: "30", cflags: [ "-Wall", "-Werror", Loading @@ -149,38 +127,19 @@ cc_defaults { "-Wno-unguarded-availability", "-Wthread-safety", ], srcs: [ "jni/android_net_NetworkUtils.cpp", "jni/onload.cpp", ], shared_libs: [ "libandroid", "liblog", "libnativehelper", ], header_libs: [ "dnsproxyd_protocol_headers", ], } cc_library_static { name: "libconnectivityframeworkutils", defaults: ["libframework-connectivity-defaults"], srcs: [ "jni/android_net_NetworkUtils.cpp", ], shared_libs: ["libandroid_net"], apex_available: [ "//apex_available:platform", "com.android.tethering", ], } cc_library_shared { name: "libframework-connectivity-jni", min_sdk_version: "30", defaults: ["libframework-connectivity-defaults"], srcs: [ "jni/android_net_NetworkUtils.cpp", "jni/onload.cpp", ], shared_libs: ["libandroid"], stl: "libc++_static", stl: "none", apex_available: [ "com.android.tethering", ], Loading packages/Connectivity/framework/jarjar-rules-proto.txtdeleted 100644 → 0 +0 −3 Original line number Diff line number Diff line keep android.net.NetworkCapabilitiesProto keep android.net.NetworkProto keep android.net.NetworkRequestProto packages/Connectivity/framework/jarjar-rules.txt +0 −9 Original line number Diff line number Diff line rule com.android.net.module.util.** android.net.connectivity.framework.util.@1 rule android.net.NetworkFactory* android.net.connectivity.framework.NetworkFactory@1 # TODO (b/149403767): remove the annotations from net-utils-device-common instead of here zap android.annotation.** zap com.android.net.module.annotation.** zap com.android.internal.annotations.** rule android.net.NetworkCapabilitiesProto* android.net.connectivity.proto.NetworkCapabilitiesProto@1 rule android.net.NetworkProto* android.net.connectivity.proto.NetworkProto@1 rule android.net.NetworkRequestProto* android.net.connectivity.proto.NetworkRequestProto@1 packages/Connectivity/framework/jni/android_net_NetworkUtils.cpp +20 −30 Original line number Diff line number Diff line Loading @@ -16,34 +16,19 @@ #define LOG_TAG "NetworkUtils" #include <vector> #include <android/file_descriptor_jni.h> #include <android/multinetwork.h> #include <arpa/inet.h> #include <linux/filter.h> #include <linux/if_arp.h> #include <linux/tcp.h> #include <net/if.h> #include <netinet/ether.h> #include <netinet/ip.h> #include <netinet/udp.h> #include <netinet/in.h> #include <string.h> #include <DnsProxydProtocol.h> // NETID_USE_LOCAL_NAMESERVERS #include <cutils/properties.h> #include <nativehelper/JNIHelp.h> #include <nativehelper/JNIPlatformHelp.h> #include <nativehelper/ScopedLocalRef.h> #include <utils/Log.h> #include <utils/misc.h> #include "jni.h" extern "C" { int ifc_enable(const char *ifname); int ifc_disable(const char *ifname); } #define NETUTILS_PKG_NAME "android/net/NetworkUtils" namespace android { Loading @@ -52,6 +37,9 @@ constexpr int MAXPACKETSIZE = 8 * 1024; // FrameworkListener limits the size of commands to 4096 bytes. constexpr int MAXCMDSIZE = 4096; static volatile jclass class_Network = 0; static volatile jmethodID method_fromNetworkHandle = 0; static inline jclass FindClassOrDie(JNIEnv* env, const char* class_name) { jclass clazz = env->FindClass(class_name); LOG_ALWAYS_FATAL_IF(clazz == NULL, "Unable to find class %s", class_name); Loading Loading @@ -138,11 +126,11 @@ static jobject android_net_utils_resNetworkQuery(JNIEnv *env, jobject thiz, jlon // Only allow dname which could be simply formatted to UTF8. // In native layer, res_mkquery would re-format the input char array to packet. std::vector<char> queryname(byteCountUTF8 + 1, 0); env->GetStringUTFRegion(dname, 0, javaCharsCount, queryname.data()); char queryname[byteCountUTF8 + 1]; memset(queryname, 0, (byteCountUTF8 + 1) * sizeof(char)); int fd = android_res_nquery(netHandle, queryname.data(), ns_class, ns_type, flags); env->GetStringUTFRegion(dname, 0, javaCharsCount, queryname); int fd = android_res_nquery(netHandle, queryname, ns_class, ns_type, flags); if (fd < 0) { jniThrowErrnoException(env, "resNetworkQuery", -fd); Loading Loading @@ -170,9 +158,9 @@ static jobject android_net_utils_resNetworkSend(JNIEnv *env, jobject thiz, jlong static jobject android_net_utils_resNetworkResult(JNIEnv *env, jobject thiz, jobject javaFd) { int fd = AFileDescriptor_getFD(env, javaFd); int rcode; std::vector<uint8_t> buf(MAXPACKETSIZE, 0); uint8_t buf[MAXPACKETSIZE] = {0}; int res = android_res_nresult(fd, &rcode, buf.data(), MAXPACKETSIZE); int res = android_res_nresult(fd, &rcode, buf, MAXPACKETSIZE); jniSetFileDescriptorOfFD(env, javaFd, -1); if (res < 0) { jniThrowErrnoException(env, "resNetworkResult", -res); Loading @@ -184,8 +172,7 @@ static jobject android_net_utils_resNetworkResult(JNIEnv *env, jobject thiz, job jniThrowErrnoException(env, "resNetworkResult", ENOMEM); return nullptr; } else { env->SetByteArrayRegion(answer, 0, res, reinterpret_cast<jbyte*>(buf.data())); env->SetByteArrayRegion(answer, 0, res, reinterpret_cast<jbyte*>(buf)); } jclass class_DnsResponse = env->FindClass("android/net/DnsResolver$DnsResponse"); Loading @@ -207,11 +194,14 @@ static jobject android_net_utils_getDnsNetwork(JNIEnv *env, jobject thiz) { return nullptr; } static jclass class_Network = MakeGlobalRefOrDie( env, FindClassOrDie(env, "android/net/Network")); static jmethodID method = env->GetStaticMethodID(class_Network, "fromNetworkHandle", if (method_fromNetworkHandle == 0) { // This may be called multiple times concurrently but that is fine class_Network = MakeGlobalRefOrDie(env, FindClassOrDie(env, "android/net/Network")); method_fromNetworkHandle = env->GetStaticMethodID(class_Network, "fromNetworkHandle", "(J)Landroid/net/Network;"); return env->CallStaticObjectMethod(class_Network, method, static_cast<jlong>(dnsNetHandle)); } return env->CallStaticObjectMethod(class_Network, method_fromNetworkHandle, static_cast<jlong>(dnsNetHandle)); } static jobject android_net_utils_getTcpRepairWindow(JNIEnv *env, jobject thiz, jobject javaFd) { Loading packages/Connectivity/framework/src/android/net/NetworkRequest.java +0 −19 Original line number Diff line number Diff line Loading @@ -660,25 +660,6 @@ public class NetworkRequest implements Parcelable { ", " + networkCapabilities.toString() + " ]"; } private int typeToProtoEnum(Type t) { switch (t) { case NONE: return NetworkRequestProto.TYPE_NONE; case LISTEN: return NetworkRequestProto.TYPE_LISTEN; case TRACK_DEFAULT: return NetworkRequestProto.TYPE_TRACK_DEFAULT; case REQUEST: return NetworkRequestProto.TYPE_REQUEST; case BACKGROUND_REQUEST: return NetworkRequestProto.TYPE_BACKGROUND_REQUEST; case TRACK_SYSTEM_DEFAULT: return NetworkRequestProto.TYPE_TRACK_SYSTEM_DEFAULT; default: return NetworkRequestProto.TYPE_UNKNOWN; } } public boolean equals(@Nullable Object obj) { if (obj instanceof NetworkRequest == false) return false; NetworkRequest that = (NetworkRequest)obj; Loading Loading
packages/Connectivity/framework/Android.bp +9 −50 Original line number Diff line number Diff line Loading @@ -23,26 +23,6 @@ package { default_applicable_licenses: ["frameworks_base_license"], } java_library { name: "framework-connectivity-protos", sdk_version: "module_current", min_sdk_version: "30", proto: { type: "nano", }, srcs: [ // TODO: consider moving relevant .proto files directly to the module directory ":framework-javastream-protos", ], apex_available: [ "com.android.tethering", ], jarjar_rules: "jarjar-rules-proto.txt", visibility: [ "//visibility:private", ], } filegroup { name: "framework-connectivity-internal-sources", srcs: [ Loading Loading @@ -109,9 +89,6 @@ java_sdk_library { libs: [ "unsupportedappusage", ], static_libs: [ "framework-connectivity-protos", ], jarjar_rules: "jarjar-rules.txt", permitted_packages: ["android.net"], impl_library_visibility: [ Loading @@ -137,8 +114,9 @@ java_sdk_library { ], } cc_defaults { name: "libframework-connectivity-defaults", cc_library_shared { name: "libframework-connectivity-jni", min_sdk_version: "30", cflags: [ "-Wall", "-Werror", Loading @@ -149,38 +127,19 @@ cc_defaults { "-Wno-unguarded-availability", "-Wthread-safety", ], srcs: [ "jni/android_net_NetworkUtils.cpp", "jni/onload.cpp", ], shared_libs: [ "libandroid", "liblog", "libnativehelper", ], header_libs: [ "dnsproxyd_protocol_headers", ], } cc_library_static { name: "libconnectivityframeworkutils", defaults: ["libframework-connectivity-defaults"], srcs: [ "jni/android_net_NetworkUtils.cpp", ], shared_libs: ["libandroid_net"], apex_available: [ "//apex_available:platform", "com.android.tethering", ], } cc_library_shared { name: "libframework-connectivity-jni", min_sdk_version: "30", defaults: ["libframework-connectivity-defaults"], srcs: [ "jni/android_net_NetworkUtils.cpp", "jni/onload.cpp", ], shared_libs: ["libandroid"], stl: "libc++_static", stl: "none", apex_available: [ "com.android.tethering", ], Loading
packages/Connectivity/framework/jarjar-rules-proto.txtdeleted 100644 → 0 +0 −3 Original line number Diff line number Diff line keep android.net.NetworkCapabilitiesProto keep android.net.NetworkProto keep android.net.NetworkRequestProto
packages/Connectivity/framework/jarjar-rules.txt +0 −9 Original line number Diff line number Diff line rule com.android.net.module.util.** android.net.connectivity.framework.util.@1 rule android.net.NetworkFactory* android.net.connectivity.framework.NetworkFactory@1 # TODO (b/149403767): remove the annotations from net-utils-device-common instead of here zap android.annotation.** zap com.android.net.module.annotation.** zap com.android.internal.annotations.** rule android.net.NetworkCapabilitiesProto* android.net.connectivity.proto.NetworkCapabilitiesProto@1 rule android.net.NetworkProto* android.net.connectivity.proto.NetworkProto@1 rule android.net.NetworkRequestProto* android.net.connectivity.proto.NetworkRequestProto@1
packages/Connectivity/framework/jni/android_net_NetworkUtils.cpp +20 −30 Original line number Diff line number Diff line Loading @@ -16,34 +16,19 @@ #define LOG_TAG "NetworkUtils" #include <vector> #include <android/file_descriptor_jni.h> #include <android/multinetwork.h> #include <arpa/inet.h> #include <linux/filter.h> #include <linux/if_arp.h> #include <linux/tcp.h> #include <net/if.h> #include <netinet/ether.h> #include <netinet/ip.h> #include <netinet/udp.h> #include <netinet/in.h> #include <string.h> #include <DnsProxydProtocol.h> // NETID_USE_LOCAL_NAMESERVERS #include <cutils/properties.h> #include <nativehelper/JNIHelp.h> #include <nativehelper/JNIPlatformHelp.h> #include <nativehelper/ScopedLocalRef.h> #include <utils/Log.h> #include <utils/misc.h> #include "jni.h" extern "C" { int ifc_enable(const char *ifname); int ifc_disable(const char *ifname); } #define NETUTILS_PKG_NAME "android/net/NetworkUtils" namespace android { Loading @@ -52,6 +37,9 @@ constexpr int MAXPACKETSIZE = 8 * 1024; // FrameworkListener limits the size of commands to 4096 bytes. constexpr int MAXCMDSIZE = 4096; static volatile jclass class_Network = 0; static volatile jmethodID method_fromNetworkHandle = 0; static inline jclass FindClassOrDie(JNIEnv* env, const char* class_name) { jclass clazz = env->FindClass(class_name); LOG_ALWAYS_FATAL_IF(clazz == NULL, "Unable to find class %s", class_name); Loading Loading @@ -138,11 +126,11 @@ static jobject android_net_utils_resNetworkQuery(JNIEnv *env, jobject thiz, jlon // Only allow dname which could be simply formatted to UTF8. // In native layer, res_mkquery would re-format the input char array to packet. std::vector<char> queryname(byteCountUTF8 + 1, 0); env->GetStringUTFRegion(dname, 0, javaCharsCount, queryname.data()); char queryname[byteCountUTF8 + 1]; memset(queryname, 0, (byteCountUTF8 + 1) * sizeof(char)); int fd = android_res_nquery(netHandle, queryname.data(), ns_class, ns_type, flags); env->GetStringUTFRegion(dname, 0, javaCharsCount, queryname); int fd = android_res_nquery(netHandle, queryname, ns_class, ns_type, flags); if (fd < 0) { jniThrowErrnoException(env, "resNetworkQuery", -fd); Loading Loading @@ -170,9 +158,9 @@ static jobject android_net_utils_resNetworkSend(JNIEnv *env, jobject thiz, jlong static jobject android_net_utils_resNetworkResult(JNIEnv *env, jobject thiz, jobject javaFd) { int fd = AFileDescriptor_getFD(env, javaFd); int rcode; std::vector<uint8_t> buf(MAXPACKETSIZE, 0); uint8_t buf[MAXPACKETSIZE] = {0}; int res = android_res_nresult(fd, &rcode, buf.data(), MAXPACKETSIZE); int res = android_res_nresult(fd, &rcode, buf, MAXPACKETSIZE); jniSetFileDescriptorOfFD(env, javaFd, -1); if (res < 0) { jniThrowErrnoException(env, "resNetworkResult", -res); Loading @@ -184,8 +172,7 @@ static jobject android_net_utils_resNetworkResult(JNIEnv *env, jobject thiz, job jniThrowErrnoException(env, "resNetworkResult", ENOMEM); return nullptr; } else { env->SetByteArrayRegion(answer, 0, res, reinterpret_cast<jbyte*>(buf.data())); env->SetByteArrayRegion(answer, 0, res, reinterpret_cast<jbyte*>(buf)); } jclass class_DnsResponse = env->FindClass("android/net/DnsResolver$DnsResponse"); Loading @@ -207,11 +194,14 @@ static jobject android_net_utils_getDnsNetwork(JNIEnv *env, jobject thiz) { return nullptr; } static jclass class_Network = MakeGlobalRefOrDie( env, FindClassOrDie(env, "android/net/Network")); static jmethodID method = env->GetStaticMethodID(class_Network, "fromNetworkHandle", if (method_fromNetworkHandle == 0) { // This may be called multiple times concurrently but that is fine class_Network = MakeGlobalRefOrDie(env, FindClassOrDie(env, "android/net/Network")); method_fromNetworkHandle = env->GetStaticMethodID(class_Network, "fromNetworkHandle", "(J)Landroid/net/Network;"); return env->CallStaticObjectMethod(class_Network, method, static_cast<jlong>(dnsNetHandle)); } return env->CallStaticObjectMethod(class_Network, method_fromNetworkHandle, static_cast<jlong>(dnsNetHandle)); } static jobject android_net_utils_getTcpRepairWindow(JNIEnv *env, jobject thiz, jobject javaFd) { Loading
packages/Connectivity/framework/src/android/net/NetworkRequest.java +0 −19 Original line number Diff line number Diff line Loading @@ -660,25 +660,6 @@ public class NetworkRequest implements Parcelable { ", " + networkCapabilities.toString() + " ]"; } private int typeToProtoEnum(Type t) { switch (t) { case NONE: return NetworkRequestProto.TYPE_NONE; case LISTEN: return NetworkRequestProto.TYPE_LISTEN; case TRACK_DEFAULT: return NetworkRequestProto.TYPE_TRACK_DEFAULT; case REQUEST: return NetworkRequestProto.TYPE_REQUEST; case BACKGROUND_REQUEST: return NetworkRequestProto.TYPE_BACKGROUND_REQUEST; case TRACK_SYSTEM_DEFAULT: return NetworkRequestProto.TYPE_TRACK_SYSTEM_DEFAULT; default: return NetworkRequestProto.TYPE_UNKNOWN; } } public boolean equals(@Nullable Object obj) { if (obj instanceof NetworkRequest == false) return false; NetworkRequest that = (NetworkRequest)obj; Loading