diff --git a/api/current.txt b/api/current.txt
index b76a971..0d109b1 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -203,6 +203,7 @@
 
   public static final class IkeSessionParams.Builder {
     ctor public IkeSessionParams.Builder(@NonNull android.content.Context);
+    ctor public IkeSessionParams.Builder(@NonNull android.net.ipsec.ike.IkeSessionParams);
     method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder addIkeOption(int);
     method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder addPcscfServerRequest(@NonNull java.net.InetAddress);
     method @NonNull public android.net.ipsec.ike.IkeSessionParams.Builder addPcscfServerRequest(int);
@@ -303,6 +304,7 @@
 
   public static final class TransportModeChildSessionParams.Builder {
     ctor public TransportModeChildSessionParams.Builder();
+    ctor public TransportModeChildSessionParams.Builder(@NonNull android.net.ipsec.ike.TransportModeChildSessionParams);
     method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addInboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
     method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addOutboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
     method @NonNull public android.net.ipsec.ike.TransportModeChildSessionParams.Builder addSaProposal(@NonNull android.net.ipsec.ike.ChildSaProposal);
@@ -316,6 +318,7 @@
 
   public static final class TunnelModeChildSessionParams.Builder {
     ctor public TunnelModeChildSessionParams.Builder();
+    ctor public TunnelModeChildSessionParams.Builder(@NonNull android.net.ipsec.ike.TunnelModeChildSessionParams);
     method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
     method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalAddressRequest(int);
     method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionParams.Builder addInternalAddressRequest(@NonNull java.net.Inet4Address);
diff --git a/src/java/android/net/ipsec/ike/IkeSessionParams.java b/src/java/android/net/ipsec/ike/IkeSessionParams.java
index b2b473c..d7ae044 100644
--- a/src/java/android/net/ipsec/ike/IkeSessionParams.java
+++ b/src/java/android/net/ipsec/ike/IkeSessionParams.java
@@ -1211,7 +1211,6 @@
          * Construct Builder from the {@link IkeSessionParams} object.
          *
          * @param ikeSessionParams the object this Builder will be constructed with.
-         * @hide
          */
         public Builder(@NonNull IkeSessionParams ikeSessionParams) {
             mSaProposalList.addAll(ikeSessionParams.getSaProposals());
diff --git a/src/java/android/net/ipsec/ike/TransportModeChildSessionParams.java b/src/java/android/net/ipsec/ike/TransportModeChildSessionParams.java
index 4ae02d8..a0fe80b 100644
--- a/src/java/android/net/ipsec/ike/TransportModeChildSessionParams.java
+++ b/src/java/android/net/ipsec/ike/TransportModeChildSessionParams.java
@@ -90,7 +90,6 @@
          * Construct Builder from the {@link TransportModeChildSessionParams} object.
          *
          * @param childParams the object this Builder will be constructed with.
-         * @hide
          */
         public Builder(@NonNull TransportModeChildSessionParams childParams) {
             super(childParams);
diff --git a/src/java/android/net/ipsec/ike/TunnelModeChildSessionParams.java b/src/java/android/net/ipsec/ike/TunnelModeChildSessionParams.java
index 71b624e..4952fa9 100644
--- a/src/java/android/net/ipsec/ike/TunnelModeChildSessionParams.java
+++ b/src/java/android/net/ipsec/ike/TunnelModeChildSessionParams.java
@@ -223,7 +223,6 @@
          * Construct Builder from the {@link TunnelModeChildSessionParams} object.
          *
          * @param childParams the object this Builder will be constructed with.
-         * @hide
          */
         public Builder(@NonNull TunnelModeChildSessionParams childParams) {
             super(childParams);
