diff --git a/Android.bp b/Android.bp
index fccbfca..a160785 100644
--- a/Android.bp
+++ b/Android.bp
@@ -135,6 +135,7 @@
         "android.app.flags-aconfig",
         "android.provider.flags-aconfig",
         "android.security.flags-aconfig",
+        "keyboard_flags",
     ],
 }
 
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 7d335c3..dca7467 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1230,6 +1230,21 @@
                        android:value="@string/menu_key_system"/>
         </activity>
 
+        <activity android:name="Settings$PhysicalKeyboardLayoutPickerActivity"
+            android:label="@string/physical_keyboard_layout_picker_title"
+            android:exported="true"
+            android:clearTaskOnLaunch="true"
+            android:featureFlag="com.android.settings.keyboard.keyboard_and_touchpad_a11y_new_page_enabled">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.HARD_KEYBOARD_LAYOUT_PICKER_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                android:value="com.android.settings.inputmethod.NewKeyboardLayoutEnabledLocalesFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                android:value="@string/menu_key_system"/>
+        </activity>
+
         <!-- Keep compatibility with old shortcuts. -->
         <activity-alias android:name="LanguageSettings"
                 android:label="@string/language_input_gesture_title"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d50f865..aee8409 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4559,6 +4559,8 @@
     <string name="keyboard_a11y_category">Accessibility</string>
     <!-- Title for the 'physical keyboard' settings screen. [CHAR LIMIT=35] -->
     <string name="physical_keyboard_title">Physical keyboard</string>
+    <!-- Title for the 'physical keyboard' settings screen. [CHAR LIMIT=35] -->
+    <string name="physical_keyboard_layout_picker_title">Physical keyboard layout picker</string>
     <!-- Title for the 'Bounce keys' preference switch. [CHAR LIMIT=35] -->
     <string name="bounce_keys">Bounce keys</string>
     <!-- Summary text for the 'Bounce keys' preference sub-screen. [CHAR LIMIT=300] -->
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index cb4358f..d5cf9aa 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -92,6 +92,9 @@
     public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ }
     public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ }
     public static class PhysicalKeyboardActivity extends SettingsActivity { /* empty */ }
+    public static class PhysicalKeyboardLayoutPickerActivity extends SettingsActivity {
+        /* empty */
+    }
     public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ }
     public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ }
     public static class LocalePickerActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/inputmethod/InputPeripheralsSettingsUtils.java b/src/com/android/settings/inputmethod/InputPeripheralsSettingsUtils.java
index 6e3d11c..14f79bf 100644
--- a/src/com/android/settings/inputmethod/InputPeripheralsSettingsUtils.java
+++ b/src/com/android/settings/inputmethod/InputPeripheralsSettingsUtils.java
@@ -51,6 +51,7 @@
     static final String EXTRA_TITLE = "keyboard_layout_picker_title";
     static final String EXTRA_USER_ID = "user_id";
     static final String EXTRA_INPUT_DEVICE_IDENTIFIER = "input_device_identifier";
+    static final String EXTRA_INPUT_DEVICE = "input_device";
     static final String EXTRA_INPUT_METHOD_INFO = "input_method_info";
     static final String EXTRA_INPUT_METHOD_SUBTYPE = "input_method_subtype";
 
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
index 08aacf8..d9195d6 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.hardware.input.InputDeviceIdentifier;
@@ -35,6 +36,7 @@
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
 
+import com.android.internal.util.Preconditions;
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.SubSettingLauncher;
@@ -106,6 +108,16 @@
         mIm = mContext.getSystemService(InputManager.class);
         mImm = mContext.getSystemService(InputMethodManager.class);
         mInputDeviceId = -1;
+
+        Activity activity = Preconditions.checkNotNull(getActivity());
+        InputDevice inputDeviceFromIntent =
+                activity.getIntent().getParcelableExtra(
+                        InputPeripheralsSettingsUtils.EXTRA_INPUT_DEVICE,
+                        InputDevice.class);
+
+        if (inputDeviceFromIntent != null) {
+            launchLayoutPickerWithIdentifier(inputDeviceFromIntent.getIdentifier());
+        }
     }
 
     @Override
@@ -161,6 +173,23 @@
         mInputDeviceId = -1;
     }
 
+    private void launchLayoutPickerWithIdentifier(
+            InputDeviceIdentifier inputDeviceIdentifier) {
+        if (InputPeripheralsSettingsUtils.getInputDevice(mIm, inputDeviceIdentifier) == null) {
+            return;
+        }
+        InputMethodInfo info = mImm.getCurrentInputMethodInfoAsUser(UserHandle.of(mUserId));
+        InputMethodSubtype subtype = mImm.getCurrentInputMethodSubtype();
+        CharSequence subtypeLabel = getSubtypeLabel(mContext, info, subtype);
+
+        showKeyboardLayoutPicker(
+                subtypeLabel,
+                inputDeviceIdentifier,
+                mUserId,
+                info,
+                subtype);
+    }
+
     private void updateCheckedState() {
         if (InputPeripheralsSettingsUtils.getInputDevice(mIm, mInputDeviceIdentifier) == null) {
             return;
