@@ -32,13 +32,14 @@ struct NanosMetadata {
32
32
struct LedgerMetadata {
33
33
curve : Vec < String > ,
34
34
path : Vec < String > ,
35
- flags : String ,
35
+ flags : Option < String > ,
36
36
name : Option < String > ,
37
37
}
38
38
39
39
#[ derive( Debug , Deserialize ) ]
40
40
struct DeviceMetadata {
41
41
icon : String ,
42
+ flags : Option < String > ,
42
43
}
43
44
44
45
#[ derive( Parser , Debug ) ]
@@ -167,7 +168,7 @@ fn retrieve_metadata(
167
168
let ledger_metadata = LedgerMetadata {
168
169
curve : nanos_metadata. curve ,
169
170
path : nanos_metadata. path ,
170
- flags : nanos_metadata. flags ,
171
+ flags : Some ( nanos_metadata. flags ) ,
171
172
name : nanos_metadata. name ,
172
173
} ;
173
174
@@ -176,6 +177,7 @@ fn retrieve_metadata(
176
177
Device :: Nanos => nanos_metadata. icon ,
177
178
_ => nanos_metadata. icon_small ,
178
179
} ,
180
+ flags : None ,
179
181
} ;
180
182
181
183
( this_pkg. clone ( ) , ledger_metadata, device_metadata)
@@ -291,14 +293,21 @@ fn build_app(
291
293
// Retrieve real data size and SDK infos from ELF
292
294
let infos = retrieve_infos ( & exe_path) . unwrap ( ) ;
293
295
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
+ } ,
302
311
} ;
303
312
304
313
// Target ID according to target, in case it
0 commit comments