mirror of
https://github.com/palera1n/palera1n.git
synced 2026-10-23 18:49:48 +02:00
compress kpf too
This commit is contained in:
1 parent
c24710eb83
commit
6605a10b2f
6 files changed
+23
-34
No files matched your search
@@ -8,8 +8,8 @@
|
||||
extern unsigned char checkra1n[];
|
||||
extern unsigned int checkra1n_len;
|
||||
|
||||
extern unsigned char checkra1n_kpf_pongo[];
|
||||
extern unsigned int checkra1n_kpf_pongo_len;
|
||||
extern unsigned char checkra1n_kpf_pongo_lzma[];
|
||||
extern unsigned int checkra1n_kpf_pongo_lzma_len;
|
||||
|
||||
extern unsigned char ramdisk_dmg_lzma[];
|
||||
extern unsigned int ramdisk_dmg_lzma_len;
|
||||
|
||||
+8
-10
@@ -24,7 +24,7 @@ CFLAGS += -DNO_RAMDISK -DRAMDISK_COMPRESSED_SIZE=\"0\"
|
||||
BUILD_OPTIONS += NO_RAMDISK
|
||||
endif
|
||||
ifneq ($(NO_KPF),1)
|
||||
OBJECTS += xxd-checkra1n-kpf-pongo.o
|
||||
OBJECTS += xxd-checkra1n-kpf-pongo.lzma.o
|
||||
else
|
||||
CFLAGS += -DNO_KPF
|
||||
BUILD_OPTIONS += NO_KPF
|
||||
@@ -122,13 +122,8 @@ endif
|
||||
xxd-%.c: %
|
||||
xxd -iC $< > $@
|
||||
|
||||
ifneq ($(NO_RAMDISK),1)
|
||||
pongo_helper.o: pongo_helper.c $(wildcard ../include/*.h) ramdisk.dmg
|
||||
$(CC) -c $(CFLAGS) -DRAMDISK_UNCOMPRESSED_SIZE="\"$$(wc -c < ramdisk.dmg | tr -d ' ')\"" $<
|
||||
else
|
||||
pongo_helper.o: pongo_helper.c $(wildcard ../include/*.h)
|
||||
$(CC) -c $(CFLAGS) $<
|
||||
endif
|
||||
pongo_helper.o: pongo_helper.c $(wildcard ../include/*.h) ramdisk.dmg checkra1n-kpf-pongo
|
||||
$(CC) -c $(CFLAGS) -DRAMDISK_UNCOMPRESSED_SIZE="\"$$(wc -c < ramdisk.dmg | tr -d ' ')\"" -DKPF_UNCOMPRESSED_SIZE="\"$$(wc -c < checkra1n-kpf-pongo | tr -d ' ')\"" $<
|
||||
|
||||
%.o: %.c $(wildcard ../include/*.h)
|
||||
$(CC) -c $(CFLAGS) $<
|
||||
@@ -147,8 +142,11 @@ libcheckra1nhelper.dylib: chkstk.S
|
||||
checkra1n-kpf-pongo:
|
||||
curl -LO https://cdn.nickchan.lol/palera1n/artifacts/kpf/iOS15/checkra1n-kpf-pongo
|
||||
|
||||
ramdisk.dmg.lzma: ramdisk.dmg
|
||||
xz --format=lzma -vf6ekT 0 ramdisk.dmg
|
||||
%.lzma: %
|
||||
xz --format=lzma -vf6ekT 0 $<
|
||||
|
||||
checkra1n-kpf-pongo.lzma: checkra1n-kpf-pongo
|
||||
xz --format=lzma -vf6ekT 0 checkra1n-kpf-pongo
|
||||
|
||||
ramdisk.dmg:
|
||||
curl -LO https://cdn.nickchan.lol/palera1n/c-rewrite/deps/ramdisk.dmg
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef NO_KPF
|
||||
unsigned char* checkra1n_kpf_pongo = NULL;
|
||||
unsigned int checkra1n_kpf_pongo_len = 0;
|
||||
unsigned char* checkra1n_kpf_pongo_lzma = NULL;
|
||||
unsigned int checkra1n_kpf_pongo_lzma_len = 0;
|
||||
#endif
|
||||
|
||||
#ifdef NO_RAMDISK
|
||||
|
||||
+1
-14
@@ -36,7 +36,7 @@ unsigned int verbose = 0;
|
||||
char xargs_cmd[0x270] = "xargs ", palerain_flags_cmd[0x30] = "deadbeef";
|
||||
extern char** environ;
|
||||
|
||||
niarelap_file_t* kpf_to_upload_1 = &checkra1n_kpf_pongo;
|
||||
niarelap_file_t* kpf_to_upload_1 = &checkra1n_kpf_pongo_lzma;
|
||||
niarelap_file_t* ramdisk_to_upload_1 = &ramdisk_dmg_lzma;
|
||||
niarelap_file_t* overlay_to_upload_1 = &binpack_dmg;
|
||||
|
||||
@@ -74,19 +74,6 @@ int build_checks(void) {
|
||||
if (boyermoore_horspool_memmem(&checkra1n[0], checkra1n_len, (const unsigned char *)"[ra1npoc15-part] thanks to", strlen("[ra1npoc15-part] thanks to")) != NULL) {
|
||||
palerain_flags |= palerain_option_checkrain_is_clone;
|
||||
}
|
||||
#endif
|
||||
#ifndef NO_KPF
|
||||
struct mach_header_64 *kpf_hdr = (struct mach_header_64 *)checkra1n_kpf_pongo;
|
||||
if (kpf_hdr->magic != MH_MAGIC_64 && kpf_hdr->magic != MH_CIGAM_64) {
|
||||
LOG(LOG_FATAL, "Broken build: Invalid kernel patchfinder: Not thin 64-bit Mach-O");
|
||||
return -1;
|
||||
} else if (kpf_hdr->filetype != MH_KEXT_BUNDLE) {
|
||||
LOG(LOG_FATAL, "Broken build: Invalid kernel patchfinder: Not a kext bundle");
|
||||
return -1;
|
||||
} else if (kpf_hdr->cputype != CPU_TYPE_ARM64) {
|
||||
LOG(LOG_FATAL, "Broken build: Invalid kernel patchfinder: CPU type is not arm64");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
+3
-3
@@ -211,7 +211,7 @@ int optparse(int argc, char* argv[]) {
|
||||
return 1;
|
||||
break;
|
||||
case 'K':
|
||||
if (override_file(&override_kpf, kpf_to_upload, &checkra1n_kpf_pongo_len, optarg))
|
||||
if (override_file(&override_kpf, kpf_to_upload, &checkra1n_kpf_pongo_lzma_len, optarg))
|
||||
return 1;
|
||||
struct mach_header_64* hdr = (struct mach_header_64*)override_kpf.ptr;
|
||||
if (hdr->magic != MH_MAGIC_64 && hdr->magic != MH_CIGAM_64) {
|
||||
@@ -327,7 +327,7 @@ int optparse(int argc, char* argv[]) {
|
||||
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);
|
||||
LOG(LOG_VERBOSE4, "kpf override length %u -> %u", override_kpf.orig_len, checkra1n_kpf_pongo_lzma_len);
|
||||
LOG(LOG_VERBOSE4, "kpf override ptr %p -> %p", override_kpf.orig_ptr, **kpf_to_upload);
|
||||
}
|
||||
if (override_ramdisk.magic == OVERRIDE_MAGIC) {
|
||||
@@ -360,7 +360,7 @@ int optparse(int argc, char* argv[]) {
|
||||
if (!((palerain_flags & palerain_option_pongo_exit) || (palerain_flags & palerain_option_pongo_exit)))
|
||||
{
|
||||
#ifdef NO_KPF
|
||||
if (checkra1n_kpf_pongo_len == 0)
|
||||
if (checkra1n_kpf_pongo_lzma_len == 0)
|
||||
{
|
||||
LOG(LOG_FATAL, "kernel patchfinder omitted in build but no override specified");
|
||||
return -1;
|
||||
|
||||
+7
-3
@@ -41,8 +41,12 @@ void *pongo_usb_callback(stuff_t *arg) {
|
||||
issue_pongo_command(handle, NULL);
|
||||
issue_pongo_command(handle, "fuse lock");
|
||||
issue_pongo_command(handle, "sep auto");
|
||||
upload_pongo_file(handle, **kpf_to_upload, checkra1n_kpf_pongo_len);
|
||||
issue_pongo_command(handle, "modload");
|
||||
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);
|
||||
} else {
|
||||
issue_pongo_command(handle, "modload");
|
||||
}
|
||||
issue_pongo_command(handle, palerain_flags_cmd);
|
||||
#ifdef NO_RAMDISK
|
||||
if (ramdisk_dmg_lzma_len != 0)
|
||||
@@ -50,7 +54,7 @@ void *pongo_usb_callback(stuff_t *arg) {
|
||||
{
|
||||
// strncat(xargs_cmd, " rootdev=md0", 0x270 - strlen(xargs_cmd) - 1);
|
||||
upload_pongo_file(handle, **ramdisk_to_upload, ramdisk_dmg_lzma_len);
|
||||
if (&(**ramdisk_to_upload) == &ramdisk_dmg_lzma)
|
||||
if ((*ramdisk_to_upload) == &ramdisk_dmg_lzma)
|
||||
issue_pongo_command(handle, "ramdisk " RAMDISK_UNCOMPRESSED_SIZE);
|
||||
else {
|
||||
issue_pongo_command(handle, "ramdisk");
|
||||
|
||||
Reference in new issue
Block a user