diff --git a/tests/resolv_integration_test.cpp b/tests/resolv_integration_test.cpp
index c98cc7b..b7a9f97 100644
--- a/tests/resolv_integration_test.cpp
+++ b/tests/resolv_integration_test.cpp
@@ -4241,8 +4241,9 @@
     EXPECT_EQ(500, readResponseCode(fd));
 }
 
-// TODO(b/219434602): find an alternative way to block DNS packets or delete the test.
-TEST_F(ResolverTest, DISABLED_BlockDnsQueryWithUidRule) {
+// TODO(b/219434602): find an alternative way to block DNS packets on T+.
+TEST_F(ResolverTest, BlockDnsQueryWithUidRule) {
+    if (android::modules::sdklevel::IsAtLeastT()) GTEST_SKIP() << "T+ device.";
     SKIP_IF_BPF_NOT_SUPPORTED;
     constexpr char listen_addr1[] = "127.0.0.4";
     constexpr char listen_addr2[] = "::1";
@@ -4290,8 +4291,9 @@
     }
 }
 
-// TODO(b/219434602): find an alternative way to block DNS packets or delete the test.
-TEST_F(ResolverTest, DISABLED_GetAddrinfo_BlockDnsQueryWithUidRule) {
+// TODO(b/219434602): find an alternative way to block DNS packets on T+.
+TEST_F(ResolverTest, GetAddrinfo_BlockDnsQueryWithUidRule) {
+    if (android::modules::sdklevel::IsAtLeastT()) GTEST_SKIP() << "T+ device.";
     SKIP_IF_BPF_NOT_SUPPORTED;
     constexpr char listen_addr1[] = "127.0.0.4";
     constexpr char listen_addr2[] = "::1";
@@ -4341,8 +4343,9 @@
     }
 }
 
-// TODO(b/219434602): find an alternative way to block DNS packets or delete the test.
-TEST_F(ResolverTest, DISABLED_EnforceDnsUid) {
+// TODO(b/219434602): find an alternative way to block DNS packets on T+.
+TEST_F(ResolverTest, EnforceDnsUid) {
+    if (android::modules::sdklevel::IsAtLeastT()) GTEST_SKIP() << "T+ device.";
     SKIP_IF_BPF_NOT_SUPPORTED;
     constexpr char listen_addr1[] = "127.0.0.4";
     constexpr char listen_addr2[] = "::1";
@@ -5908,8 +5911,9 @@
     EXPECT_EQ(0U, GetNumQueries(dns, kHelloExampleCom));
 }
 
-// TODO(b/219434602): find an alternative way to block DNS packets or delete the test.
-TEST_F(ResolverTest, DISABLED_BlockDnsQueryUidDoesNotLeadToBadServer) {
+// TODO(b/219434602): find an alternative way to block DNS packets on T+.
+TEST_F(ResolverTest, BlockDnsQueryUidDoesNotLeadToBadServer) {
+    if (android::modules::sdklevel::IsAtLeastT()) GTEST_SKIP() << "T+ device.";
     SKIP_IF_BPF_NOT_SUPPORTED;
     constexpr char listen_addr1[] = "127.0.0.4";
     constexpr char listen_addr2[] = "::1";
@@ -7159,8 +7163,9 @@
     EXPECT_EQ(GetNumQueries(*dnsPair2->dnsServer, host_name), 1U);
 }
 
-// TODO(b/219434602): find an alternative way to block DNS packets or delete the test.
-TEST_F(ResolverMultinetworkTest, DISABLED_DnsWithVpn) {
+// TODO(b/219434602): find an alternative way to block DNS packets on T+.
+TEST_F(ResolverMultinetworkTest, DnsWithVpn) {
+    if (android::modules::sdklevel::IsAtLeastT()) GTEST_SKIP() << "T+ device.";
     SKIP_IF_BPF_NOT_SUPPORTED;
     SKIP_IF_REMOTE_VERSION_LESS_THAN(mDnsClient.resolvService(), 4);
     constexpr char host_name[] = "ohayou.example.com.";
