diff --git a/framework/src/android/net/ConnectivitySettingsManager.java b/framework/src/android/net/ConnectivitySettingsManager.java
index ba7df7f..01e0726 100644
--- a/framework/src/android/net/ConnectivitySettingsManager.java
+++ b/framework/src/android/net/ConnectivitySettingsManager.java
@@ -357,6 +357,84 @@
     public static final int PRIVATE_DNS_MODE_OFF = ConnectivitySettingsUtils.PRIVATE_DNS_MODE_OFF;
 
     /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_ADGUARD =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_ADGUARD;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_APPLIEDPRIVACY =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_APPLIEDPRIVACY;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_CLEANBROWSING =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CLEANBROWSING;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_CIRA =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CIRA;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_CZNIC =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CZNIC;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_CLOUDFLARE =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_CLOUDFLARE;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_GOOGLE =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_GOOGLE;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_MULLVAD =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_MULLVAD;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_QUADNINE =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_QUADNINE;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_RESTENA =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_RESTENA;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_SWITCH =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_SWITCH;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_TWNIC =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_TWNIC;
+
+    /**
+     * @hide
+     */
+    public static final int PRIVATE_DNS_MODE_UNCENSOREDDNS =
+            ConnectivitySettingsUtils.PRIVATE_DNS_MODE_UNCENSOREDDNS;
+
+    /**
      * One of the private DNS modes that indicates the private DNS mode is automatic, which
      * will try to use the current DNS as private DNS.
      */
@@ -371,10 +449,89 @@
     public static final int PRIVATE_DNS_MODE_PROVIDER_HOSTNAME =
             ConnectivitySettingsUtils.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
 
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_ADGUARD = "dns.adguard.com";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_APPLIEDPRIVACY = "dot1.applied-privacy.net";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_CIRA = "protected.canadianshield.cira.ca";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_CZNIC = "odvr.nic.cz";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_CLEANBROWSING = "security-filter-dns.cleanbrowsing.org";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_CLOUDFLARE = "security.cloudflare-dns.com";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_GOOGLE = "dns.google";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_MULLVAD = "adblock.doh.mullvad.net";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_QUADNINE = "dns.quad9.net";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_RESTENA = "kaitain.restena.lu";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_SWITCH = "dns.switch.ch";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_TWNIC = "101.101.101.101";
+
+    /**
+     * @hide
+     */
+    public static final String PRIVATE_DNS_SPECIFIER_UNCENSOREDDNS = "unicast.censurfridns.dk";
+
+
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(value = {
             PRIVATE_DNS_MODE_OFF,
+            PRIVATE_DNS_MODE_ADGUARD,
+            PRIVATE_DNS_MODE_APPLIEDPRIVACY,
+            PRIVATE_DNS_MODE_CLEANBROWSING,
+            PRIVATE_DNS_MODE_CIRA,
+            PRIVATE_DNS_MODE_CZNIC,
+            PRIVATE_DNS_MODE_CLOUDFLARE,
+            PRIVATE_DNS_MODE_GOOGLE,
+            PRIVATE_DNS_MODE_MULLVAD,
+            PRIVATE_DNS_MODE_QUADNINE,
+            PRIVATE_DNS_MODE_RESTENA,
+            PRIVATE_DNS_MODE_SWITCH,
+            PRIVATE_DNS_MODE_TWNIC,
+            PRIVATE_DNS_MODE_UNCENSOREDDNS,
             PRIVATE_DNS_MODE_OPPORTUNISTIC,
             PRIVATE_DNS_MODE_PROVIDER_HOSTNAME,
     })
