Skip to content
Snippets Groups Projects
Commit e55a88d3 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Use jarjar rule generator for connectivity rules

(This rolls forward part of a previous change, now that jarjar was fixed
to not get very slow when the number of rules increases).

Autogenerate connectivity jarjar rules at build time, to avoid issues
with forgotten jarjar rules or hard-to-diagnose errors introduced by
incorrect rules.

This change causes all classes in framework-connectivity(-t) and
service-connectivity to be jarjared into android.net.connectivity, but
still avoids jarjaring classes in com.android.server as before, to keep
it small.
For many classes this differs from the original jarjar rule.

Notes on implementation:

 - connectivity-jarjar-rules now has a subset
   framework-connectivity-jarjar-rules containing only the rules
   necessary for framework-connectivity. This is necessary because
   framework-connectivity cannot depend on rules generated based on
   service-connectivity, as there would be a dependency cycle
   (service-connectivity depends on framework-connectivity); Soong even
   crashes with a stack overflow.

 - framework-wifi.stubs.module_lib is added to
   framework-connectivity-pre-jarjar as it is necessary to build it (it
   is already in impl_only_libs in the defaults).
   It is unclear why framework-connectivity-pre-jarjar could build
   before that (possibly because it was only used as "lib" ?)

 - Fix package-private visibility; for example NattSocketKeepalive,
   TcpSocketKeepalive are not API so should be jarjared, but are used
   by ConnectivityManager which is not jarjared, so they are not in the
   same package after the change. Package-private members in the
   former 2 need to be public to be accessible. Changes in this commit
   are all that is needed, as demonstrated by followup commits that move
   the classes to a different package without further changes, and that
   enforce that no class in an API package gets jarjared.

 - framework-connectivity-internal-test-defaults is separated from
   framework-connectivity-test-defaults, for unit tests that need to
   access internal jarjared classes. Such tests need to use the jarjar
   rules themselves too, so this is only appropriate for connectivity
   internal unit tests.

