summaryrefslogtreecommitdiffstats
path: root/src/ipsw.c
AgeCommit message (Collapse)AuthorFilesLines
2024-06-16Remove OpenSSL dependency in favor of libimobiledevice-glue's hash functionsGravatar Nikias Bassen1-13/+5
This also removes the sha1/sha384 code from this repository since we are using the ones from libimobiledevice-glue now.
2023-11-09Print progress for large components (e.g. Cryptex)Gravatar Nikias Bassen1-4/+4
2023-11-02Extract OS component when using older ipsw archivesGravatar Nikias Bassen1-2/+18
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.
2023-09-14Refactor ipsw code to transparently stream images directly from ZIP or ↵Gravatar Nikias Bassen1-115/+154
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.
2023-04-21Updated to use latest libplist APIGravatar Nikias Bassen1-1/+1
2022-10-02Reduce memory usage for SourceBootObjectV4 imagesGravatar Nikias Bassen1-0/+141
2022-09-20ipsw: Add some NULL checks to ipsw_extract_to_file_with_progress()Gravatar Nikias Bassen1-1/+12
2022-06-27ipsw: Add workaround for missing RestoreBehavior entries for ipsw infoGravatar Nikias Bassen1-1/+9
2022-06-27ipsw: Improve error message when fwrite failsGravatar Nikias Bassen1-2/+2
2022-05-23ipsw: Update to reflect color macro name change in libimobiledevice-glueGravatar Nikias Bassen1-7/+7
2022-04-05ipsw: Use libplist's new plist_from_json APIGravatar Nikias Bassen1-2/+2
2021-11-19Fix compilation on WindowsGravatar Nikias Bassen1-3/+15
2021-11-17ipsw: Support extracting symlinks as their target name (Monterey)Gravatar Hector Martin1-17/+27
This already works for zip files, but we need to do a readlink dance for unpacked archives. Signed-off-by: Hector Martin <marcan@marcan.st>
2021-11-17ipsw: Add a function to list the archive contents (Monterey)Gravatar Hector Martin1-0/+120
This is required to enumerate the BootabilityBundle contents. Signed-off-by: Hector Martin <marcan@marcan.st>
2021-10-25ipsw: Migrate to ipsw.me v4 APIGravatar Nikias Bassen1-6/+13
2021-09-01Add new --ipsw-info command line switch to show information about build ↵Gravatar Nikias Bassen1-0/+224
identities etc.
2020-06-02Make OpenSSL dependency optional (used for SHA1)Gravatar Nikias Bassen1-0/+8
Can be disabled with --without-openssl, otherwise auto-detected.
2020-04-20Use uint64_t and appropriate standard PRI* format specifiers everywhereGravatar Nikias Bassen1-2/+2
2020-04-18Use PATH_MAX for file sizesGravatar Rosen Penev1-2/+2
Fixes several -Wformat-truncation warnings. Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-04-12Replace strncpy with memcpyGravatar Rosen Penev1-2/+2
Fixes compiler warnings.
2019-10-16Fix usage of baseband and potential other components from extracted IPSWGravatar Nikias Bassen1-0/+4
In case realpath fails, the output filename might be not set and thus fopen will fail on it during copy. Setting the resolved output filename to the given output filename in this case fixed the problem.
2019-09-26Make sure CTRL+C is working at specific stages of the processGravatar Nikias Bassen1-0/+18
2019-02-14Use uint64_t instead of off_t for win32/MinGW compatibilityGravatar Nikias Bassen1-2/+2
2019-02-14Allow .ipsw files or extracted IPSW as sourceGravatar Nikias Bassen1-118/+312
2019-02-02Use ipsw.me API to allow selection and download of any signed firmware ↵Gravatar Nikias Bassen1-14/+91
version when using --latest
2017-06-08ipsw: Suppress (misleading) error message when a requested file is not found ↵Gravatar Nikias Bassen1-1/+1
in archive
2016-06-26ipsw: Add ipsw_extract_to_file_with_progress() and remove progress bar from ↵Gravatar Nikias Bassen1-3/+11
ipsw_extract_to_file()
2014-10-21Fix handling of files larger than 2GB on 32bit systemsGravatar BALATON Zoltan1-13/+13
2013-12-02respect --cache-path when using --latestGravatar Nikias Bassen1-1/+5
2013-10-02ipsw: change buffers to use type unsigned char*Gravatar Nikias Bassen1-9/+12
2013-10-02silence implicit declaration compiler warningsGravatar Nikias Bassen1-0/+1
2013-09-27ipsw: also check product type in ipsw_get_latest_fw to get largest major versionGravatar Nikias Bassen1-3/+6
2013-09-27ipsw: remove obsolete major version increase in ipsw_get_latest_fwGravatar Nikias Bassen1-8/+2
2013-09-27ipsw: fix version data parsingGravatar Nikias Bassen1-41/+9
2013-09-23ipsw: Add a temporary workaround to support iOS 7 firmware lookupsGravatar Martin Szulecki1-0/+5
It appears that iTunes does no longer parse the version XML structure as currently implemented in idevicerestore. We'll need to modify the lookup for the latest firmware in the future, this will do for a while.
2013-09-23Update AUTHORS and file copyrights accordinglyGravatar Martin Szulecki1-1/+3
2012-11-07libidevicerecovery: implemented progress callback logicGravatar Martin Szulecki1-0/+1
2012-07-17ipsw: add function ipsw_get_file_size() to get uncompressed file sizeGravatar Nikias Bassen1-0/+26
2012-07-17ipsw: Prevent error about BuildManifesto.plist by checking if it exists firstGravatar Martin Szulecki1-3/+23
2012-07-17Limit when downloading should show progress and when notGravatar Martin Szulecki1-1/+1
2012-07-17ipsw: Use different error codes in ipsw_download_latest_fw() for handlingGravatar Martin Szulecki1-4/+4
2012-07-17ipsw: Remove downloaded file if checksum verification failedGravatar Martin Szulecki1-0/+4
This prevents restore attempts with corrupt firmware IPSW files.
2012-07-17ipsw: allow passing NULL as sha1buf to ipsw_get_latest_fwGravatar Nikias Bassen1-14/+18
2012-07-17ipsw: change get_latest_fw to ipsw_get_latest_fw and make it publicGravatar Nikias Bassen1-2/+2
2012-07-17ipsw: add workaround for iPhone1,1 version parsingGravatar Nikias Bassen1-2/+8
2012-07-16ipsw: implemented file locking for on-demand downloadingGravatar Nikias Bassen1-0/+15
2012-07-16move ipsw on-demand download to ipsw.cGravatar Nikias Bassen1-0/+235
2012-02-02ipsw: add ipsw_extract_restore_plistGravatar Nikias Bassen1-0/+12
2012-02-02ipsw: add 0-termination to buffer returned by ipsw_extract_to_memoryGravatar Nikias Bassen1-1/+3
2010-07-14Refactor tss request requirements to work with iPhone 3G and iOS 4Gravatar Martin Szulecki1-1/+4
This gets rid of the device model checking code and allows devices like the iPhone 3G to get shsh blobs as required by iOS 4. The requirement if the components need to be signed is determined by which kind of manifest filename is within the IPSW.