From 25ff6e366f5e724fdabd3aa3c3bbf4118b99c110 Mon Sep 17 00:00:00 2001 From: Arthur Bonnaudet Date: Mon, 24 Jun 2024 10:30:34 +0200 Subject: [PATCH] Support API_LEVEL_21 for Stax --- speculos/cxlib/stax-api-level-cx-21.elf | Bin 0 -> 65360 bytes speculos/fonts/stax-fonts-21.bin | 1 + src/launcher.c | 2 +- src/sdk.h | 1 + 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 speculos/cxlib/stax-api-level-cx-21.elf create mode 120000 speculos/fonts/stax-fonts-21.bin diff --git a/speculos/cxlib/stax-api-level-cx-21.elf b/speculos/cxlib/stax-api-level-cx-21.elf new file mode 100644 index 0000000000000000000000000000000000000000..c5b562f8d01f6c2e43ec22ba8a6127607c67c59d GIT binary patch literal 65360 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 literal 0 HcmV?d00001 diff --git a/speculos/fonts/stax-fonts-21.bin b/speculos/fonts/stax-fonts-21.bin new file mode 120000 index 00000000..1ff63ee0 --- /dev/null +++ b/speculos/fonts/stax-fonts-21.bin @@ -0,0 +1 @@ +stax-fonts-20.bin \ No newline at end of file diff --git a/src/launcher.c b/src/launcher.c index 4ba4a05e..b036b5aa 100644 --- a/src/launcher.c +++ b/src/launcher.c @@ -818,7 +818,7 @@ int main(int argc, char *argv[]) sdk_version != SDK_API_LEVEL_10 && sdk_version != SDK_API_LEVEL_11 && sdk_version != SDK_API_LEVEL_12 && sdk_version != SDK_API_LEVEL_13 && sdk_version != SDK_API_LEVEL_14 && sdk_version != SDK_API_LEVEL_15 && - sdk_version != SDK_API_LEVEL_20) { + sdk_version != SDK_API_LEVEL_20 && sdk_version != SDK_API_LEVEL_21) { errx(1, "invalid SDK version for the Ledger Stax"); } break; diff --git a/src/sdk.h b/src/sdk.h index cd3f70b2..21474684 100644 --- a/src/sdk.h +++ b/src/sdk.h @@ -35,6 +35,7 @@ typedef enum { SDK_API_LEVEL_18, SDK_API_LEVEL_19, SDK_API_LEVEL_20, + SDK_API_LEVEL_21, SDK_COUNT } sdk_version_t;