@@ -829,6 +986,19 @@
     public static void setPrivateDnsDefaultMode(@NonNull Context context,
             @NonNull @PrivateDnsMode int mode) {
         if (!(mode == PRIVATE_DNS_MODE_OFF
+                || mode == PRIVATE_DNS_MODE_ADGUARD
+                || mode == PRIVATE_DNS_MODE_APPLIEDPRIVACY
+                || mode == PRIVATE_DNS_MODE_CLEANBROWSING
+                || mode == PRIVATE_DNS_MODE_CIRA
+                || mode == PRIVATE_DNS_MODE_CZNIC
+                || mode == PRIVATE_DNS_MODE_CLOUDFLARE
+                || mode == PRIVATE_DNS_MODE_GOOGLE
+                || mode == PRIVATE_DNS_MODE_MULLVAD
+                || mode == PRIVATE_DNS_MODE_QUADNINE
+                || mode == PRIVATE_DNS_MODE_RESTENA
+                || mode == PRIVATE_DNS_MODE_SWITCH
+                || mode == PRIVATE_DNS_MODE_TWNIC
+                || mode == PRIVATE_DNS_MODE_UNCENSOREDDNS
                 || mode == PRIVATE_DNS_MODE_OPPORTUNISTIC
                 || mode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
             throw new IllegalArgumentException("Invalid private dns mode");
diff --git a/service/src/com/android/server/connectivity/DnsManager.java b/service/src/com/android/server/connectivity/DnsManager.java
index 8e6854a..7c65a59 100644
--- a/service/src/com/android/server/connectivity/DnsManager.java
+++ b/service/src/com/android/server/connectivity/DnsManager.java
@@ -23,8 +23,34 @@
 import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_DEFAULT_MODE;
 import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE;
 import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_OFF;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_ADGUARD;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_APPLIEDPRIVACY;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_CLEANBROWSING;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_CIRA;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_CZNIC;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_CLOUDFLARE;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_GOOGLE;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_MULLVAD;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_QUADNINE;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_RESTENA;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_SWITCH;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_TWNIC;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_UNCENSOREDDNS;
 import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
 import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_ADGUARD;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_APPLIEDPRIVACY;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_CLEANBROWSING;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_CIRA;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_CZNIC;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_CLOUDFLARE;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_GOOGLE;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_MULLVAD;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_QUADNINE;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_RESTENA;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_SWITCH;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_TWNIC;
+import static android.net.ConnectivitySettingsManager.PRIVATE_DNS_SPECIFIER_UNCENSOREDDNS;
 import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALIDATION_RESULT_FAILURE;
 import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALIDATION_RESULT_SUCCESS;
 
@@ -142,6 +168,58 @@
             return new PrivateDnsConfig(specifier, null);
         }
 
+        if (PRIVATE_DNS_MODE_ADGUARD == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_ADGUARD, null);
+        }
+
+        if (PRIVATE_DNS_MODE_APPLIEDPRIVACY == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_APPLIEDPRIVACY, null);
+        }
+
+        if (PRIVATE_DNS_MODE_CLEANBROWSING == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_CLEANBROWSING, null);
+        }
+
+        if (PRIVATE_DNS_MODE_CIRA == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_CIRA, null);
+        }
+
+        if (PRIVATE_DNS_MODE_CZNIC == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_CZNIC, null);
+        }
+
+        if (PRIVATE_DNS_MODE_CLOUDFLARE == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_CLOUDFLARE, null);
+        }
+
+        if (PRIVATE_DNS_MODE_GOOGLE == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_GOOGLE, null);
+        }
+
+        if (PRIVATE_DNS_MODE_MULLVAD == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_MULLVAD, null);
+        }
+
+        if (PRIVATE_DNS_MODE_QUADNINE == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_QUADNINE, null);
+        }
+
+        if (PRIVATE_DNS_MODE_RESTENA == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_RESTENA, null);
+        }
+
+        if (PRIVATE_DNS_MODE_SWITCH == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_SWITCH, null);
+        }
+
+        if (PRIVATE_DNS_MODE_TWNIC == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_TWNIC, null);
+        }
+
+        if (PRIVATE_DNS_MODE_UNCENSOREDDNS == mode) {
+            return new PrivateDnsConfig(PRIVATE_DNS_SPECIFIER_UNCENSOREDDNS, null);
+        }
+
         return new PrivateDnsConfig(useTls);
     }
 