Test: atest ConnectivityCoverageTests CtsNetTestCases
Bug: 217129444
Change-Id: Ib1bd939b71c0171d945fc01b96195d2f620ff13b
parent a79c2273
No related branches found
No related tags found
No related merge requests found
Showing
with 142 additions and 169 deletions
......@@ -122,6 +122,12 @@ android_app_certificate {
certificate: "com.android.tethering",
}
filegroup {
name: "connectivity-hiddenapi-files",
srcs: ["hiddenapi/*.txt"],
visibility: ["//packages/modules/Connectivity:__subpackages__"],
}
// Encapsulate the contributions made by the com.android.tethering to the bootclasspath.
bootclasspath_fragment {
name: "com.android.tethering-bootclasspath-fragment",
......
......@@ -103,7 +103,7 @@ java_sdk_library {
// Do not add static_libs to this library: put them in framework-connectivity instead.
// The jarjar rules are only so that references to jarjared utils in
// framework-connectivity-pre-jarjar match at runtime.
jarjar_rules: ":connectivity-jarjar-rules",
jarjar_rules: ":framework-connectivity-jarjar-rules",
permitted_packages: [
"android.app.usage",
"android.net",
......
......@@ -112,6 +112,7 @@ java_library {
// because the tethering stubs depend on the connectivity stubs (e.g.,
// TetheringRequest depends on LinkAddress).
"framework-tethering.stubs.module_lib",
"framework-wifi.stubs.module_lib",
],
visibility: ["//packages/modules/Connectivity:__subpackages__"]
}
......@@ -120,7 +121,7 @@ java_sdk_library {
name: "framework-connectivity",
defaults: ["framework-connectivity-defaults"],
installable: true,
jarjar_rules: ":connectivity-jarjar-rules",
jarjar_rules: ":framework-connectivity-jarjar-rules",
permitted_packages: ["android.net"],
impl_library_visibility: [
"//packages/modules/Connectivity/Tethering/apex",
......@@ -211,3 +212,33 @@ java_library {
"com.android.tethering",
],
}
java_genrule {
name: "framework-connectivity-jarjar-rules",
tool_files: [
":connectivity-hiddenapi-files",
":framework-connectivity-pre-jarjar{.jar}",
":framework-connectivity-t-pre-jarjar{.jar}",
":framework-connectivity.stubs.module_lib{.jar}",
":framework-connectivity-t.stubs.module_lib{.jar}",
"jarjar-excludes.txt",
],
tools: [
"jarjar-rules-generator",
],
out: ["framework_connectivity_jarjar_rules.txt"],
cmd: "$(location jarjar-rules-generator) " +
"--jars $(location :framework-connectivity-pre-jarjar{.jar}) " +
"$(location :framework-connectivity-t-pre-jarjar{.jar}) " +
"--prefix android.net.connectivity " +
"--apistubs $(location :framework-connectivity.stubs.module_lib{.jar}) " +
"$(location :framework-connectivity-t.stubs.module_lib{.jar}) " +
"--unsupportedapi $(locations :connectivity-hiddenapi-files) " +
"--excludes $(location jarjar-excludes.txt) " +
"--output $(out)",
visibility: [
"//packages/modules/Connectivity/framework:__subpackages__",
"//packages/modules/Connectivity/framework-t:__subpackages__",
"//packages/modules/Connectivity/service",
],
}
......@@ -232,7 +232,8 @@ static jobject android_net_utils_getTcpRepairWindow(JNIEnv *env, jobject thiz, j
return NULL;
}
jclass class_TcpRepairWindow = env->FindClass("android/net/TcpRepairWindow");
jclass class_TcpRepairWindow = env->FindClass(
"android/net/connectivity/android/net/TcpRepairWindow");
jmethodID ctor = env->GetMethodID(class_TcpRepairWindow, "<init>", "(IIIIII)V");
return env->NewObject(class_TcpRepairWindow, ctor, trw.snd_wl1, trw.snd_wnd, trw.max_window,
......@@ -253,7 +254,7 @@ static const JNINativeMethod gNetworkUtilMethods[] = {
{ "bindSocketToNetworkHandle", "(Ljava/io/FileDescriptor;J)I", (void*) android_net_utils_bindSocketToNetworkHandle },
{ "attachDropAllBPFFilter", "(Ljava/io/FileDescriptor;)V", (void*) android_net_utils_attachDropAllBPFFilter },
{ "detachBPFFilter", "(Ljava/io/FileDescriptor;)V", (void*) android_net_utils_detachBPFFilter },
{ "getTcpRepairWindow", "(Ljava/io/FileDescriptor;)Landroid/net/TcpRepairWindow;", (void*) android_net_utils_getTcpRepairWindow },
{ "getTcpRepairWindow", "(Ljava/io/FileDescriptor;)Landroid/net/connectivity/android/net/TcpRepairWindow;", (void*) android_net_utils_getTcpRepairWindow },
{ "resNetworkSend", "(J[BII)Ljava/io/FileDescriptor;", (void*) android_net_utils_resNetworkSend },
{ "resNetworkQuery", "(JLjava/lang/String;III)Ljava/io/FileDescriptor;", (void*) android_net_utils_resNetworkQuery },
{ "resNetworkResult", "(Ljava/io/FileDescriptor;)Landroid/net/DnsResolver$DnsResponse;", (void*) android_net_utils_resNetworkResult },
......
......@@ -29,7 +29,7 @@ public class DnsResolverServiceManager {
private final IBinder mResolver;
DnsResolverServiceManager(IBinder resolver) {
public DnsResolverServiceManager(IBinder resolver) {
mResolver = resolver;
}
......
......@@ -33,7 +33,7 @@ public final class NattSocketKeepalive extends SocketKeepalive {
@NonNull private final InetAddress mDestination;
private final int mResourceId;
NattSocketKeepalive(@NonNull IConnectivityManager service,
public NattSocketKeepalive(@NonNull IConnectivityManager service,
@NonNull Network network,
@NonNull ParcelFileDescriptor pfd,
int resourceId,
......@@ -48,7 +48,7 @@ public final class NattSocketKeepalive extends SocketKeepalive {
}
@Override
void startImpl(int intervalSec) {
protected void startImpl(int intervalSec) {
mExecutor.execute(() -> {
try {
mService.startNattKeepaliveWithFd(mNetwork, mPfd, mResourceId,
......@@ -62,7 +62,7 @@ public final class NattSocketKeepalive extends SocketKeepalive {
}
@Override
void stopImpl() {
protected void stopImpl() {
mExecutor.execute(() -> {
try {
if (mSlot != null) {
......
......@@ -35,7 +35,7 @@ import java.util.concurrent.Executor;
*
* @hide
*/
class QosCallbackConnection extends android.net.IQosCallback.Stub {
public class QosCallbackConnection extends android.net.IQosCallback.Stub {
@NonNull private final ConnectivityManager mConnectivityManager;
@Nullable private volatile QosCallback mCallback;
......@@ -56,7 +56,7 @@ class QosCallbackConnection extends android.net.IQosCallback.Stub {
* {@link Executor} must run callback sequentially, otherwise the order of
* callbacks cannot be guaranteed.
*/
QosCallbackConnection(@NonNull final ConnectivityManager connectivityManager,
public QosCallbackConnection(@NonNull final ConnectivityManager connectivityManager,
@NonNull final QosCallback callback,
@NonNull final Executor executor) {
mConnectivityManager = Objects.requireNonNull(connectivityManager,
......@@ -142,7 +142,7 @@ class QosCallbackConnection extends android.net.IQosCallback.Stub {
* There are no synchronization guarantees on exactly when the callback will stop receiving
* messages.
*/
void stopReceivingMessages() {
public void stopReceivingMessages() {
mCallback = null;
}
}
......@@ -88,7 +88,7 @@ public final class QosCallbackException extends Exception {
* {@hide}
*/
@NonNull
static QosCallbackException createException(@ExceptionType final int type) {
public static QosCallbackException createException(@ExceptionType final int type) {
switch (type) {
case EX_TYPE_FILTER_NETWORK_RELEASED:
return new QosCallbackException(new NetworkReleasedException());
......
......@@ -33,13 +33,15 @@ import java.net.InetAddress;
@SystemApi
public abstract class QosFilter {
/**
* The constructor is kept hidden from outside this package to ensure that all derived types
* are known and properly handled when being passed to and from {@link NetworkAgent}.
*
* @hide
*/
QosFilter() {
/** @hide */
protected QosFilter() {
// Ensure that all derived types are known, and known to be properly handled when being
// passed to and from NetworkAgent.
// For now the only known derived type is QosSocketFilter.
if (!(this instanceof QosSocketFilter)) {
throw new UnsupportedOperationException(
"Unsupported QosFilter type: " + this.getClass().getName());
}
}
/**
......
......@@ -73,9 +73,10 @@ public final class QosSocketInfo implements Parcelable {
* The parcel file descriptor wrapped around the socket's file descriptor.
*
* @return the parcel file descriptor of the socket
* @hide
*/
@NonNull
ParcelFileDescriptor getParcelFileDescriptor() {
public ParcelFileDescriptor getParcelFileDescriptor() {
return mParcelFileDescriptor;
}
......
......@@ -52,7 +52,8 @@ import java.util.concurrent.Executor;
* request. If it does, it MUST support at least 3 concurrent keepalive slots.
*/
public abstract class SocketKeepalive implements AutoCloseable {
static final String TAG = "SocketKeepalive";
/** @hide */
protected static final String TAG = "SocketKeepalive";
/**
* Success. It indicates there is no error.
......@@ -215,15 +216,22 @@ public abstract class SocketKeepalive implements AutoCloseable {
}
}
@NonNull final IConnectivityManager mService;
@NonNull final Network mNetwork;
@NonNull final ParcelFileDescriptor mPfd;
@NonNull final Executor mExecutor;
@NonNull final ISocketKeepaliveCallback mCallback;
/** @hide */
@NonNull protected final IConnectivityManager mService;
/** @hide */
@NonNull protected final Network mNetwork;
/** @hide */
@NonNull protected final ParcelFileDescriptor mPfd;
/** @hide */
@NonNull protected final Executor mExecutor;
/** @hide */
@NonNull protected final ISocketKeepaliveCallback mCallback;
// TODO: remove slot since mCallback could be used to identify which keepalive to stop.
@Nullable Integer mSlot;
/** @hide */
@Nullable protected Integer mSlot;
SocketKeepalive(@NonNull IConnectivityManager service, @NonNull Network network,
/** @hide */
public SocketKeepalive(@NonNull IConnectivityManager service, @NonNull Network network,
@NonNull ParcelFileDescriptor pfd,
@NonNull Executor executor, @NonNull Callback callback) {
mService = service;
......@@ -303,7 +311,8 @@ public abstract class SocketKeepalive implements AutoCloseable {
startImpl(intervalSec);
}
abstract void startImpl(int intervalSec);
/** @hide */
protected abstract void startImpl(int intervalSec);
/**
* Requests that keepalive be stopped. The application must wait for {@link Callback#onStopped}
......@@ -313,7 +322,8 @@ public abstract class SocketKeepalive implements AutoCloseable {
stopImpl();
}
abstract void stopImpl();
/** @hide */
protected abstract void stopImpl();
/**
* Deactivate this {@link SocketKeepalive} and free allocated resources. The instance won't be
......
......@@ -24,9 +24,9 @@ import android.util.Log;
import java.util.concurrent.Executor;
/** @hide */
final class TcpSocketKeepalive extends SocketKeepalive {
public final class TcpSocketKeepalive extends SocketKeepalive {
TcpSocketKeepalive(@NonNull IConnectivityManager service,
public TcpSocketKeepalive(@NonNull IConnectivityManager service,
@NonNull Network network,
@NonNull ParcelFileDescriptor pfd,
@NonNull Executor executor,
......@@ -50,7 +50,7 @@ final class TcpSocketKeepalive extends SocketKeepalive {
* acknowledgement.
*/
@Override
void startImpl(int intervalSec) {
protected void startImpl(int intervalSec) {
mExecutor.execute(() -> {
try {
mService.startTcpKeepalive(mNetwork, mPfd, intervalSec, mCallback);
......@@ -62,7 +62,7 @@ final class TcpSocketKeepalive extends SocketKeepalive {
}
@Override
void stopImpl() {
protected void stopImpl() {
mExecutor.execute(() -> {
try {
if (mSlot != null) {
......
......@@ -261,9 +261,15 @@ java_library {
installable: true,
}
filegroup {
genrule {
name: "connectivity-jarjar-rules",
srcs: ["jarjar-rules.txt"],
defaults: ["jarjar-rules-combine-defaults"],
srcs: [
":framework-connectivity-jarjar-rules",
":service-connectivity-jarjar-gen",
":service-nearby-jarjar-gen",
],
out: ["connectivity-jarjar-rules.txt"],
visibility: ["//packages/modules/Connectivity:__subpackages__"],
}
......@@ -274,3 +280,41 @@ filegroup {
srcs: ["src/com/android/server/BpfNetMaps.java"],
visibility: ["//packages/modules/Connectivity:__subpackages__"],
}
java_genrule {
name: "service-connectivity-jarjar-gen",
tool_files: [
":service-connectivity-pre-jarjar{.jar}",
":service-connectivity-tiramisu-pre-jarjar{.jar}",
"jarjar-excludes.txt",
],
tools: [
"jarjar-rules-generator",
],
out: ["service_connectivity_jarjar_rules.txt"],
cmd: "$(location jarjar-rules-generator) " +
"--jars $(location :service-connectivity-pre-jarjar{.jar}) " +
"$(location :service-connectivity-tiramisu-pre-jarjar{.jar}) " +
"--prefix android.net.connectivity " +
"--excludes $(location jarjar-excludes.txt) " +
"--output $(out)",
visibility: ["//visibility:private"],
}
java_genrule {
name: "service-nearby-jarjar-gen",
tool_files: [
":service-nearby-pre-jarjar{.jar}",
"jarjar-excludes.txt",
],
tools: [
"jarjar-rules-generator",
],
out: ["service_nearby_jarjar_rules.txt"],
cmd: "$(location jarjar-rules-generator) " +
"--jars $(location :service-nearby-pre-jarjar{.jar}) " +
"--prefix com.android.server.nearby " +
"--excludes $(location jarjar-excludes.txt) " +
"--output $(out)",
visibility: ["//visibility:private"],
}
# Classes in framework-connectivity are restricted to the android.net package.
# This cannot be changed because it is harcoded in ART in S.
# Any missing jarjar rule for framework-connectivity would be caught by the
# build as an unexpected class outside of the android.net package.
rule com.android.net.module.util.** android.net.connectivity.@0
rule com.android.modules.utils.** android.net.connectivity.@0
rule android.net.NetworkFactory* android.net.connectivity.@0
# From modules-utils-preconditions
rule com.android.internal.util.Preconditions* android.net.connectivity.@0
# From framework-connectivity-shared-srcs
rule android.util.LocalLog* android.net.connectivity.@0
rule android.util.IndentingPrintWriter* android.net.connectivity.@0
rule com.android.internal.util.IndentingPrintWriter* android.net.connectivity.@0
rule com.android.internal.util.MessageUtils* android.net.connectivity.@0
rule com.android.internal.util.WakeupMessage* android.net.connectivity.@0
rule com.android.internal.util.FileRotator* android.net.connectivity.@0
rule com.android.internal.util.ProcFileReader* android.net.connectivity.@0
# From framework-connectivity-protos
rule com.google.protobuf.** android.net.connectivity.@0
rule android.service.** android.net.connectivity.@0
rule android.sysprop.** com.android.connectivity.@0
rule com.android.internal.messages.** com.android.connectivity.@0
# From dnsresolver_aidl_interface (newer AIDLs should go to android.net.resolv.aidl)
rule android.net.resolv.aidl.** com.android.connectivity.@0
rule android.net.IDnsResolver* com.android.connectivity.@0
rule android.net.ResolverHostsParcel* com.android.connectivity.@0
rule android.net.ResolverOptionsParcel* com.android.connectivity.@0
rule android.net.ResolverParamsParcel* com.android.connectivity.@0
rule android.net.ResolverParamsParcel* com.android.connectivity.@0
# Also includes netd event listener AIDL, but this is handled by netd-client rules
# From netd-client (newer AIDLs should go to android.net.netd.aidl)
rule android.net.netd.aidl.** com.android.connectivity.@0
# Avoid including android.net.INetdEventCallback, used in tests but not part of the module
rule android.net.INetd com.android.connectivity.@0
rule android.net.INetd$* com.android.connectivity.@0
rule android.net.INetdUnsolicitedEventListener* com.android.connectivity.@0
rule android.net.InterfaceConfigurationParcel* com.android.connectivity.@0
rule android.net.MarkMaskParcel* com.android.connectivity.@0
rule android.net.NativeNetworkConfig* com.android.connectivity.@0
rule android.net.NativeNetworkType* com.android.connectivity.@0
rule android.net.NativeVpnType* com.android.connectivity.@0
rule android.net.RouteInfoParcel* com.android.connectivity.@0
rule android.net.TetherConfigParcel* com.android.connectivity.@0
rule android.net.TetherOffloadRuleParcel* com.android.connectivity.@0
rule android.net.TetherStatsParcel* com.android.connectivity.@0
rule android.net.UidRangeParcel* com.android.connectivity.@0
rule android.net.metrics.INetdEventListener* com.android.connectivity.@0
# From netlink-client
rule android.net.netlink.** com.android.connectivity.@0
# From networkstack-client (newer AIDLs should go to android.net.[networkstack|ipmemorystore].aidl)
rule android.net.networkstack.aidl.** com.android.connectivity.@0
rule android.net.ipmemorystore.aidl.** com.android.connectivity.@0
rule android.net.ipmemorystore.aidl.** com.android.connectivity.@0
rule android.net.DataStallReportParcelable* com.android.connectivity.@0
rule android.net.DhcpResultsParcelable* com.android.connectivity.@0
rule android.net.IIpMemoryStore* com.android.connectivity.@0
rule android.net.INetworkMonitor* com.android.connectivity.@0
rule android.net.INetworkStackConnector* com.android.connectivity.@0
rule android.net.INetworkStackStatusCallback* com.android.connectivity.@0
rule android.net.InformationElementParcelable* com.android.connectivity.@0
rule android.net.InitialConfigurationParcelable* com.android.connectivity.@0
rule android.net.IpMemoryStore* com.android.connectivity.@0
rule android.net.Layer2InformationParcelable* com.android.connectivity.@0
rule android.net.Layer2PacketParcelable* com.android.connectivity.@0
rule android.net.NattKeepalivePacketDataParcelable* com.android.connectivity.@0
rule android.net.NetworkMonitorManager* com.android.connectivity.@0
rule android.net.NetworkTestResultParcelable* com.android.connectivity.@0
rule android.net.PrivateDnsConfigParcel* com.android.connectivity.@0
rule android.net.ProvisioningConfigurationParcelable* com.android.connectivity.@0
rule android.net.ScanResultInfoParcelable* com.android.connectivity.@0
rule android.net.TcpKeepalivePacketDataParcelable* com.android.connectivity.@0
rule android.net.dhcp.DhcpLeaseParcelable* com.android.connectivity.@0
rule android.net.dhcp.DhcpServingParamsParcel* com.android.connectivity.@0
rule android.net.dhcp.IDhcpEventCallbacks* com.android.connectivity.@0
rule android.net.dhcp.IDhcpServer* com.android.connectivity.@0
rule android.net.ip.IIpClient* com.android.connectivity.@0
rule android.net.ip.IpClientCallbacks* com.android.connectivity.@0
rule android.net.ip.IpClientManager* com.android.connectivity.@0
rule android.net.ip.IpClientUtil* com.android.connectivity.@0
rule android.net.ipmemorystore.** com.android.connectivity.@0
rule android.net.networkstack.** com.android.connectivity.@0
rule android.net.shared.** com.android.connectivity.@0
rule android.net.util.KeepalivePacketDataUtil* com.android.connectivity.@0
# From connectivity-module-utils
rule android.net.shared.** com.android.connectivity.@0
# From services-connectivity-shared-srcs
rule android.net.util.NetworkConstants* com.android.connectivity.@0
# From modules-utils-statemachine
rule com.android.internal.util.IState* com.android.connectivity.@0
rule com.android.internal.util.State* com.android.connectivity.@0
# From the API shims
rule com.android.networkstack.apishim.** com.android.connectivity.@0
# From filegroup framework-connectivity-protos
rule android.service.*Proto com.android.connectivity.@0
# From mdns-aidl-interface
rule android.net.mdns.aidl.** android.net.connectivity.@0
# From nearby-service, including proto
rule service.proto.** com.android.server.nearby.@0
rule androidx.annotation.Keep* com.android.server.nearby.@0
rule androidx.collection.** com.android.server.nearby.@0
rule androidx.core.** com.android.server.nearby.@0
rule androidx.versionedparcelable.** com.android.server.nearby.@0
rule com.google.common.** com.android.server.nearby.@0
rule android.support.v4.** com.android.server.nearby.@0
# Remaining are connectivity sources in com.android.server and com.android.server.connectivity:
# TODO: move to a subpackage of com.android.connectivity (such as com.android.connectivity.server)
......@@ -2,8 +2,6 @@
# TODO: instead of keeping everything, consider listing only "entry points"
# (service loader, JNI registered methods, etc) and letting the optimizer do its job
-keep class android.net.** { *; }
-keep class com.android.connectivity.** { *; }
-keep class com.android.net.** { *; }
-keep class !com.android.server.nearby.**,com.android.server.** { *; }
# Prevent proguard from stripping out any nearby-service and fast-pair-lite-protos fields.
......@@ -13,5 +11,5 @@
# the schema, keep all the fields.
# This replicates the base proguard rule used by the build by default
# (proguard_basic_keeps.flags), but needs to be specified here because the
# com.google.protobuf package is jarjared to the below package.
-keepclassmembers class * extends android.net.connectivity.com.google.protobuf.MessageLite { <fields>; }
# com.google.protobuf package is jarjared to use a package prefix.
-keepclassmembers class * extends **.com.google.protobuf.MessageLite { <fields>; }
......@@ -23,7 +23,7 @@ package {
java_library {
name: "FrameworksNetCommonTests",
defaults: ["framework-connectivity-test-defaults"],
defaults: ["framework-connectivity-internal-test-defaults"],
srcs: [
"java/**/*.java",
"java/**/*.kt",
......@@ -49,6 +49,7 @@ java_library {
// jarjar stops at the first matching rule, so order of concatenation affects the output.
genrule {
name: "ConnectivityCoverageJarJarRules",
defaults: ["jarjar-rules-combine-defaults"],
srcs: [
"tethering-jni-jarjar-rules.txt",
":connectivity-jarjar-rules",
......@@ -56,8 +57,6 @@ genrule {
":NetworkStackJarJarRules",
],
out: ["jarjar-rules-connectivity-coverage.txt"],
// Concat files with a line break in the middle
cmd: "for src in $(in); do cat $${src}; echo; done > $(out)",
visibility: ["//visibility:private"],
}
......@@ -84,7 +83,7 @@ android_test {
target_sdk_version: "31",
test_suites: ["general-tests", "mts-tethering"],
defaults: [
"framework-connectivity-test-defaults",
"framework-connectivity-internal-test-defaults",
"FrameworksNetTests-jni-defaults",
"libnetworkstackutilsjni_deps",
],
......
......@@ -21,7 +21,7 @@ package {
android_test {
name: "FrameworksNetIntegrationTests",
defaults: ["framework-connectivity-test-defaults"],
defaults: ["framework-connectivity-internal-test-defaults"],
platform_apis: true,
certificate: "platform",
srcs: [
......@@ -71,8 +71,12 @@ java_library {
"net-tests-utils",
],
libs: [
"service-connectivity-for-tests",
"service-connectivity-pre-jarjar",
"services.core",
"services.net",
],
visibility: [
"//packages/modules/Connectivity/tests/integration",
"//packages/modules/Connectivity/tests/unit",
],
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment