compress kpf too

This commit is contained in:
Nick Chan committed 2023-11-02 15:17:09 +08:00
1 parent c24710eb83
commit 6605a10b2f
6 files changed
+23 -34

No files matched your search

+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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");