merge tui! (#409)

* Merge main into tui (#406)

* plooshInit support

* Add override libcheckra1nhelper option

* update credits.c

* Update build.yml

---------

Co-authored-by: Nick Chan <[email protected]>
Co-authored-by: meow <[email protected]>

* Add TUI

* ISO C forbids an empty translation unit

* Default to TUI

* thanks iPadOS

* I forgot

* make random quotes more related (#408)

Definitely a good concept of the TUI (and one that I am a fan of), but (as has been somewhat brought up by others) we should probably make them more related to checkm8, checkra1n, or palera1n (since those are the types of things that this tool is based off of)

* "Connect your iPhone, iPad, iPod Touch, or Apple TV"

* Add Linux TTY support

* DIsable TUI for certain options

* Fix boot-args overflow

* auto reposition cursor

* Moved droplet, no one could behave

* Move the droplet back because it actually made it worse

---------

Co-authored-by: Nick Chan <[email protected]>
Co-authored-by: meow <[email protected]>
Co-authored-by: Michael <[email protected]>
Co-authored-by: Samara <[email protected]>
This commit is contained in:
authored and GitHub committed 2024-03-27 22:50:45 -07:00
1 parent 5dd2980e96
commit e332a00cf9
19 files changed
+2314 -182

No files matched your search

+48
View File
@@ -11,6 +11,9 @@
#include <sys/stat.h> // fstst
#include <palerain.h>
#ifdef TUI
#include <tui.h>
#endif
#include <ANSI-color-codes.h>
bool device_has_booted = 0;
@@ -39,9 +42,23 @@ void *pongo_usb_callback(stuff_t *arg) {
}
LOG(LOG_INFO, "Found PongoOS USB Device");
usb_device_handle_t handle = arg->handle;
#ifdef TUI
if (tui_is_jailbreaking) {
tui_jailbreak_stage = 4;
tui_jailbreak_status = "Sending PongoOS commands";
tui_jailbreak_status_changed();
}
#endif
issue_pongo_command(handle, NULL);
issue_pongo_command(handle, "fuse lock");
issue_pongo_command(handle, "sep auto");
#ifdef TUI
if (tui_is_jailbreaking) {
tui_jailbreak_stage = 5;
tui_jailbreak_status = "Sending KPF";
tui_jailbreak_status_changed();
}
#endif
upload_pongo_file(handle, **kpf_to_upload, checkra1n_kpf_pongo_lzma_len);
if (*kpf_to_upload == &checkra1n_kpf_pongo_lzma) {
issue_pongo_command(handle, "modload " KPF_UNCOMPRESSED_SIZE);
@@ -54,6 +71,13 @@ void *pongo_usb_callback(stuff_t *arg) {
#endif
{
if (force_usbdevice) strncat(xargs_cmd, " AppleEmbeddedUSBArbitrator-force-usbdevice=1", 0x270 - strlen(xargs_cmd) - 1);
#ifdef TUI
if (tui_is_jailbreaking) {
tui_jailbreak_stage = 6;
tui_jailbreak_status = "Sending ramdisk";
tui_jailbreak_status_changed();
}
#endif
upload_pongo_file(handle, **ramdisk_to_upload, ramdisk_dmg_lzma_len);
if ((*ramdisk_to_upload) == &ramdisk_dmg_lzma)
issue_pongo_command(handle, "ramdisk " RAMDISK_UNCOMPRESSED_SIZE);
@@ -65,11 +89,26 @@ void *pongo_usb_callback(stuff_t *arg) {
if (binpack_dmg_len != 0)
#endif
{
#ifdef TUI
if (tui_is_jailbreaking) {
tui_jailbreak_stage = 7;
tui_jailbreak_status = "Sending binpack";
tui_jailbreak_status_changed();
}
#endif
upload_pongo_file(handle, **overlay_to_upload, binpack_dmg_len);
issue_pongo_command(handle, "overlay");
}
issue_pongo_command(handle, xargs_cmd);
if ((palerain_flags & palerain_option_pongo_full)) goto done;
#ifdef TUI
if (tui_is_jailbreaking) {
tui_jailbreak_stage = 8;
tui_jailbreak_status = "Booting";
tui_jailbreak_status_changed();
}
#endif
issue_pongo_command(handle, "bootx");
LOG(LOG_INFO, "Booting Kernel...");
if ((palerain_flags & palerain_option_setup_partial_root)) {
@@ -85,6 +124,15 @@ void *pongo_usb_callback(stuff_t *arg) {
}
done:
device_has_booted = true;
#ifdef TUI
if (tui_is_jailbreaking) {
tui_jailbreak_stage = 9;
tui_jailbreak_status = "All Done";
tui_is_jailbreaking = false;
tui_jailbreak_status_changed();
}
#endif
#ifdef USE_LIBUSB
libusb_unref_device(arg->dev);
#endif