What changed, and why it matters
This commit updates the embedded QA (quality assurance) bootloader binaries and their recorded cryptographic hashes for five Trezor hardware wallet models. QA bootloaders are internal test artifacts, not the production bootloaders shipped to end users. There is no indication in the commit that this fixes or introduces a security vulnerability.
No security action required. Treat as routine QA/test artifact maintenance. If reviewing for supply-chain assurance, verify the new QA bootloader binaries are signed by Trezor's QA signing key and match the published hashes, but this is outside the scope of the visible diff.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The change replaces *_qa.bin bootloader files for T2B1, T2T1, T3B1, T3T1, and T3W1 and updates the corresponding SHA-256 hashes in bootloader_hashes.h. The version comments change from older QA versions (e.g., 2.1.4.0, 2.1.7.0, 2.1.6.0, 2.1.15.0) to 2.1.16.0. Production bootloader hashes (BOOTLOADER_*_00/BOOTLOADER_*_FF) remain untouched. The diff is a binary replacement plus hash metadata update; no source code logic is modified.
Changed components
core/embed/models/T2B1/bootloaders/bootloader_T2B1_qa.bincore/embed/models/T2B1/bootloaders/bootloader_hashes.hcore/embed/models/T2T1/bootloaders/bootloader_T2T1_qa.bincore/embed/models/T2T1/bootloaders/bootloader_hashes.hcore/embed/models/T3B1/bootloaders/bootloader_T3B1_qa.bincore/embed/models/T3B1/bootloaders/bootloader_hashes.hcore/embed/models/T3T1/bootloaders/bootloader_T3T1_qa.bincore/embed/models/T3T1/bootloaders/bootloader_hashes.hcore/embed/models/T3W1/bootloaders/bootloader_T3W1_qa.bincore/embed/models/T3W1/bootloaders/bootloader_hashes.hInspect captured patch +15 / −15
diff --git a/core/embed/models/T2B1/bootloaders/bootloader_T2B1_qa.bin b/core/embed/models/T2B1/bootloaders/bootloader_T2B1_qa.bin
index 7ad8304c..cb469e28 100644
Binary files a/core/embed/models/T2B1/bootloaders/bootloader_T2B1_qa.bin and b/core/embed/models/T2B1/bootloaders/bootloader_T2B1_qa.bin differ
diff --git a/core/embed/models/T2B1/bootloaders/bootloader_hashes.h b/core/embed/models/T2B1/bootloaders/bootloader_hashes.h
index cb100b0f..701b3528 100644
--- a/core/embed/models/T2B1/bootloaders/bootloader_hashes.h
+++ b/core/embed/models/T2B1/bootloaders/bootloader_hashes.h
@@ -8,9 +8,9 @@
#define BOOTLOADER_T2B1_00 {0x65, 0x0a, 0x6a, 0x9a, 0x76, 0xfb, 0x31, 0xe3, 0x9d, 0x1f, 0x13, 0x95, 0x3a, 0xb0, 0x7d, 0xaf, 0xc5, 0x1b, 0x6d, 0x8d, 0x17, 0x96, 0xff, 0xd8, 0xd9, 0x7d, 0xab, 0xd9, 0xfb, 0xaf, 0x07, 0x85}
#define BOOTLOADER_T2B1_FF {0x84, 0xa8, 0x21, 0x2d, 0x09, 0x8b, 0x86, 0x0b, 0xb3, 0xa7, 0xd6, 0xc6, 0x49, 0x19, 0x6a, 0x95, 0x8e, 0xf2, 0x2a, 0x88, 0xfb, 0x28, 0x8d, 0xb8, 0x60, 0x97, 0xa0, 0x7e, 0x93, 0x13, 0x77, 0x0f}
-// bootloader_T2B1_qa.bin version 2.1.4.0
-#define BOOTLOADER_T2B1_QA_00 {0x96, 0xe7, 0xfa, 0x21, 0x66, 0x81, 0x6b, 0x27, 0xf6, 0x27, 0xc1, 0x50, 0xaa, 0xf8, 0xbf, 0xac, 0xf5, 0x0d, 0x37, 0xea, 0x10, 0xa9, 0xa2, 0x0c, 0x1a, 0x58, 0xa7, 0x42, 0x23, 0x80, 0xbe, 0x40}
-#define BOOTLOADER_T2B1_QA_FF {0x7c, 0xca, 0xde, 0xf6, 0x8f, 0xf8, 0x9a, 0x08, 0x35, 0x0a, 0x82, 0xe4, 0xb5, 0x76, 0x37, 0x36, 0x51, 0x33, 0x40, 0xd9, 0x66, 0x84, 0xfb, 0x1b, 0x4f, 0x89, 0x34, 0xcd, 0x6f, 0x4c, 0x03, 0x1a}
+// bootloader_T2B1_qa.bin version 2.1.16.0
+#define BOOTLOADER_T2B1_QA_00 {0xaf, 0xef, 0x75, 0x0b, 0xf3, 0xd1, 0x62, 0x14, 0x4b, 0x19, 0x61, 0x37, 0x33, 0x00, 0x66, 0x3f, 0xbb, 0x4b, 0x96, 0xb7, 0xc4, 0x16, 0x26, 0xdd, 0x9c, 0x5a, 0x43, 0x21, 0x27, 0x32, 0xba, 0x86}
+#define BOOTLOADER_T2B1_QA_FF {0xb9, 0x31, 0x08, 0x9a, 0x7a, 0xa2, 0xce, 0x0a, 0xf7, 0x83, 0x2f, 0x61, 0xad, 0xd1, 0xc7, 0x96, 0xc7, 0x39, 0xd0, 0x47, 0xae, 0xf9, 0xfb, 0x85, 0x14, 0x78, 0x2e, 0xf6, 0xcb, 0x2c, 0xd0, 0xfe}
// clang-format on
diff --git a/core/embed/models/T2T1/bootloaders/bootloader_T2T1_qa.bin b/core/embed/models/T2T1/bootloaders/bootloader_T2T1_qa.bin
index 1da30139..4d44e1ed 100644
Binary files a/core/embed/models/T2T1/bootloaders/bootloader_T2T1_qa.bin and b/core/embed/models/T2T1/bootloaders/bootloader_T2T1_qa.bin differ
diff --git a/core/embed/models/T2T1/bootloaders/bootloader_hashes.h b/core/embed/models/T2T1/bootloaders/bootloader_hashes.h
index 3d53a7cf..37fbe6bd 100644
--- a/core/embed/models/T2T1/bootloaders/bootloader_hashes.h
+++ b/core/embed/models/T2T1/bootloaders/bootloader_hashes.h
@@ -8,9 +8,9 @@
#define BOOTLOADER_T2T1_00 {0xbc, 0x49, 0x36, 0x19, 0x70, 0xd4, 0x83, 0xf3, 0x20, 0x54, 0x24, 0x5a, 0x4b, 0xae, 0xa1, 0x3b, 0x9c, 0xd9, 0xa8, 0xf0, 0x3e, 0x56, 0xb6, 0x8d, 0xa0, 0x17, 0xe4, 0x4c, 0x4d, 0xd1, 0xa0, 0x0e}
#define BOOTLOADER_T2T1_FF {0x8d, 0xc0, 0x1a, 0xb5, 0xcd, 0xf6, 0xcd, 0x5b, 0x09, 0x11, 0x5f, 0x89, 0xeb, 0x8a, 0xeb, 0xb1, 0xfa, 0xed, 0x83, 0xec, 0x6e, 0x2f, 0xda, 0x64, 0x3e, 0xbe, 0xce, 0xf7, 0xd1, 0x05, 0x0a, 0x4f}
-// bootloader_T2T1_qa.bin version 2.1.4.0
-#define BOOTLOADER_T2T1_QA_00 {0xff, 0xda, 0xfd, 0x0f, 0xe1, 0x89, 0x56, 0xb6, 0x0b, 0x6e, 0x2d, 0x67, 0xf1, 0x63, 0x8c, 0x4c, 0x4d, 0x6f, 0x97, 0xe7, 0xe0, 0xa4, 0xce, 0x76, 0xc9, 0x49, 0x0a, 0x34, 0x3e, 0xd8, 0xcb, 0x1f}
-#define BOOTLOADER_T2T1_QA_FF {0xbe, 0x31, 0x71, 0x7b, 0x8b, 0x31, 0x12, 0xbd, 0x58, 0xc4, 0x81, 0x09, 0x8d, 0xd9, 0x07, 0x51, 0x5c, 0xb6, 0x3d, 0x07, 0x82, 0x00, 0x30, 0x4a, 0xeb, 0x26, 0xf0, 0xe4, 0x00, 0xd4, 0xf2, 0x9c}
+// bootloader_T2T1_qa.bin version 2.1.16.0
+#define BOOTLOADER_T2T1_QA_00 {0x10, 0xd4, 0xae, 0x8e, 0x74, 0xaa, 0xdb, 0x62, 0xa0, 0xf0, 0xc1, 0xca, 0x84, 0x49, 0x21, 0xf8, 0xe8, 0x8f, 0x9f, 0xb0, 0xe6, 0xa5, 0x9c, 0x2e, 0x5a, 0xc3, 0xb6, 0x6a, 0xd1, 0xd7, 0x9f, 0x3f}
+#define BOOTLOADER_T2T1_QA_FF {0x32, 0x1c, 0xe0, 0xee, 0xdc, 0xb5, 0xbd, 0x1e, 0x41, 0x73, 0x9c, 0x72, 0x24, 0x3e, 0xc0, 0x49, 0xdd, 0x75, 0x22, 0xef, 0x46, 0x19, 0x61, 0x9f, 0x38, 0x5f, 0xf7, 0x20, 0x30, 0x53, 0xd3, 0xc9}
// clang-format on
diff --git a/core/embed/models/T3B1/bootloaders/bootloader_T3B1_qa.bin b/core/embed/models/T3B1/bootloaders/bootloader_T3B1_qa.bin
index dfd4cce1..0f6ae9fa 100755
Binary files a/core/embed/models/T3B1/bootloaders/bootloader_T3B1_qa.bin and b/core/embed/models/T3B1/bootloaders/bootloader_T3B1_qa.bin differ
diff --git a/core/embed/models/T3B1/bootloaders/bootloader_hashes.h b/core/embed/models/T3B1/bootloaders/bootloader_hashes.h
index c4656804..7017e93f 100644
--- a/core/embed/models/T3B1/bootloaders/bootloader_hashes.h
+++ b/core/embed/models/T3B1/bootloaders/bootloader_hashes.h
@@ -8,9 +8,9 @@
#define BOOTLOADER_T3B1_00 {0x64, 0x7c, 0xac, 0x56, 0x1d, 0x10, 0xcb, 0x55, 0x78, 0x01, 0xce, 0x54, 0x85, 0xa0, 0xe7, 0x39, 0x08, 0x6f, 0xb9, 0xc2, 0x87, 0x35, 0x8b, 0x75, 0xa4, 0x7d, 0xdd, 0x7a, 0xd5, 0x10, 0xa7, 0x1f}
#define BOOTLOADER_T3B1_FF {0x49, 0xdd, 0x94, 0x60, 0xb7, 0xe9, 0x57, 0x6e, 0x7d, 0xb6, 0xd7, 0x63, 0x47, 0x04, 0xb4, 0x58, 0x3d, 0x47, 0x45, 0x57, 0xf3, 0x35, 0x69, 0x05, 0x8b, 0x84, 0x24, 0xdc, 0x81, 0x88, 0x80, 0x98}
-// bootloader_T3B1_qa.bin version 2.1.7.0
-#define BOOTLOADER_T3B1_QA_00 {0x2e, 0x90, 0x8a, 0x99, 0x25, 0x93, 0xcd, 0x9c, 0xf1, 0x23, 0x1e, 0x4e, 0x41, 0xfc, 0xc9, 0xf1, 0x4b, 0x06, 0x69, 0x57, 0x6e, 0x64, 0x84, 0x1c, 0xb1, 0xd9, 0x89, 0x0c, 0xa5, 0xb4, 0x38, 0xeb}
-#define BOOTLOADER_T3B1_QA_FF {0x63, 0xd2, 0x2d, 0x7b, 0xe8, 0x17, 0x2b, 0x97, 0x64, 0x06, 0x9b, 0x60, 0xa0, 0x3d, 0xfc, 0xd6, 0xea, 0x8a, 0x8d, 0xaf, 0x12, 0x25, 0x58, 0x93, 0x9e, 0x40, 0x16, 0xf2, 0x25, 0x30, 0x30, 0x6f}
+// bootloader_T3B1_qa.bin version 2.1.16.0
+#define BOOTLOADER_T3B1_QA_00 {0xf5, 0xf1, 0x53, 0x44, 0x53, 0x3e, 0xcb, 0x95, 0xcd, 0x46, 0x67, 0x4c, 0x2c, 0x5b, 0x8f, 0x8a, 0xa7, 0xee, 0x31, 0x1f, 0xb9, 0x04, 0x62, 0xa7, 0x1e, 0x8a, 0xed, 0x16, 0xf1, 0xc7, 0x65, 0x1f}
+#define BOOTLOADER_T3B1_QA_FF {0xad, 0x60, 0xb9, 0x64, 0xfc, 0xc6, 0x45, 0x36, 0xd2, 0x51, 0xa2, 0xc8, 0x5b, 0xcb, 0xbf, 0x6a, 0x89, 0x1d, 0x78, 0x6b, 0xbf, 0xe5, 0xb5, 0x7a, 0xab, 0x52, 0x2a, 0x5d, 0xec, 0x07, 0xce, 0x68}
// clang-format on
diff --git a/core/embed/models/T3T1/bootloaders/bootloader_T3T1_qa.bin b/core/embed/models/T3T1/bootloaders/bootloader_T3T1_qa.bin
index a40c6349..9ea6ff76 100755
Binary files a/core/embed/models/T3T1/bootloaders/bootloader_T3T1_qa.bin and b/core/embed/models/T3T1/bootloaders/bootloader_T3T1_qa.bin differ
diff --git a/core/embed/models/T3T1/bootloaders/bootloader_hashes.h b/core/embed/models/T3T1/bootloaders/bootloader_hashes.h
index ce95bb12..fc652969 100644
--- a/core/embed/models/T3T1/bootloaders/bootloader_hashes.h
+++ b/core/embed/models/T3T1/bootloaders/bootloader_hashes.h
@@ -8,9 +8,9 @@
#define BOOTLOADER_T3T1_00 {0x13, 0x58, 0x4c, 0xe1, 0xde, 0xcf, 0x52, 0x3e, 0x30, 0xb6, 0xbb, 0xd6, 0x96, 0x01, 0xfd, 0x15, 0xd9, 0x0f, 0x61, 0xb2, 0x24, 0x9f, 0xde, 0x57, 0x6a, 0x3e, 0x47, 0xd2, 0xde, 0x10, 0x66, 0xfc}
#define BOOTLOADER_T3T1_FF {0x1a, 0x7b, 0xbe, 0x05, 0xe6, 0x00, 0x8f, 0xef, 0x7a, 0x3b, 0x8b, 0x53, 0xbf, 0xec, 0x7d, 0xb3, 0xb9, 0x78, 0x60, 0x47, 0x77, 0xd1, 0x1a, 0x48, 0x01, 0x6d, 0x00, 0x9c, 0xae, 0x06, 0x88, 0xe6}
-// bootloader_T3T1_qa.bin version 2.1.6.0
-#define BOOTLOADER_T3T1_QA_00 {0x53, 0x5f, 0xf9, 0xa8, 0x21, 0x7d, 0xb5, 0x39, 0xe4, 0xfa, 0xf8, 0x3d, 0x0d, 0xe6, 0xf3, 0x65, 0x21, 0x30, 0x46, 0x9e, 0x40, 0x85, 0xd4, 0xd8, 0x49, 0x00, 0xb0, 0xb5, 0x58, 0x39, 0xe3, 0xd4}
-#define BOOTLOADER_T3T1_QA_FF {0x1e, 0x03, 0x50, 0x25, 0xa1, 0xc7, 0x20, 0xe2, 0x04, 0x62, 0x24, 0xa1, 0x31, 0xc2, 0xf5, 0x7b, 0x35, 0xe9, 0x22, 0x42, 0x36, 0x2d, 0xab, 0xcc, 0xb6, 0x3b, 0xfe, 0x88, 0x53, 0x2f, 0x49, 0xa7}
+// bootloader_T3T1_qa.bin version 2.1.16.0
+#define BOOTLOADER_T3T1_QA_00 {0x6d, 0xc0, 0x3b, 0x05, 0x32, 0xfc, 0x09, 0xb5, 0x5f, 0x21, 0x66, 0x0e, 0xa2, 0x8b, 0x42, 0x56, 0x5b, 0x1b, 0x36, 0x5b, 0x8a, 0x6c, 0xa8, 0xaa, 0xd0, 0xac, 0xf2, 0x78, 0xd0, 0xa8, 0x62, 0xe3}
+#define BOOTLOADER_T3T1_QA_FF {0x86, 0xb5, 0x3a, 0xa9, 0x51, 0x11, 0x9e, 0x8d, 0x9f, 0xcf, 0xbb, 0x25, 0xc6, 0x66, 0xc7, 0xfb, 0x85, 0x2c, 0x2d, 0x7b, 0xb9, 0x4d, 0xd9, 0xa6, 0x4e, 0x98, 0x5e, 0x5a, 0x48, 0x08, 0x6e, 0xaa}
// clang-format on
diff --git a/core/embed/models/T3W1/bootloaders/bootloader_T3W1_qa.bin b/core/embed/models/T3W1/bootloaders/bootloader_T3W1_qa.bin
index f2aa8506..014a9416 100755
Binary files a/core/embed/models/T3W1/bootloaders/bootloader_T3W1_qa.bin and b/core/embed/models/T3W1/bootloaders/bootloader_T3W1_qa.bin differ
diff --git a/core/embed/models/T3W1/bootloaders/bootloader_hashes.h b/core/embed/models/T3W1/bootloaders/bootloader_hashes.h
index 515fb84b..b1704975 100644
--- a/core/embed/models/T3W1/bootloaders/bootloader_hashes.h
+++ b/core/embed/models/T3W1/bootloaders/bootloader_hashes.h
@@ -8,9 +8,9 @@
#define BOOTLOADER_T3W1_00 {0xa1, 0x9a, 0x99, 0xec, 0x7e, 0x3b, 0xf2, 0x5b, 0x05, 0x46, 0xaf, 0x32, 0xf3, 0x86, 0xa1, 0x96, 0x03, 0x83, 0xed, 0x8b, 0x83, 0x05, 0x4c, 0xdd, 0x67, 0x47, 0x7c, 0x87, 0x51, 0x45, 0x46, 0xb0}
#define BOOTLOADER_T3W1_FF {0xa1, 0x9a, 0x99, 0xec, 0x7e, 0x3b, 0xf2, 0x5b, 0x05, 0x46, 0xaf, 0x32, 0xf3, 0x86, 0xa1, 0x96, 0x03, 0x83, 0xed, 0x8b, 0x83, 0x05, 0x4c, 0xdd, 0x67, 0x47, 0x7c, 0x87, 0x51, 0x45, 0x46, 0xb0}
-// bootloader_T3W1_qa.bin version 2.1.15.0
-#define BOOTLOADER_T3W1_QA_00 {0x13, 0x24, 0x8a, 0xd9, 0xb1, 0xbd, 0x94, 0xe9, 0x06, 0x4c, 0x83, 0x3a, 0xea, 0xec, 0x19, 0xf7, 0x7d, 0x6a, 0x39, 0x7d, 0x44, 0xf4, 0x1b, 0x2f, 0x69, 0x5a, 0x8c, 0xf0, 0xad, 0x2c, 0x1d, 0x22}
-#define BOOTLOADER_T3W1_QA_FF {0x13, 0x24, 0x8a, 0xd9, 0xb1, 0xbd, 0x94, 0xe9, 0x06, 0x4c, 0x83, 0x3a, 0xea, 0xec, 0x19, 0xf7, 0x7d, 0x6a, 0x39, 0x7d, 0x44, 0xf4, 0x1b, 0x2f, 0x69, 0x5a, 0x8c, 0xf0, 0xad, 0x2c, 0x1d, 0x22}
+// bootloader_T3W1_qa.bin version 2.1.16.0
+#define BOOTLOADER_T3W1_QA_00 {0x5a, 0x70, 0x1a, 0x07, 0xa4, 0xba, 0x79, 0x93, 0x31, 0xc8, 0xf9, 0x98, 0xdb, 0xb9, 0x67, 0xd4, 0x34, 0x63, 0x09, 0x13, 0x1b, 0x34, 0x43, 0xbc, 0x4f, 0xe7, 0x86, 0x7d, 0xdb, 0xfd, 0x78, 0x5e}
+#define BOOTLOADER_T3W1_QA_FF {0x5a, 0x70, 0x1a, 0x07, 0xa4, 0xba, 0x79, 0x93, 0x31, 0xc8, 0xf9, 0x98, 0xdb, 0xb9, 0x67, 0xd4, 0x34, 0x63, 0x09, 0x13, 0x1b, 0x34, 0x43, 0xbc, 0x4f, 0xe7, 0x86, 0x7d, 0xdb, 0xfd, 0x78, 0x5e}
// clang-format on
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.