diff --git a/core/api/current.txt b/core/api/current.txt
index 6469e893e6bec91e3c901b7876123599abfa1ce1..4156a78f1c70d740354c239de0cdae3f6e20fb72 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -33410,6 +33410,7 @@ package android.os {
     method public static final long getElapsedCpuTime();
     method public static final int[] getExclusiveCores();
     method public static final int getGidForName(String);
+    method @FlaggedApi("com.android.sdksandbox.flags.sdk_sandbox_uid_to_app_uid_api") public static final int getSdkSandboxUidForAppUid(int);
     method public static long getStartElapsedRealtime();
     method public static long getStartRequestedElapsedRealtime();
     method public static long getStartRequestedUptimeMillis();
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index f952fcf36e602a6f213fcaf839708dd9091fa7af..dd0436cbb2f242f683785db9432ec47631f97c30 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -19,6 +19,7 @@ package android.os;
 import static android.annotation.SystemApi.Client.MODULE_LIBRARIES;
 
 import android.annotation.ElapsedRealtimeLong;
+import android.annotation.FlaggedApi;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SuppressLint;
@@ -37,6 +38,7 @@ import android.webkit.WebViewZygote;
 
 import com.android.internal.os.SomeArgs;
 import com.android.internal.util.Preconditions;
+import com.android.sdksandbox.flags.Flags;
 
 import dalvik.system.VMRuntime;
 
@@ -1016,10 +1018,29 @@ public class Process {
     @SystemApi(client = MODULE_LIBRARIES)
     @TestApi
     @android.ravenwood.annotation.RavenwoodKeep
+    // TODO(b/318651609): Deprecate once Process#getSdkSandboxUidForAppUid is rolled out to 100%
     public static final int toSdkSandboxUid(int uid) {
         return uid + (FIRST_SDK_SANDBOX_UID - FIRST_APPLICATION_UID);
     }
 
+    /**
+     * Returns the sdk sandbox uid corresponding to an app uid.
+     * @see android.app.sdksandbox.SdkSandboxManager
+     *
+     * @param uid the app uid
+     * @return the sdk sandbox uid for the given app uid
+     *
+     * @throws IllegalArgumentException if input is not an app uid
+     */
+    @FlaggedApi(Flags.FLAG_SDK_SANDBOX_UID_TO_APP_UID_API)
+    @android.ravenwood.annotation.RavenwoodKeep
+    public static final int getSdkSandboxUidForAppUid(int uid) {
+        if (!isApplicationUid(uid)) {
+            throw new IllegalArgumentException("Input UID is not an app UID");
+        }
+        return uid + (FIRST_SDK_SANDBOX_UID - FIRST_APPLICATION_UID);
+    }
+
     /**
      * Returns whether the current process is a sdk sandbox process.
      */