diff --git a/epicardium/meson.build b/epicardium/meson.build index ea28d3664563816c5fa8a4294e9fb3ba9308622c..1aa5556010941d2267f8b10aafcaf9ec7683c8a2 100644 --- a/epicardium/meson.build +++ b/epicardium/meson.build @@ -70,6 +70,14 @@ subdir('ble/') subdir('l0der/') +epicardium_cargs = [] +if get_option('jailbreak_card10') + epicardium_cargs += [ + '-DJAILBREAK_CARD10=1', + ] +endif + + elf = executable( name + '.elf', 'cdcacm.c', @@ -88,6 +96,7 @@ elf = executable( '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map', '-Wl,--defsym=_write=_write_epicardium', ], + c_args: epicardium_cargs, ) epicardium_bin = custom_target( diff --git a/epicardium/modules/lifecycle.c b/epicardium/modules/lifecycle.c index c73084ca95406d783c33d588a92ecfd514e19a37..375cfef61dd9972fbb418f72659a1e30e69ef615 100644 --- a/epicardium/modules/lifecycle.c +++ b/epicardium/modules/lifecycle.c @@ -88,7 +88,9 @@ static int load_stat(char *name) */ static int do_load(struct load_info *info) { +#if defined(JAILBREAK_CARD10) && (JAILBREAK_CARD10 == 1) struct l0dable_info l0dable; +#endif int res; if (*info->name == '\0') { diff --git a/meson_options.txt b/meson_options.txt index 0bff7f441774f3f6eb695dd2f29fc308af3a0d44..a626628ffdca083d0b52fc5868b4180964595ed7 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -21,3 +21,11 @@ option( description: 'Whether to enable WSF TRACE prints', ) + +option( + 'jailbreak_card10', + type: 'boolean', + value: false, + + description: 'Enable execution of .elf l0dables', +)