mirror of
https://github.com/palera1n/palera1n.git
synced 2026-10-21 09:47:01 +02:00
Compare commits
1
Commits
v2.3
...
rootful_real
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f92cc2c04d |
No files matched your search
+7
-10
@@ -96,11 +96,11 @@ Remove the jailbreak while keeping user data. Some jailbreak files may remain
|
|||||||
after running this command. Additionally, jailbreak apps will remain on the
|
after running this command. Additionally, jailbreak apps will remain on the
|
||||||
home screen on for a while even when the files are deleted as the icon cache
|
home screen on for a while even when the files are deleted as the icon cache
|
||||||
still has their icons. When used with
|
still has their icons. When used with
|
||||||
.Fl f , -fakefs ,
|
.Fl f , -rootful ,
|
||||||
this will actually boot the device in rootless mode then delete the jailbreak
|
this will actually boot the device in rootless mode then delete the jailbreak
|
||||||
files. As a result, using the loader app to install the jailbreak environment
|
files. As a result, using the loader app to install the jailbreak environment
|
||||||
is not supported when this option is used together with
|
is not supported when this option is used together with
|
||||||
.Fl f , -fakefs
|
.Fl f , -rootful
|
||||||
\[char46]
|
\[char46]
|
||||||
.It Fl B , -setup-fakefs-partial
|
.It Fl B , -setup-fakefs-partial
|
||||||
Like
|
Like
|
||||||
@@ -111,8 +111,8 @@ when setting up fakefs for rootful, as they do not have enough storage for full
|
|||||||
This option currently does not work on iOS 16.
|
This option currently does not work on iOS 16.
|
||||||
.It Fl c , -setup-fakefs
|
.It Fl c , -setup-fakefs
|
||||||
When used with
|
When used with
|
||||||
.Fl f , -fakefs ,
|
.Fl f , -rootful ,
|
||||||
creates the new APFS volume required for rootful. Will fail if one already exists.
|
creates the new APFS volume required for rootful on iOS/iPadOS. Will fail if one already exists.
|
||||||
.It Fl d , -demote
|
.It Fl d , -demote
|
||||||
Set the effective production fuse to 0, so as to enable hardware debugging features.
|
Set the effective production fuse to 0, so as to enable hardware debugging features.
|
||||||
.It Fl D , -dfuhelper
|
.It Fl D , -dfuhelper
|
||||||
@@ -128,7 +128,7 @@ and cannot be overriden. Additionally, the
|
|||||||
argument is used during fakefs setup.
|
argument is used during fakefs setup.
|
||||||
.It Fl E , -enter-recovery
|
.It Fl E , -enter-recovery
|
||||||
Exit after entering recovery mode.
|
Exit after entering recovery mode.
|
||||||
.It Fl f , -fakefs
|
.It Fl f , -rootful
|
||||||
Proceed in rootful mode. This applies to both full fakefs and partial fakefs.
|
Proceed in rootful mode. This applies to both full fakefs and partial fakefs.
|
||||||
.It Fl h , -help
|
.It Fl h , -help
|
||||||
Prints help text.
|
Prints help text.
|
||||||
@@ -149,7 +149,7 @@ iOS15 branch or your own fork of it.
|
|||||||
Proceed in rootless mode, this is the default when neither
|
Proceed in rootless mode, this is the default when neither
|
||||||
.Fl l , -rootless
|
.Fl l , -rootless
|
||||||
and
|
and
|
||||||
.Fl f , -fakefs
|
.Fl f , -rootful
|
||||||
is specified.
|
is specified.
|
||||||
.Fl L , -jbinit-log-to-file
|
.Fl L , -jbinit-log-to-file
|
||||||
Makes jbinit log to
|
Makes jbinit log to
|
||||||
@@ -259,7 +259,7 @@ before they can be ran on a device jailbroken with
|
|||||||
\[char46]
|
\[char46]
|
||||||
.Pp
|
.Pp
|
||||||
When using rootful mode, the
|
When using rootful mode, the
|
||||||
.Fl f , -fakefs
|
.Fl f , -rootful
|
||||||
flag must be specified at all times. It does not matter whether you want to create fakefs,
|
flag must be specified at all times. It does not matter whether you want to create fakefs,
|
||||||
create partial fakefs, rejailbreak or remove jailbreak.
|
create partial fakefs, rejailbreak or remove jailbreak.
|
||||||
.Sh POST INSTALLATION
|
.Sh POST INSTALLATION
|
||||||
@@ -311,9 +311,6 @@ may crash if the machine it is running on:
|
|||||||
.Pp
|
.Pp
|
||||||
The exploit may also work less reliably on some hosts, like AMD desktops, or some MediaTek devices.
|
The exploit may also work less reliably on some hosts, like AMD desktops, or some MediaTek devices.
|
||||||
.Pp
|
.Pp
|
||||||
.Fl B , -setup-fakefs-partial
|
|
||||||
does not work on iOS 16.
|
|
||||||
.Pp
|
|
||||||
The device may randomly crash and reboot due to launchd receiving signal 7 (SIGEMT).
|
The device may randomly crash and reboot due to launchd receiving signal 7 (SIGEMT).
|
||||||
.Sh NOTES
|
.Sh NOTES
|
||||||
.Nm
|
.Nm
|
||||||
|
|||||||
@@ -61,6 +61,9 @@
|
|||||||
#define palerain_option_setup_partial_root (1 << 4) /* fakefs creating should be partial */
|
#define palerain_option_setup_partial_root (1 << 4) /* fakefs creating should be partial */
|
||||||
#define palerain_option_checkrain_is_clone (1 << 5) /* supplied checkra1n is checkra1n clone */
|
#define palerain_option_checkrain_is_clone (1 << 5) /* supplied checkra1n is checkra1n clone */
|
||||||
#define palerain_option_rootless_livefs (1 << 6) /* mount root livefs on rootless */
|
#define palerain_option_rootless_livefs (1 << 6) /* mount root livefs on rootless */
|
||||||
|
#define palerain_option_no_ssv (1 << 7) /* no signed system volume */
|
||||||
|
#define palerain_option_force_fakefs (1 << 8) /* force fakefs, even without SSV */
|
||||||
|
#define palerain_option_rootless (1 << 9) /* rootless jailbreak */
|
||||||
|
|
||||||
#ifdef DEV_BUILD
|
#ifdef DEV_BUILD
|
||||||
#define palerain_option_test1 (1 << 29)
|
#define palerain_option_test1 (1 << 29)
|
||||||
|
|||||||
+8
-2
@@ -22,8 +22,14 @@
|
|||||||
#define CMD_LEN_MAX 512
|
#define CMD_LEN_MAX 512
|
||||||
#define OVERRIDE_MAGIC 0xd803b376
|
#define OVERRIDE_MAGIC 0xd803b376
|
||||||
|
|
||||||
#define palerain_option_case_version palerain_option_case(0)
|
#define palerain_option_case_version palerain_option_case(0)
|
||||||
#define palerain_option_case_force_revert palerain_option_case(1)
|
#define palerain_option_case_force_revert palerain_option_case(1)
|
||||||
|
#ifdef DEV_BUILD
|
||||||
|
#define palerain_option_case_ignore_ssv palerain_option_case(2)
|
||||||
|
#define palerain_option_case_force_fakefs palerain_option_case(3)
|
||||||
|
#define palerain_option_case_rootless_livefs palerain_option_case(4)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_LIBUSB
|
#ifdef USE_LIBUSB
|
||||||
#include <libusb-1.0/libusb.h>
|
#include <libusb-1.0/libusb.h>
|
||||||
|
|||||||
+29
-3
@@ -52,6 +52,9 @@ static struct option longopts[] = {
|
|||||||
#ifdef DEV_BUILD
|
#ifdef DEV_BUILD
|
||||||
{"test1", no_argument, NULL, '1'},
|
{"test1", no_argument, NULL, '1'},
|
||||||
{"test2", no_argument, NULL, '2'},
|
{"test2", no_argument, NULL, '2'},
|
||||||
|
{"ignore-ssv", no_argument, NULL, palerain_option_case_ignore_ssv},
|
||||||
|
{"rootless-livefs", no_argument, NULL, palerain_option_case_rootless_livefs},
|
||||||
|
{"force-fakefs", no_argument, NULL, palerain_option_case_force_fakefs},
|
||||||
#endif
|
#endif
|
||||||
#ifdef TUI
|
#ifdef TUI
|
||||||
{"tui", no_argument, NULL, 't'},
|
{"tui", no_argument, NULL, 't'},
|
||||||
@@ -79,6 +82,9 @@ static int usage(int e, char* prog_name)
|
|||||||
"\t--version\t\t\t\tPrint version\n"
|
"\t--version\t\t\t\tPrint version\n"
|
||||||
"\t--force-revert\t\t\t\tRemove jailbreak\n"
|
"\t--force-revert\t\t\t\tRemove jailbreak\n"
|
||||||
#ifdef DEV_BUILD
|
#ifdef DEV_BUILD
|
||||||
|
"\t--ignore-ssv\t\t\t\tAssume the platform has no SSV\n"
|
||||||
|
"\t--force-fakefs\t\t\t\tAllow fakefs to be created and used even on platforms without SSV\n"
|
||||||
|
"\t--rootless-livefs\t\t\t\tMount the root livefs on rootless\n"
|
||||||
"\t-1, --test1\t\t\t\tSet palerain_option_test1\n"
|
"\t-1, --test1\t\t\t\tSet palerain_option_test1\n"
|
||||||
"\t-2, --test2\t\t\t\tSet palerain_option_test2\n"
|
"\t-2, --test2\t\t\t\tSet palerain_option_test2\n"
|
||||||
#endif
|
#endif
|
||||||
@@ -91,13 +97,13 @@ static int usage(int e, char* prog_name)
|
|||||||
"\t-e, --boot-args <boot arguments>\tXNU boot arguments\n"
|
"\t-e, --boot-args <boot arguments>\tXNU boot arguments\n"
|
||||||
"\t-E, --enter-recovery\t\t\tEnter recovery mode\n"
|
"\t-E, --enter-recovery\t\t\tEnter recovery mode\n"
|
||||||
#ifdef ROOTFUL
|
#ifdef ROOTFUL
|
||||||
"\t-f, --fakefs \t\t\t\tBoots fakefs\n"
|
"\t-f, --rootful \t\t\t\tSet jailbreak mode to rootful.\n"
|
||||||
#endif
|
#endif
|
||||||
"\t-h, --help\t\t\t\tShow this help\n"
|
"\t-h, --help\t\t\t\tShow this help\n"
|
||||||
"\t-i, --override-checkra1n <file>\t\tOverride checkra1n\n"
|
"\t-i, --override-checkra1n <file>\t\tOverride checkra1n\n"
|
||||||
"\t-k, --override-pongo <file>\t\tOverride Pongo image\n"
|
"\t-k, --override-pongo <file>\t\tOverride Pongo image\n"
|
||||||
"\t-K, --override-kpf <file>\t\tOverride kernel patchfinder\n"
|
"\t-K, --override-kpf <file>\t\tOverride kernel patchfinder\n"
|
||||||
"\t-l, --rootless\t\t\t\tBoots rootless. This is the default\n"
|
"\t-l, --rootless\t\t\t\tSet jailbreak mode to rootless.\n"
|
||||||
"\t-L, --jbinit-log-to-file\t\tMake jbinit log to /cores/jbinit.log (can be read from sandbox while jailbroken)\n"
|
"\t-L, --jbinit-log-to-file\t\tMake jbinit log to /cores/jbinit.log (can be read from sandbox while jailbroken)\n"
|
||||||
"\t-n, --exit-recovery\t\t\tExit recovery mode\n"
|
"\t-n, --exit-recovery\t\t\tExit recovery mode\n"
|
||||||
"\t-I, --device-info\t\t\tPrint info about the connected device\n"
|
"\t-I, --device-info\t\t\tPrint info about the connected device\n"
|
||||||
@@ -185,7 +191,7 @@ int optparse(int argc, char* argv[]) {
|
|||||||
#endif
|
#endif
|
||||||
case 'l':
|
case 'l':
|
||||||
#ifdef ROOTFUL
|
#ifdef ROOTFUL
|
||||||
palerain_flags &= ~palerain_option_rootful;
|
palerain_flags |= palerain_option_rootless;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 'L':
|
case 'L':
|
||||||
@@ -296,6 +302,15 @@ int optparse(int argc, char* argv[]) {
|
|||||||
case '2':
|
case '2':
|
||||||
palerain_flags |= palerain_option_test2;
|
palerain_flags |= palerain_option_test2;
|
||||||
break;
|
break;
|
||||||
|
case palerain_option_case_force_fakefs:
|
||||||
|
palerain_flags |= palerain_option_case_force_fakefs;
|
||||||
|
break;
|
||||||
|
case palerain_option_case_rootless_livefs:
|
||||||
|
palerain_flags |= palerain_option_case_rootless_livefs;
|
||||||
|
break;
|
||||||
|
case palerain_option_case_ignore_ssv:
|
||||||
|
palerain_flags |= palerain_option_no_ssv;
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
case palerain_option_case_force_revert:
|
case palerain_option_case_force_revert:
|
||||||
checkrain_flags |= checkrain_option_force_revert;
|
checkrain_flags |= checkrain_option_force_revert;
|
||||||
@@ -350,6 +365,17 @@ int optparse(int argc, char* argv[]) {
|
|||||||
LOG(LOG_VERBOSE4, "overlay override ptr %p -> %p", override_overlay.orig_ptr, **overlay_to_upload);
|
LOG(LOG_VERBOSE4, "overlay override ptr %p -> %p", override_overlay.orig_ptr, **overlay_to_upload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (checkrain_option_enabled(palerain_flags, palerain_option_rootful) && checkrain_option_enabled(palerain_flags, palerain_option_rootless)) {
|
||||||
|
LOG(LOG_FATAL, "cannot have rootful and rootless at the same time");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!checkrain_option_enabled(palerain_flags, palerain_option_rootful) && !checkrain_option_enabled(palerain_flags, palerain_option_rootless)) {
|
||||||
|
LOG(LOG_FATAL, "must have either rootful or rootless, use --help for help");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!checkrain_option_enabled(palerain_flags, palerain_option_rootful)) {
|
if (!checkrain_option_enabled(palerain_flags, palerain_option_rootful)) {
|
||||||
if (checkrain_option_enabled(palerain_flags, palerain_option_setup_rootful) || checkrain_option_enabled(palerain_flags, palerain_option_setup_rootful_forced)) {
|
if (checkrain_option_enabled(palerain_flags, palerain_option_setup_rootful) || checkrain_option_enabled(palerain_flags, palerain_option_setup_rootful_forced)) {
|
||||||
LOG(LOG_FATAL, "Cannot setup rootful when rootless is requested. Use -f to enable rootful mode.");
|
LOG(LOG_FATAL, "Cannot setup rootful when rootless is requested. Use -f to enable rootful mode.");
|
||||||
|
|||||||
Reference in new issue
Block a user