diff --git a/firmware/2lib/2kernel.c b/firmware/2lib/2kernel.c
index 3155d18..dd91ec8 100644
--- a/firmware/2lib/2kernel.c
+++ b/firmware/2lib/2kernel.c
@@ -143,9 +143,10 @@
 		return rv;
 	}
 
-	/* Enable phone recovery */
+	/* Enable phone recovery while disabling the UI */
 	secdata_flags = vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_FLAGS);
 	secdata_flags &= ~VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_DISABLED;
+	secdata_flags |= VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_UI_DISABLED;
 	vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_FLAGS, secdata_flags);
 
 	/* Read kernel version from secdata. */
diff --git a/firmware/2lib/2misc.c b/firmware/2lib/2misc.c
index eaab89d..86b866d 100644
--- a/firmware/2lib/2misc.c
+++ b/firmware/2lib/2misc.c
@@ -506,6 +506,17 @@
 		 VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_DISABLED);
 }
 
+int vb2api_phone_recovery_ui_enabled(struct vb2_context *ctx)
+{
+	/*
+	 * When phone recovery functionality is disabled, return 0 even if
+	 * PHONE_RECOVERY_UI_DISABLED is not set.
+	 */
+	return vb2api_phone_recovery_enabled(ctx) &&
+	       !(vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_FLAGS) &
+		 VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_UI_DISABLED);
+}
+
 enum vb2_dev_default_boot_target vb2api_get_dev_default_boot_target(
 	struct vb2_context *ctx)
 {
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c
index b41146d..042d6d4 100644
--- a/firmware/2lib/2ui_screens.c
+++ b/firmware/2lib/2ui_screens.c
@@ -196,7 +196,7 @@
 vb2_error_t recovery_select_init(struct vb2_ui_context *ui)
 {
 	ui->state.selected_item = RECOVERY_SELECT_ITEM_PHONE;
-	if (!vb2api_phone_recovery_enabled(ui->ctx)) {
+	if (!vb2api_phone_recovery_ui_enabled(ui->ctx)) {
 		VB2_DEBUG("WARNING: Phone recovery not available\n");
 		ui->state.disabled_item_mask |=
 			1 << RECOVERY_SELECT_ITEM_PHONE;
diff --git a/firmware/2lib/include/2api.h b/firmware/2lib/include/2api.h
index 1696289..9131dea 100644
--- a/firmware/2lib/include/2api.h
+++ b/firmware/2lib/include/2api.h
@@ -854,13 +854,21 @@
 uint32_t vb2api_get_locale_id(struct vb2_context *ctx);
 
 /**
- * Whether phone recovery is enabled or not.
+ * Whether phone recovery functionality is enabled or not.
  *
  * @param ctx		Vboot context
  * @return 1 if enabled, 0 if disabled.
  */
 int vb2api_phone_recovery_enabled(struct vb2_context *ctx);
 
+/**
+ * Whether phone recovery instructions in recovery UI are enabled or not.
+ *
+ * @param ctx		Vboot context
+ * @return 1 if enabled, 0 if disabled.
+ */
+int vb2api_phone_recovery_ui_enabled(struct vb2_context *ctx);
+
 /* Default boot target in developer mode. */
 enum vb2_dev_default_boot_target {
 	/* Default to boot from internal disk. */
diff --git a/firmware/2lib/include/2secdata.h b/firmware/2lib/include/2secdata.h
index 56ebb3b..3b2fa3c 100644
--- a/firmware/2lib/include/2secdata.h
+++ b/firmware/2lib/include/2secdata.h
@@ -89,15 +89,17 @@
 /* Flags for kernel space */
 enum vb2_secdata_kernel_flags {
 	/*
-	 * Phone recovery is disabled.
+	 * Phone recovery functionality is disabled.
 	 *
-	 * RW firmware currently sets this flag to disable phone recovery on
-	 * first boot (see function vb2api_kernel_phase1()).  A future RW update
-	 * will flip this flag back to 0 when phone recovery is ready.  In the
-	 * case that there are TPM communication issues, phone recovery is
-	 * enabled by the default value of 0.  See b/147744345 for details.
+	 * RW firmware currently clears this flag to enable phone recovery on
+	 * first boot (see function vb2api_kernel_phase1()).  In the case that
+	 * there are TPM communication issues, phone recovery is enabled by the
+	 * default value of 0.  See b/147744345 for details.
 	 */
 	VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_DISABLED = (1 << 0),
+
+	/* Phone recovery instructions in recovery UI are disabled. */
+	VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_UI_DISABLED = (1 << 1),
 };
 
 /**
diff --git a/tests/vb2_kernel_tests.c b/tests/vb2_kernel_tests.c
index 09ef706..216776d 100644
--- a/tests/vb2_kernel_tests.c
+++ b/tests/vb2_kernel_tests.c
@@ -213,9 +213,11 @@
 		"  key data");
 	TEST_EQ(sd->kernel_version_secdata, 0x20002,
 		"  secdata_kernel version");
-	/* Make sure phone recovery is enabled */
+	/* Make sure phone recovery functionality is enabled, but UI disabled */
 	TEST_EQ(vb2api_phone_recovery_enabled(ctx), 1,
 		"  phone recovery enabled");
+	TEST_EQ(vb2api_phone_recovery_ui_enabled(ctx), 0,
+		"  phone recovery ui disabled");
 
 	/* Bad secdata_fwmp causes failure in normal mode only */
 	reset_common_data(FOR_PHASE1);
diff --git a/tests/vb2_misc_tests.c b/tests/vb2_misc_tests.c
index b82076f..0f89ee5 100644
--- a/tests/vb2_misc_tests.c
+++ b/tests/vb2_misc_tests.c
@@ -839,6 +839,8 @@
 	vb2_secdata_kernel_init(ctx);
 	TEST_EQ(vb2api_phone_recovery_enabled(ctx), 1,
 		"phone recovery enabled");
+	TEST_EQ(vb2api_phone_recovery_ui_enabled(ctx), 1,
+		"  ui also enabled");
 
 	/* Phone recovery disabled */
 	reset_common_data();
@@ -848,6 +850,20 @@
 			       VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_DISABLED);
 	TEST_EQ(vb2api_phone_recovery_enabled(ctx), 0,
 		"phone recovery disabled");
+	TEST_EQ(vb2api_phone_recovery_ui_enabled(ctx), 0,
+		"  ui also disabled");
+
+	/* Only UI disabled */
+	reset_common_data();
+	vb2api_secdata_kernel_create(ctx);
+	vb2_secdata_kernel_init(ctx);
+	vb2_secdata_kernel_set(
+		ctx, VB2_SECDATA_KERNEL_FLAGS,
+		VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_UI_DISABLED);
+	TEST_EQ(vb2api_phone_recovery_enabled(ctx), 1,
+		"phone recovery enabled again");
+	TEST_EQ(vb2api_phone_recovery_ui_enabled(ctx), 0,
+		"  ui disabled");
 }
 
 static void dev_default_boot_tests(void)
