summaryrefslogtreecommitdiff
path: root/firmware/2lib/2kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/2lib/2kernel.c')
-rw-r--r--firmware/2lib/2kernel.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/firmware/2lib/2kernel.c b/firmware/2lib/2kernel.c
index 02ea5446..4b6badb6 100644
--- a/firmware/2lib/2kernel.c
+++ b/firmware/2lib/2kernel.c
@@ -126,7 +126,7 @@ vb2_error_t vb2api_kernel_phase1(struct vb2_context *ctx)
struct vb2_shared_data *sd = vb2_get_sd(ctx);
struct vb2_workbuf wb;
struct vb2_packed_key *packed_key;
- uint32_t secdata_flags;
+ uint32_t flags;
vb2_error_t rv;
vb2_workbuf_from_ctx(ctx, &wb);
@@ -143,12 +143,14 @@ vb2_error_t vb2api_kernel_phase1(struct vb2_context *ctx)
return rv;
}
- /* Enable phone recovery while disabling the UI; disable diagnostics. */
- 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;
- secdata_flags |= VB2_SECDATA_KERNEL_FLAG_DIAGNOSTIC_UI_DISABLED;
- vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_FLAGS, secdata_flags);
+ /* Initialize experimental feature flags while in normal RW path. */
+ if (!(ctx->flags & VB2_CONTEXT_RECOVERY_MODE)) {
+ flags = vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_FLAGS);
+ flags &= ~VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_DISABLED;
+ flags |= VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_UI_DISABLED;
+ flags |= VB2_SECDATA_KERNEL_FLAG_DIAGNOSTIC_UI_DISABLED;
+ vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_FLAGS, flags);
+ }
/* Read kernel version from secdata. */
sd->kernel_version_secdata =