From 4a8fb113aea33aee7c68690c87f47dc5613f6687 Mon Sep 17 00:00:00 2001 From: Nick Chan Date: Tue, 30 May 2023 15:40:03 +0800 Subject: [PATCH] increase size of palera1n_flags --- include/paleinfo.h | 62 +++++++++++++++++++++++----------------------- include/palerain.h | 2 +- src/main.c | 2 +- src/optparse.c | 4 ++- 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/include/paleinfo.h b/include/paleinfo.h index 9d911c6..e8a77bd 100644 --- a/include/paleinfo.h +++ b/include/paleinfo.h @@ -15,40 +15,40 @@ typedef uint64_t palerain_option_t; // unified palera1n options -#define palerain_option_rootful (1ULL << 0) /* rootful jailbreak */ -#define palerain_option_rootless (1ULL << 1) /* rootless jailbreak */ -#define palerain_option_setup_rootful (1ULL << 2) /* create fakefs */ +#define palerain_option_rootful (UINT64_C(1) << 0) /* rootful jailbreak */ +#define palerain_option_rootless (UINT64_C(1) << 1) /* rootless jailbreak */ +#define palerain_option_setup_rootful (UINT64_C(1) << 2) /* create fakefs */ /* reserved */ -#define palerain_option_setup_partial_root (1ULL << 4) /* fakefs creating should be partial */ -#define palerain_option_checkrain_is_clone (1ULL << 5) /* supplied checkra1n is checkra1n clone */ -#define palerain_option_rootless_livefs (1ULL << 6) /* mount root livefs on rootless */ -// #define palerain_option_no_ssv (1ULL << 7) /* no signed system volume */ -// #define palerain_option_force_fakefs (1ULL << 8) /* force fakefs, even without SSV */ -#define palerain_option_clean_fakefs (1ULL << 9) /* clean fakefs, but does not delete it */ -#define palerain_option_tui (1ULL << 10) /* terminal user interface */ -// #define palerain_option_gui (1ULL << 11) /* graphical user interface*/ -#define palerain_option_dfuhelper_only (1ULL << 12) /* dfuhelper only */ -#define palerain_option_pongo_exit (1ULL << 13) /* boot to clean pongo shell */ -#define palerain_option_demote (1ULL << 14) /* Demote effective production fuse status */ -#define palerain_option_pongo_full (1ULL << 15) /* Boot to pongo with default images and options */ -#define palerain_option_palerain_version (1ULL << 16) /* Print version */ -#define palerain_option_exit_recovery (1ULL << 17) /* Exit recovery mode */ -#define palerain_option_reboot_device (1ULL << 18) /* Reboot device in normal mode */ -#define palerain_option_enter_recovery (1ULL << 19) /* Enter recovery mode */ -#define palerain_option_device_info (1ULL << 20) /* Print device info */ -#define palerain_option_no_colors (1ULL << 21) /* no colors */ -#define palerain_option_bind_mount (1ULL << 22) /* bind mounts should be used (always true iOS 15+)*/ -#define palerain_option_overlay (1ULL << 23) /* there is an overlay (should always be true) */ -#define palerain_option_force_revert (1ULL << 24) /* Unjailbreak */ -#define palerain_option_safemode (1ULL << 25) /* Enter safe mode */ -#define palerain_option_verbose_boot (1ULL << 26) /* verbose boot */ +#define palerain_option_setup_partial_root (UINT64_C(1) << 4) /* fakefs creating should be partial */ +#define palerain_option_checkrain_is_clone (UINT64_C(1) << 5) /* supplied checkra1n is checkra1n clone */ +#define palerain_option_rootless_livefs (UINT64_C(1) << 6) /* mount root livefs on rootless */ +// #define palerain_option_no_ssv (UINT64_C(1) << 7) /* no signed system volume */ +// #define palerain_option_force_fakefs (UINT64_C(1) << 8) /* force fakefs, even without SSV */ +#define palerain_option_clean_fakefs (UINT64_C(1) << 9) /* clean fakefs, but does not delete it */ +#define palerain_option_tui (UINT64_C(1) << 10) /* terminal user interface */ +// #define palerain_option_gui (UINT64_C(1) << 11) /* graphical user interface*/ +#define palerain_option_dfuhelper_only (UINT64_C(1) << 12) /* dfuhelper only */ +#define palerain_option_pongo_exit (UINT64_C(1) << 13) /* boot to clean pongo shell */ +#define palerain_option_demote (UINT64_C(1) << 14) /* Demote effective production fuse status */ +#define palerain_option_pongo_full (UINT64_C(1) << 15) /* Boot to pongo with default images and options */ +#define palerain_option_palerain_version (UINT64_C(1) << 16) /* Print version */ +#define palerain_option_exit_recovery (UINT64_C(1) << 17) /* Exit recovery mode */ +#define palerain_option_reboot_device (UINT64_C(1) << 18) /* Reboot device in normal mode */ +#define palerain_option_enter_recovery (UINT64_C(1) << 19) /* Enter recovery mode */ +#define palerain_option_device_info (UINT64_C(1) << 20) /* Print device info */ +#define palerain_option_no_colors (UINT64_C(1) << 21) /* no colors */ +#define palerain_option_bind_mount (UINT64_C(1) << 22) /* bind mounts should be used (always true iOS 15+)*/ +#define palerain_option_overlay (UINT64_C(1) << 23) /* there is an overlay (should always be true) */ +#define palerain_option_force_revert (UINT64_C(1) << 24) /* Unjailbreak */ +#define palerain_option_safemode (UINT64_C(1) << 25) /* Enter safe mode */ +#define palerain_option_verbose_boot (UINT64_C(1) << 26) /* verbose boot */ -#define palerain_option_jbinit_log_to_file (1ULL << 50) /* make ramdisk log to file (jbinit2) */ -#define palerain_option_setup_rootful_forced (1ULL << 51) /* create fakefs over an existing one (jbinit2) */ +#define palerain_option_jbinit_log_to_file (UINT64_C(1) << 50) /* make ramdisk log to file (jbinit2) */ +#define palerain_option_setup_rootful_forced (UINT64_C(1) << 51) /* create fakefs over an existing one (jbinit2) */ -#define palerain_option_flower_chain (1ULL << 61) /* Flower chain */ -#define palerain_option_test1 (1ULL << 62) /* Developer test option 1 */ -#define palerain_option_test2 (1ULL << 63) /* Developer test option 2 */ +#define palerain_option_flower_chain (UINT64_C(1) << 61) /* Flower chain */ +#define palerain_option_test1 (UINT64_C(1) << 62) /* Developer test option 1 */ +#define palerain_option_test2 (UINT64_C(1) << 63) /* Developer test option 2 */ #define PALEINFO_MAGIC 'PLSH' diff --git a/include/palerain.h b/include/palerain.h index 512c497..b09824b 100644 --- a/include/palerain.h +++ b/include/palerain.h @@ -173,7 +173,7 @@ extern pthread_mutex_t spin_mutex, found_pongo_mutex, ecid_dfu_wait_mutex; extern int pongo_thr_running, dfuhelper_thr_running; extern bool device_has_booted; extern char xargs_cmd[0x270]; -extern char palerain_flags_cmd[0x20]; +extern char palerain_flags_cmd[0x30]; extern char dtpatch_cmd[0x20]; extern char rootfs_cmd[512]; extern char* ext_checkra1n; diff --git a/src/main.c b/src/main.c index 0fddd39..565d1b2 100644 --- a/src/main.c +++ b/src/main.c @@ -33,7 +33,7 @@ #define OVERRIDE_MAGIC 0xd803b376 unsigned int verbose = 0; -char xargs_cmd[0x270] = "xargs ", palerain_flags_cmd[0x20] = "deadbeef"; +char xargs_cmd[0x270] = "xargs ", palerain_flags_cmd[0x30] = "deadbeef"; char dtpatch_cmd[0x20] = "deadbeef", rootfs_cmd[512] = "deadbeef"; extern char** environ; diff --git a/src/optparse.c b/src/optparse.c index 72e9d53..aa62073 100644 --- a/src/optparse.c +++ b/src/optparse.c @@ -178,9 +178,11 @@ int optparse(int argc, char* argv[]) { snprintf(rootfs_cmd, sizeof(rootfs_cmd), "rootfs %s", optarg); snprintf(dtpatch_cmd, 0x20, "dtpatch %s", optarg); palerain_flags |= palerain_option_rootful; + palerain_flags &= ~palerain_option_rootless; break; case 'l': palerain_flags &= ~palerain_option_rootful; + palerain_flags |= palerain_option_rootless; break; case 'L': palerain_flags |= palerain_option_jbinit_log_to_file; @@ -324,7 +326,7 @@ int optparse(int argc, char* argv[]) { palerain_flags &= ~palerain_option_verbose_boot; } - snprintf(palerain_flags_cmd, 0x20, "palera1n_flags 0x%" PRIx64, palerain_flags); + snprintf(palerain_flags_cmd, 0x30, "palera1n_flags 0x%" PRIx64, palerain_flags); LOG(LOG_VERBOSE3, "palerain_flags: %s", palerain_flags_cmd); if (override_kpf.magic == OVERRIDE_MAGIC) { LOG(LOG_VERBOSE4, "kpf override length %u -> %u", override_kpf.orig_len, checkra1n_kpf_pongo_len);