Merge "[DU03-4]Add NETWORK_STACK Permission check for NetworkStatsService API"
diff --git a/Tethering/Android.bp b/Tethering/Android.bp
index 451abf7..41a0651 100644
--- a/Tethering/Android.bp
+++ b/Tethering/Android.bp
@@ -50,7 +50,7 @@
],
libs: [
"framework-connectivity",
- "framework-connectivity-tiramisu.stubs.module_lib",
+ "framework-connectivity-t.stubs.module_lib",
"framework-statsd.stubs.module_lib",
"framework-tethering.impl",
"framework-wifi",
diff --git a/Tethering/apex/Android.bp b/Tethering/apex/Android.bp
index 85aec96..8459a2c 100644
--- a/Tethering/apex/Android.bp
+++ b/Tethering/apex/Android.bp
@@ -106,7 +106,7 @@
name: "com.android.tethering-bootclasspath-fragment",
contents: [
"framework-connectivity",
- "framework-connectivity-tiramisu",
+ "framework-connectivity-t",
"framework-tethering",
],
apex_available: ["com.android.tethering"],
diff --git a/Tethering/tests/unit/Android.bp b/Tethering/tests/unit/Android.bp
index 224d87a..d1b8380 100644
--- a/Tethering/tests/unit/Android.bp
+++ b/Tethering/tests/unit/Android.bp
@@ -34,7 +34,7 @@
libs: [
"framework-minus-apex",
"framework-connectivity.impl",
- "framework-connectivity-tiramisu.impl",
+ "framework-connectivity-t.impl",
"framework-tethering.impl",
],
visibility: [
@@ -68,7 +68,7 @@
"framework-minus-apex",
"framework-res",
"framework-connectivity.impl",
- "framework-connectivity-tiramisu.impl",
+ "framework-connectivity-t.impl",
"framework-tethering.impl",
"framework-wifi.stubs.module_lib",
],
diff --git a/framework-t/Android.bp b/framework-t/Android.bp
index 6a911ab..2ab69b8 100644
--- a/framework-t/Android.bp
+++ b/framework-t/Android.bp
@@ -30,7 +30,7 @@
// T, and were moved to the module in T. Other bootclasspath classes in connectivity should go to
// framework-connectivity.
java_defaults {
- name: "framework-connectivity-tiramisu-defaults",
+ name: "framework-connectivity-t-defaults",
sdk_version: "module_current",
min_sdk_version: "Tiramisu",
defaults: [
@@ -78,8 +78,8 @@
}
java_library {
- name: "framework-connectivity-tiramisu-pre-jarjar",
- defaults: ["framework-connectivity-tiramisu-defaults"],
+ name: "framework-connectivity-t-pre-jarjar",
+ defaults: ["framework-connectivity-t-defaults"],
libs: [
"framework-bluetooth",
"framework-wifi",
@@ -92,9 +92,9 @@
// T, and were moved to the module in T. Other bootclasspath classes in connectivity should go to
// framework-connectivity.
java_sdk_library {
- name: "framework-connectivity-tiramisu",
+ name: "framework-connectivity-t",
defaults: [
- "framework-connectivity-tiramisu-defaults",
+ "framework-connectivity-t-defaults",
"enable-framework-connectivity-t-targets",
],
// Do not add static_libs to this library: put them in framework-connectivity instead.
diff --git a/framework/Android.bp b/framework/Android.bp
index 481f375..66b662b 100644
--- a/framework/Android.bp
+++ b/framework/Android.bp
@@ -77,7 +77,7 @@
],
},
stub_only_libs: [
- "framework-connectivity-tiramisu.stubs.module_lib",
+ "framework-connectivity-t.stubs.module_lib",
],
impl_only_libs: [
"framework-tethering.stubs.module_lib",
@@ -90,7 +90,7 @@
"modules-utils-preconditions",
],
libs: [
- "framework-connectivity-tiramisu.stubs.module_lib",
+ "framework-connectivity-t.stubs.module_lib",
"unsupportedappusage",
],
apex_available: [
diff --git a/service-t/Android.bp b/service-t/Android.bp
index 6612318..159a870 100644
--- a/service-t/Android.bp
+++ b/service-t/Android.bp
@@ -19,10 +19,10 @@
default_applicable_licenses: ["Android-Apache-2.0"],
}
-// This builds T+ services depending on framework-connectivity-tiramisu
+// This builds T+ services depending on framework-connectivity-t
// hidden symbols separately from the S+ services, to ensure that S+
// services cannot accidentally depend on T+ hidden symbols from
-// framework-connectivity-tiramisu.
+// framework-connectivity-t.
java_library {
name: "service-connectivity-tiramisu-pre-jarjar",
sdk_version: "system_server_current",
@@ -35,7 +35,7 @@
libs: [
"framework-annotations-lib",
"framework-connectivity-pre-jarjar",
- "framework-connectivity-tiramisu-pre-jarjar",
+ "framework-connectivity-t-pre-jarjar",
"framework-tethering.stubs.module_lib",
"service-connectivity-pre-jarjar",
"unsupportedappusage",
diff --git a/service/Android.bp b/service/Android.bp
index 2cfab1e..a4d8d64 100644
--- a/service/Android.bp
+++ b/service/Android.bp
@@ -100,7 +100,7 @@
libs: [
"framework-annotations-lib",
"framework-connectivity-pre-jarjar",
- "framework-connectivity-tiramisu.stubs.module_lib",
+ "framework-connectivity-t.stubs.module_lib",
"framework-tethering.stubs.module_lib",
"framework-wifi.stubs.module_lib",
"unsupportedappusage",
diff --git a/tests/common/Android.bp b/tests/common/Android.bp
index 8782684..b23074d 100644
--- a/tests/common/Android.bp
+++ b/tests/common/Android.bp
@@ -115,7 +115,7 @@
// meaning @hide APIs in framework-connectivity are resolved before @SystemApi
// stubs in framework
"framework-connectivity.impl",
- "framework-connectivity-tiramisu.impl",
+ "framework-connectivity-t.impl",
"framework-tethering.impl",
"framework",
diff --git a/tests/cts/net/src/android/net/cts/RateLimitTest.java b/tests/cts/net/src/android/net/cts/RateLimitTest.java
index ff779bd..423f213 100644
--- a/tests/cts/net/src/android/net/cts/RateLimitTest.java
+++ b/tests/cts/net/src/android/net/cts/RateLimitTest.java
@@ -83,7 +83,8 @@
@RunWith(DevSdkIgnoreRunner.class)
@DevSdkIgnoreRule.IgnoreUpTo(SC_V2)
public class RateLimitTest {
- private static final HashSet<String> sKernelConfig;
+ // cannot be final as it gets initialized inside ensureKernelConfigLoaded().
+ private static HashSet<String> sKernelConfig;
private static final String TAG = "RateLimitTest";
private static final LinkAddress LOCAL_IP4_ADDR = new LinkAddress("10.0.0.1/8");
@@ -108,18 +109,21 @@
private Network mNetwork;
private DatagramSocket mSocket;
- static {
+ // Note: exceptions thrown in @BeforeClass or @ClassRule methods are not reported correctly.
+ // This function is called from setUp and loads the kernel config options the first time it is
+ // invoked. This ensures proper error reporting.
+ private static synchronized void ensureKernelConfigLoaded() {
+ if (sKernelConfig != null) return;
final String result = SystemUtil.runShellCommandOrThrow("gzip -cd /proc/config.gz");
sKernelConfig = Arrays.stream(result.split("\\R")).collect(
Collectors.toCollection(HashSet::new));
// make sure that if for some reason /proc/config.gz returns an empty string, this test
// does not silently fail.
- assertNotEquals(0, result.length());
+ assertNotEquals("gzip -cd /proc/config.gz returned an empty string", 0, result.length());
}
private static void assumeKernelSupport() {
- // Note: assumptions that fail in @BeforeClass annotated methods are not handled correctly.
assumeTrue(sKernelConfig.contains("CONFIG_NET_CLS_MATCHALL=y"));
assumeTrue(sKernelConfig.contains("CONFIG_NET_ACT_POLICE=y"));
assumeTrue(sKernelConfig.contains("CONFIG_NET_ACT_BPF=y"));
@@ -127,6 +131,8 @@
@Before
public void setUp() throws IOException {
+ ensureKernelConfigLoaded();
+
mHandler = new Handler(Looper.getMainLooper());
runAsShell(MANAGE_TEST_NETWORKS, () -> {
@@ -179,12 +185,14 @@
@After
public void tearDown() throws IOException {
- // whatever happens, don't leave the device in rate limited state.
- ConnectivitySettingsManager.setIngressRateLimitInBytesPerSecond(mContext, -1);
- mSocket.close();
- mNetworkAgent.unregister();
- mTunInterface.getFileDescriptor().close();
- mCm.unregisterNetworkCallback(mNetworkCallback);
+ if (mContext != null) {
+ // whatever happens, don't leave the device in rate limited state.
+ ConnectivitySettingsManager.setIngressRateLimitInBytesPerSecond(mContext, -1);
+ }
+ if (mSocket != null) mSocket.close();
+ if (mNetworkAgent != null) mNetworkAgent.unregister();
+ if (mTunInterface != null) mTunInterface.getFileDescriptor().close();
+ if (mCm != null) mCm.unregisterNetworkCallback(mNetworkCallback);
}
private void assertGreaterThan(final String msg, long lhs, long rhs) {