diff --git a/staticlibs/framework/com/android/net/module/util/ConnectivitySettingsUtils.java b/staticlibs/framework/com/android/net/module/util/ConnectivitySettingsUtils.java
index f4856b3..cfdfb33 100644
--- a/staticlibs/framework/com/android/net/module/util/ConnectivitySettingsUtils.java
+++ b/staticlibs/framework/com/android/net/module/util/ConnectivitySettingsUtils.java
@@ -32,10 +32,36 @@
     public static final int PRIVATE_DNS_MODE_OFF = 1;
     public static final int PRIVATE_DNS_MODE_OPPORTUNISTIC = 2;
     public static final int PRIVATE_DNS_MODE_PROVIDER_HOSTNAME = 3;
+    public static final int PRIVATE_DNS_MODE_ADGUARD = 4;
+    public static final int PRIVATE_DNS_MODE_APPLIEDPRIVACY = 5;
+    public static final int PRIVATE_DNS_MODE_CLEANBROWSING = 6;
+    public static final int PRIVATE_DNS_MODE_CIRA = 7;
+    public static final int PRIVATE_DNS_MODE_CZNIC = 8;
+    public static final int PRIVATE_DNS_MODE_CLOUDFLARE = 9;
+    public static final int PRIVATE_DNS_MODE_GOOGLE = 10;
+    public static final int PRIVATE_DNS_MODE_MULLVAD = 11;
+    public static final int PRIVATE_DNS_MODE_QUADNINE = 12;
+    public static final int PRIVATE_DNS_MODE_RESTENA = 13;
+    public static final int PRIVATE_DNS_MODE_SWITCH = 14;
+    public static final int PRIVATE_DNS_MODE_TWNIC = 15;
+    public static final int PRIVATE_DNS_MODE_UNCENSOREDDNS = 16;
 
     public static final String PRIVATE_DNS_DEFAULT_MODE = "private_dns_default_mode";
     public static final String PRIVATE_DNS_MODE = "private_dns_mode";
     public static final String PRIVATE_DNS_MODE_OFF_STRING = "off";
+    public static final String PRIVATE_DNS_MODE_ADGUARD_STRING = "adguard";
+    public static final String PRIVATE_DNS_MODE_APPLIEDPRIVACY_STRING = "appliedprivacy";
+    public static final String PRIVATE_DNS_MODE_CLEANBROWSING_STRING = "cleanbrowsing";
+    public static final String PRIVATE_DNS_MODE_CIRA_STRING = "cira";
+    public static final String PRIVATE_DNS_MODE_CZNIC_STRING = "cznic";
+    public static final String PRIVATE_DNS_MODE_CLOUDFLARE_STRING = "cloudflare";
+    public static final String PRIVATE_DNS_MODE_GOOGLE_STRING = "google";
+    public static final String PRIVATE_DNS_MODE_MULLVAD_STRING = "mullvad";
+    public static final String PRIVATE_DNS_MODE_QUADNINE_STRING = "quadnine";
+    public static final String PRIVATE_DNS_MODE_RESTENA_STRING = "restena";
+    public static final String PRIVATE_DNS_MODE_SWITCH_STRING = "switch";
+    public static final String PRIVATE_DNS_MODE_TWNIC_STRING = "twnic";
+    public static final String PRIVATE_DNS_MODE_UNCENSOREDDNS_STRING = "uncensoreddns";
     public static final String PRIVATE_DNS_MODE_OPPORTUNISTIC_STRING = "opportunistic";
     public static final String PRIVATE_DNS_MODE_PROVIDER_HOSTNAME_STRING = "hostname";
     public static final String PRIVATE_DNS_SPECIFIER = "private_dns_specifier";
