From 46b3fde00c3c1d895e6e289e236e92bb6c50e714 Mon Sep 17 00:00:00 2001 From: Benjamin BOURGEAIS Date: Thu, 6 May 2021 17:23:07 +0200 Subject: Add an embedded empty local policy file This file will be needed later by the stage 1 boot process. --- src/idevicerestore.c | 7 +++++++ src/idevicerestore.h | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/src/idevicerestore.c b/src/idevicerestore.c index 7653125..0ec3af4 100644 --- a/src/idevicerestore.c +++ b/src/idevicerestore.c @@ -137,6 +137,13 @@ static void usage(int argc, char* argv[], int err) } #endif +const uint8_t lpol_file[22] = { + 0x30, 0x14, 0x16, 0x04, 0x49, 0x4d, 0x34, 0x50, + 0x16, 0x04, 0x6c, 0x70, 0x6f, 0x6c, 0x16, 0x03, + 0x31, 0x2e, 0x30, 0x04, 0x01, 0x00 +}; +const uint32_t lpol_file_length = 22; + static int idevicerestore_keep_pers = 0; static int load_version_data(struct idevicerestore_client_t* client) diff --git a/src/idevicerestore.h b/src/idevicerestore.h index d8e3440..65776c3 100644 --- a/src/idevicerestore.h +++ b/src/idevicerestore.h @@ -59,6 +59,11 @@ enum { RESTORE_NUM_STEPS }; +// lpol_file has been extracted from the IMG4 dump of the ac2 usb protocol. It is not present in the .ipsw and +// represents and empty "local policy". See https://support.apple.com/guide/security/contents-a-localpolicy-file-mac-apple-silicon-secc745a0845/web. +extern const uint8_t lpol_file[22]; +extern const uint32_t lpol_file_length; + typedef void (*idevicerestore_progress_cb_t)(int step, double step_progress, void* userdata); struct idevicerestore_client_t* idevicerestore_client_new(void); -- cgit v1.1-32-gdbae