| Age | Commit message (Collapse) | Author | Files | Lines |
|
During Port DFU-to-DFU re-enumeration, macOS deviceinterfaced daemon can
acquire the USB interface first, making idevicerestore time out waiting
for DFU reconnection.
Add experimental flag: --exclusive-usb that keeps deviceinterfaced from
claiming the USB device for the duration of the restore, by booting it
out or repeatedly terminating it when bootout is denied (SIP on), then
reloading and starting it again on exit.
idevicerestore itself does not need to run as root for this. Only the
launchctl subcommands that manage the system-domain deviceinterfaced
daemon (bootout, bootstrap, kickstart, kill) are elevated individually
via sudo, which may prompt for a password on the controlling terminal.
Read-only queries (print) are run unprivileged. Document how to allow
these specific commands via a scoped sudoers(5) NOPASSWD rule for
unattended use.
Co-authored-by: Nikias Bassen <nikias@gmx.li>
|
|
|
|
|
|
|
|
|
|
Depending on the model, a specific USB Port has to be used for a restore.
When using a different one, Port DFU fails to switch to DFU mode. We use
this fact to print a message with an official link that shows the correct
USB port to use for the restore.
|
|
|
|
|
|
- Replaced loglevel arguments and globals using the `int` type with the `loglevel` enum.
- Moved logging print func handler function declaration to typedef.
- Fixed misuse of `print_func` where a char* was passed in place of `va_list` via a wrapper function `print_funcf`.
- Fixed reuse of varargs in `logger` causing a segfault when `stderr_enabled` is true.
- Fixed length in `snprintf` call inside `logger_hex_dump` truncating the printed text.
|
|
idevicerestore will now also create a logfile automatically, unless
disabled with --logfile=NONE.
|
|
Because of the new Apple baseband the initial TSS request won't succeed
when restoring from normal mode due to missing data for a @BBTicket.
So now if the baseband information is missing, we don't try to add BBTicket
data at all, which will make it work for iPhone 16e devices.
|
|
Use --without-limera1n at configure time to disable this feature.
|
|
|
|
|
|
-> KIS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This also removes the sha1/sha384 code from this repository since
we are using the ones from libimobiledevice-glue now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Otherwise we could set tss_enabled to 0 but the extraction would re-enable it.
|
|
This makes it clear that the return value is immutable and moreover suggests
that the return vale is not allocated and thus should be treated carefully.
|
|
|
|
It wasn't entirely clear what "Product Version" and "Product Build" would be
so prefixing it with "IPSW" makes it clear it's the version being restored.
|
|
Older ipsw archives have the root filesystem stored in compressed
format rather than just "stored". The "Verifying Filesystem" step
would then fail as compressed files are not seekable in ZIP files.
This commit introduces a detection for this and has the filesystem
extracted should it be required.
If not using a cache path, the temp file used for extraction will
be deleted after the procedure is completed.
|
|
output by default
To get libimobiledevice and libirecovery output, add -d or --debug twice.
|
|
extracted ipsw
This allows flashing directly from IPSW archive without having to extract it
first, and ultimately removes the "Extracting filesystem from IPSW" part.
Restoring from extracted IPSW is also supported, just pass the path to the
directory that has all the files from a given IPSW.
|
|
|
|
commit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Some devices seem to not have a serial number, usually in restore mode, which
will cause the restore operation to fail since we specifically check for it.
An earlier commit already removed the actual comparison in favor of comparing
the ECID, but some checks would still result in restore failures as it can't
retrieve the serial number on said devices at all.
This commit also makes sure to get the ECID in all modes as early as possible
and removes all the helper functions for it since they are not needed anymore.
|
|
|