@@ -50,6 +76,32 @@
         switch (mode) {
             case PRIVATE_DNS_MODE_OFF:
                 return PRIVATE_DNS_MODE_OFF_STRING;
+            case PRIVATE_DNS_MODE_ADGUARD:
+                return PRIVATE_DNS_MODE_ADGUARD_STRING;
+            case PRIVATE_DNS_MODE_APPLIEDPRIVACY:
+                return PRIVATE_DNS_MODE_APPLIEDPRIVACY_STRING;
+            case PRIVATE_DNS_MODE_CLEANBROWSING:
+                return PRIVATE_DNS_MODE_CLEANBROWSING_STRING;
+            case PRIVATE_DNS_MODE_CIRA:
+                return PRIVATE_DNS_MODE_CIRA_STRING;
+            case PRIVATE_DNS_MODE_CZNIC:
+                return PRIVATE_DNS_MODE_CZNIC_STRING;
+            case PRIVATE_DNS_MODE_CLOUDFLARE:
+                return PRIVATE_DNS_MODE_CLOUDFLARE_STRING;
+            case PRIVATE_DNS_MODE_GOOGLE:
+                return PRIVATE_DNS_MODE_GOOGLE_STRING;
+            case PRIVATE_DNS_MODE_MULLVAD:
+                return PRIVATE_DNS_MODE_MULLVAD_STRING;
+            case PRIVATE_DNS_MODE_QUADNINE:
+                return PRIVATE_DNS_MODE_QUADNINE_STRING;
+            case PRIVATE_DNS_MODE_RESTENA:
+                return PRIVATE_DNS_MODE_RESTENA_STRING;
+            case PRIVATE_DNS_MODE_SWITCH:
+                return PRIVATE_DNS_MODE_SWITCH_STRING;
+            case PRIVATE_DNS_MODE_TWNIC:
+                return PRIVATE_DNS_MODE_TWNIC_STRING;
+            case PRIVATE_DNS_MODE_UNCENSOREDDNS:
+                return PRIVATE_DNS_MODE_UNCENSOREDDNS_STRING;
             case PRIVATE_DNS_MODE_OPPORTUNISTIC:
                 return PRIVATE_DNS_MODE_OPPORTUNISTIC_STRING;
             case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME:
@@ -67,6 +119,32 @@
         switch (mode) {
             case "off":
                 return PRIVATE_DNS_MODE_OFF;
+            case "adguard":
+                return PRIVATE_DNS_MODE_ADGUARD;
+            case "appliedprivacy":
+                return PRIVATE_DNS_MODE_APPLIEDPRIVACY;
+            case "cleanbrowsing":
+                return PRIVATE_DNS_MODE_CLEANBROWSING;
+            case "cira":
+                return PRIVATE_DNS_MODE_CIRA;
+            case "cznic":
+                return PRIVATE_DNS_MODE_CZNIC;
+            case "cloudflare":
+                return PRIVATE_DNS_MODE_CLOUDFLARE;
+            case "google":
+                return PRIVATE_DNS_MODE_GOOGLE;
+            case "mullvad":
+                return PRIVATE_DNS_MODE_MULLVAD;
+            case "quadnine":
+                return PRIVATE_DNS_MODE_QUADNINE;
+            case "restena":
+                return PRIVATE_DNS_MODE_RESTENA;
+            case "switch":
+                return PRIVATE_DNS_MODE_SWITCH;
+            case "twnic":
+                return PRIVATE_DNS_MODE_TWNIC;
+            case "uncensoreddns":
+                return PRIVATE_DNS_MODE_UNCENSOREDDNS;
             case "hostname":
                 return PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
             case "opportunistic":
@@ -100,6 +178,19 @@
      */
     public static void setPrivateDnsMode(@NonNull Context context, int mode) {
         if (!(mode == PRIVATE_DNS_MODE_OFF
+                || mode == PRIVATE_DNS_MODE_ADGUARD
+                || mode == PRIVATE_DNS_MODE_APPLIEDPRIVACY
+                || mode == PRIVATE_DNS_MODE_CLEANBROWSING
+                || mode == PRIVATE_DNS_MODE_CIRA
+                || mode == PRIVATE_DNS_MODE_CZNIC
+                || mode == PRIVATE_DNS_MODE_CLOUDFLARE
+                || mode == PRIVATE_DNS_MODE_GOOGLE
+                || mode == PRIVATE_DNS_MODE_MULLVAD
+                || mode == PRIVATE_DNS_MODE_QUADNINE
+                || mode == PRIVATE_DNS_MODE_RESTENA
+                || mode == PRIVATE_DNS_MODE_SWITCH
+                || mode == PRIVATE_DNS_MODE_TWNIC
+                || mode == PRIVATE_DNS_MODE_UNCENSOREDDNS
                 || mode == PRIVATE_DNS_MODE_OPPORTUNISTIC
                 || mode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME)) {
             throw new IllegalArgumentException("Invalid private dns mode: " + mode);
