Skip to content

Commit b65c669

Browse files
committed
appflags should be set at device level
1 parent 52bec2a commit b65c669

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cargo-ledger/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "cargo-ledger"
3-
version = "1.5.1"
4-
authors = ["yhql", "agrojean-ledger"]
3+
version = "1.6.0"
4+
authors = ["yhql", "agrojean-ledger", "y333"]
55
description = "Build and sideload Ledger devices apps"
66
categories = ["development-tools::cargo-plugins"]
77
repository = "https://github.com/LedgerHQ/cargo-ledger"

cargo-ledger/src/main.rs

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@ struct NanosMetadata {
3232
struct LedgerMetadata {
3333
curve: Vec<String>,
3434
path: Vec<String>,
35-
flags: String,
35+
flags: Option<String>,
3636
name: Option<String>,
3737
}
3838

3939
#[derive(Debug, Deserialize)]
4040
struct DeviceMetadata {
4141
icon: String,
42+
flags: Option<String>,
4243
}
4344

4445
#[derive(Parser, Debug)]
@@ -167,7 +168,7 @@ fn retrieve_metadata(
167168
let ledger_metadata = LedgerMetadata {
168169
curve: nanos_metadata.curve,
169170
path: nanos_metadata.path,
170-
flags: nanos_metadata.flags,
171+
flags: Some(nanos_metadata.flags),
171172
name: nanos_metadata.name,
172173
};
173174

@@ -176,6 +177,7 @@ fn retrieve_metadata(
176177
Device::Nanos => nanos_metadata.icon,
177178
_ => nanos_metadata.icon_small,
178179
},
180+
flags: None,
179181
};
180182

181183
(this_pkg.clone(), ledger_metadata, device_metadata)
@@ -291,14 +293,21 @@ fn build_app(
291293
// Retrieve real data size and SDK infos from ELF
292294
let infos = retrieve_infos(&exe_path).unwrap();
293295

294-
// Modify flags to enable BLE if targeting Nano X
295-
let flags = match device {
296-
Device::Nanos | Device::Nanosplus => metadata_ledger.flags,
297-
Device::Nanox | Device::Stax | Device::Flex => {
298-
let base = u32::from_str_radix(metadata_ledger.flags.as_str(), 16)
299-
.unwrap_or(0);
300-
format!("0x{:x}", base | 0x200)
301-
}
296+
let flags = match metadata_device.flags {
297+
Some(flags) => flags,
298+
None => match metadata_ledger.flags {
299+
Some(flags) => match device {
300+
// Modify flags to enable BLE if targeting Nano X
301+
Device::Nanos | Device::Nanosplus => flags,
302+
Device::Nanox | Device::Stax | Device::Flex => {
303+
let base =
304+
u32::from_str_radix(flags.trim_start_matches("0x"), 16)
305+
.unwrap_or(0);
306+
format!("0x{:x}", base | 0x200)
307+
}
308+
},
309+
None => String::from("0x00"),
310+
},
302311
};
303312

304313
// Target ID according to target, in case it

0 commit comments

Comments
 (0)