Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
65f1709
restore: use an appropriate ticket for Cryptex1 global manifest
kamatam9 Jul 17, 2022
d0921e4
restore: Add support for Cryptex1LocalPolicy firmware updater
nikias Aug 29, 2022
d97f560
Fix Cryptex1 and Cryptex1LocalPolicy TSS request handling
nikias Sep 16, 2022
403d295
tss: Don't add @BBTicket in tss_request_new()
nikias Sep 16, 2022
e9c8007
ipsw: Add some NULL checks to ipsw_extract_to_file_with_progress()
nikias Sep 20, 2022
6672bad
tss: Add NeRDEpoch to TSS requests for newer devices (iPhone 13 and up)
nikias Sep 21, 2022
96f68e6
img4: Add some more component tags
nikias Sep 21, 2022
88aeb4c
tss: Make sure vinyl tags include eUICC,Gold and eUICC,Main digests
nikias Sep 25, 2022
bb7f206
tss: Add preliminary code to set UID_MODE
nikias Sep 25, 2022
aa98e76
Reduce memory usage for SourceBootObjectV4 images
nikias Oct 2, 2022
a4f5a0c
img4: Add support for stitching with additional TBM data
nikias Oct 4, 2022
c45f74c
recovery: set bRequest to 1 when sending bootx command
kamatam9 Oct 5, 2022
4e46f12
[github-actions] Fix MinGW build
nikias Oct 7, 2022
9610770
recovery: Send bootx with bRequest set to 1 for all platforms
nikias Oct 8, 2022
f6950c2
recovery: Also send "go" and "reset" commands with bRequest set to 1
nikias Oct 11, 2022
f8a9258
Check if device is limera1n-vulnerable for --pwn option
alfiecg24 Oct 11, 2022
d20eb21
Use limera1n_is_supported instead of compatibility check added with p…
nikias Oct 17, 2022
2a907b0
restore: Only print boot object v3/v4 plist in debug mode
nikias Oct 19, 2022
7b89019
restore: Fix compilation error due to wrong variable name
nikias Oct 19, 2022
bc61771
img4: Remove unused debug code
nikias Apr 12, 2023
d291eb1
Allow setting custom TSS request URL through command line switch
nikias Apr 14, 2023
1ec7bb4
docs: Updated man page
nikias Apr 14, 2023
7321192
Updated to use latest libplist API
nikias Apr 21, 2023
a851716
git-version-gen: Prevent multiple lines of output
nikias Apr 30, 2023
163a164
Make sure git-version-gen and .tarball-version are included in dist t…
nikias Apr 30, 2023
609f7f0
Use DeviceGeneratedRequest plist for SE TSS requests
Mar 1, 2023
73438a6
Add support for incoherent iBoot parameters
Jul 25, 2023
da22dd4
Display iBoot boot stage
Jul 25, 2023
a351513
Add SE,ChipID 0x2C
Jul 25, 2023
ed5463a
Add generic TSS request generator
Jul 25, 2023
9b9bba7
tss: Bump auth client version to match iOS 16.5
DanTheMann15 Sep 6, 2023
c8b9f3e
fdr: Fix a debug log message
nikias Sep 6, 2023
4191036
restore: Remove plist debug print for non-existent UniqueBuildID
nikias Sep 13, 2023
7943b63
normal: Don't do unpair before entering recovery mode, remove pairing…
nikias Sep 13, 2023
5a00bbd
tss: Make missing ApNonce non-fatal for IMG3
nikias Sep 13, 2023
9546654
[github-actions] Updated to use checkout@v3
nikias Sep 13, 2023
cc9c68e
autoconf: Link against libusbmuxd too
nikias Sep 13, 2023
17969ef
[github-actions] Updated to use upload-artifact@v3
nikias Sep 13, 2023
dbe7313
Refactor ipsw code to transparently stream images directly from ZIP o…
nikias Sep 14, 2023
cf22a1c
tss: Add Ap,SikaFuse to TSS request as seen for iPhone 14/15 devices
nikias Sep 29, 2023
c96f60b
restore: Handle SepStage1 (SEPPatchImageData) in NORImageData
nikias Oct 2, 2023
ca76f44
restore: Attributed status code 50 with SEP load failure
nikias Oct 2, 2023
064daea
restore: Add new SE,ChipID 0x36 to list of known values
nikias Oct 2, 2023
e4e5512
restore/tss: Prefer DeviceGeneratedRequest for Rose TSS request, and …
nikias Oct 4, 2023
1405a9f
restore: Refine checkpoint log output
nikias Oct 4, 2023
7e5860d
restore: Improve checkpoint log output again, make sure to always che…
nikias Oct 4, 2023
523e567
restore: Skip adding FirmwareData to FirmwareResponseData for Rose
nikias Oct 6, 2023
f17f520
restore: Add Ace3 as known updater name to suppress error message
nikias Oct 6, 2023
6806495
restore: Also print checkpoint warning messages
nikias Oct 6, 2023
503bdd0
Improve debug output by suppressing libimobiledevice and libirecovery…
nikias Oct 7, 2023
4072cd9
tss: Add USBPortController1,* entries to parameters
nikias Oct 9, 2023
c871c59
Extract OS component when using older ipsw archives
nikias Nov 2, 2023
8664de0
Print device Product and Build Version and IPSW Product and Build Ver…
nikias Nov 7, 2023
f87ab8b
.gitignore: Add src/idevicerestore.exe
nikias Nov 8, 2023
6085ed7
Print progress for large components (e.g. Cryptex)
nikias Nov 9, 2023
10c15d5
Fix update restore by making sure the premanifest is properly generated
nikias Nov 9, 2023
85ea337
asr: Fix sending payload without checksum
tihmstar Nov 14, 2023
83600e9
restore: Fix UaF
tihmstar Nov 14, 2023
acecac3
Change path_get_basename()'s return type to const char*
tihmstar Nov 14, 2023
ecae6c6
Change path_get_basename arg to const too
nikias Nov 15, 2023
c6a9359
Update libzip API usage to use non-deprecated functions
nikias Nov 20, 2023
8a5abb9
restore: Only print progress bar for images larger than 16 MB
nikias Nov 26, 2023
14fc14a
[github-actions] Windows: build with static libcurl
nikias Jan 13, 2024
a2b8443
libcurl build
nikias Jan 14, 2024
cba2d5e
update build
nikias Jan 14, 2024
fdbf383
Make sure to extract the build manifest before doing restore mode checks
nikias Mar 8, 2024
012e0aa
Fix some variable types for more consistency
nikias Mar 22, 2024
babf9ad
tss: Update libauthinstall verison string
nikias Mar 23, 2024
e4a5ac4
Add support for Port DFU device restore
nikias Mar 23, 2024
d50698e
Fix restore mode component personalisation
VisualEhrmanntraut Apr 3, 2024
d8f8cb1
Remove annoying linebreak
nikias Apr 4, 2024
6d40d0a
dfu: A little code optimization
nikias Apr 4, 2024
71ca0f0
[github-actions] Updated actions in build workflow
nikias May 2, 2024
d95b43d
[github-actions] Only allow curl workflow to be triggered manually
nikias May 2, 2024
0548d9f
[github-actions] Fix build for macOS
nikias May 2, 2024
e6d8c0b
Updated to use libplist 2.5.0 API
nikias May 5, 2024
653349a
Require libplist 2.6.0
nikias May 14, 2024
c4c7d23
automake: Prevent `dist` or `distcheck` when uncommitted changes are …
nikias May 18, 2024
56d2c01
Add missing cast to silence compiler warning
nikias May 18, 2024
04a3f49
Link against the new libtatsu and remove tss code
nikias May 23, 2024
df06f4d
[github-actions] Update build workflow to use new libtatsu
nikias May 23, 2024
4ed598b
Small change to align with updated libtatsu
nikias Jun 5, 2024
9a4266a
Add missing linebreak to log message
nikias Jun 12, 2024
4e95bd9
Require libtatsu 1.0.2
nikias Jun 12, 2024
10cd5f7
Remove OpenSSL dependency in favor of libimobiledevice-glue's hash fu…
nikias Jun 16, 2024
4117b89
Require libtatsu-1.0.3
nikias Jun 17, 2024
a4cf7e2
Updated README
nikias Jun 19, 2024
e083987
restore: Remove `build_identity` from the parameters of the functions
nikias Jun 22, 2024
de1d17d
restore: Remove `device` from the parameters of the functions
nikias Jun 22, 2024
28c1dab
Add support for iOS 18 restore process
nikias Jun 24, 2024
63094e7
restore: Always try to use DeviceGeneratedRequest data for TSS reques…
nikias Jun 26, 2024
1d0821a
Remove debug printf
nikias Jun 29, 2024
26613f9
Fix heap buffer overflow in URLAsset handling
nikias Jul 1, 2024
f7e24ce
ipsw: Fix concurrent access to ZIP file
nikias Jul 9, 2024
7df9e9e
restore: Make wait for URLAsset on first chunk optional
nikias Sep 18, 2024
f5d7307
restore: Make sure to error out when async data request handler can't…
nikias Sep 18, 2024
3faf292
restore: Only send FirmwareData when it has been requested
nikias Sep 18, 2024
1c4e53e
restore: Fix incorrect fallback case
tihmstar Sep 17, 2024
90c2cf1
common: Try to improve terminal output with fflush()
nikias Sep 18, 2024
9764c08
Only print libimobiledevice debug info for debug level > 2
nikias Sep 18, 2024
dab6a34
Print libtatsu version alongside idevicerestore version
nikias Sep 18, 2024
17c65b2
restore: Add SupportedAsyncDataTypes for both iOS and macOS
fbrandstetter Sep 18, 2024
ad46e14
Replace sprintf with snprintf
nikias Sep 18, 2024
a31eb2b
Also print libirecovery version
nikias Sep 19, 2024
4145e95
asr: Add support for second Initiate request
fbrandstetter Sep 20, 2024
d2e1c4f
asr: Fix memory corruption due to double free
nikias Sep 21, 2024
48350d6
Initial support for iPhone 16 restore
nikias Sep 21, 2024
be6751c
ace3: Fix Ace3Binary generation for newer devices
nikias Sep 25, 2024
27402ca
Release DFU/Recovery client on disconnect and Increase timeout for po…
nikias Sep 25, 2024
511261e
Be more precise about what is wrong when entering restore mode fails
nikias Sep 28, 2024
f4a18ee
configure: Require newer libtatsu and libirecovery
nikias Oct 11, 2024
151c680
Fix iPhone 16 restore from normal mode and add support for RecoveryOS
nikias Oct 15, 2024
559adb7
Updated README
nikias Oct 22, 2024
61a76ce
[github-actions] Update curl workflow to build 8.10.1 for UCRT64
nikias Nov 3, 2024
5d92c7a
[github-actions] Bump dawidd6/action-download-artifact from 3 to 6
nikias Dec 2, 2024
914fbb3
Fix build
nikias Dec 2, 2024
bb5591d
configure: Fix Linux build with LTO
nikias Dec 3, 2024
866b6b7
Add docker scripts to simplify setting up idevicerestore
Feb 1, 2023
437e513
[docker] Add CI to build and archive docker image
cameroncros Oct 22, 2024
b05d50c
[docker] Update docker image base to ubuntu 24.04
cameroncros Oct 22, 2024
2ee5021
Allow building without support for limera1n
nikias Mar 20, 2025
a5905b7
Fix iPhone 16e restore from normal mode
nikias Mar 24, 2025
8061f08
Refactor logging and add logfile support
nikias Jun 23, 2025
8d05633
Improve type safety of new logging system and its handling of varargs
VisualEhrmanntraut Jun 27, 2025
0aa3cbd
log: Make sure to only add compiler attribute for supported compilers
nikias Jun 27, 2025
7ba50eb
[github-actions] Update build workflow for Windows build to use windo…
nikias Jun 27, 2025
f89dea1
restore: Fix curl_easy_setopt compiler warning
nikias Jun 27, 2025
c17f9d6
download: Use new CURLOPT_XFERINFOFUNCTION for libcurl >= 7.32
nikias Jun 27, 2025
c752e87
Update codebase to use (const) void* and size_t where applicable
nikias Jun 30, 2025
460d8f1
Fix a couple of compiler warnings and remove unused variables
nikias Jun 30, 2025
e574eae
Silence more compiler warnings
nikias Jul 1, 2025
038a493
Removed unused 'entries' member from struct idevicerestore_client_t
nikias Jul 1, 2025
197c961
restore: Adapt log level of previous restore log and reverse proxy me…
nikias Jul 15, 2025
2914bf6
img4: Add RestoreDCP2 -> rdc2 mapping
nikias Aug 14, 2025
d2cf14f
img4: Fix Ap,RestoreDCP2 -> rdc2 mapping
nikias Sep 5, 2025
75fb578
img4: Use lookup table to retrieve tag name in img4_stitch_component()
nikias Sep 5, 2025
5d9bd62
Print message about USB port for macOS restores in case Port DFU fails
nikias Sep 5, 2025
ddaf261
Add FUNDING
nikias Sep 7, 2025
d7e26cf
Updated FUNDING
nikias Sep 7, 2025
6c5e5b6
img4: Fix wrong entry in matching array for component stitching
nikias Sep 8, 2025
ae1539e
[Windows] Fix log output
nikias Sep 10, 2025
bb701b8
Increase timeout for device to enter restore mode
nikias Sep 11, 2025
34d07e0
Fix log output of get_ap_nonce/get_sep_nonce
nikias Sep 11, 2025
e41ff99
Updated README
nikias Sep 11, 2025
8d1e798
Add SE,ChipID for M4
nikias Sep 12, 2025
a0cec3b
Fix boot-args string and handling
H-Sofie Sep 13, 2025
eda43ac
Fix progress bar for DFU/Recovery image upload
nikias Sep 22, 2025
fcbf936
restore: Silence messages around AEA first chunk / URLAsset handling
nikias Sep 25, 2025
105ac0c
restore: Dump TSS requests and responses in debug log level
nikias Sep 25, 2025
47bf8b5
restore: Handle new Centauri and Jasmine (Savage) updaters
nikias Sep 25, 2025
1aea4df
restore: Suppress progress bars for smaller PersonalizedBootObjectV3 …
nikias Sep 25, 2025
4cf940b
Add support for Mav25 baseband firmware (iPhone 17 family)
VisualEhrmanntraut Sep 26, 2025
551dba5
Fix Mav baseband stitching
nikias Sep 29, 2025
d88d440
mbn: Add missing line break to debug log message
nikias Oct 1, 2025
fb46a9d
Do not try to print SEP nonce if none was retrieved
nikias Oct 2, 2025
460bf2e
Fix baseband processing with Mav25 (and possibly others too)
nikias Oct 2, 2025
f4d0f7e
log: Add missing include
nikias Oct 2, 2025
a499b62
configure: Bump libimobiledevice and libirecovery version requirements
nikias Nov 2, 2025
74e3bd9
endianness.h: Default to little endian
nikias Nov 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
github: nikias
patreon: nikias
custom: ["https://www.paypal.me/NikiasBassen"]
114 changes: 76 additions & 38 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
name: build

on: [push]
on:
push:
pull_request:
schedule:
- cron: '0 0 1 * *'

jobs:
build-linux-ubuntu:
Expand All @@ -14,40 +18,47 @@ jobs:
run: |
echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV
- name: fetch libirecovery
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libirecovery-latest_${{env.target_triplet}}
repo: libimobiledevice/libirecovery
- name: fetch libplist
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libplist-latest_${{env.target_triplet}}
repo: libimobiledevice/libplist
- name: fetch libusbmuxd
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libusbmuxd-latest_${{env.target_triplet}}
repo: libimobiledevice/libusbmuxd
- name: fetch libimobiledevice-glue
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-glue-latest_${{env.target_triplet}}
repo: libimobiledevice/libimobiledevice-glue
- name: fetch libimobiledevice
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-latest_${{env.target_triplet}}
repo: libimobiledevice/libimobiledevice
- name: fetch libtatsu
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libtatsu-latest_${{env.target_triplet}}
repo: libimobiledevice/libtatsu
- name: install external dependencies
run: |
mkdir extract
Expand All @@ -57,7 +68,7 @@ jobs:
rm -rf extract/lib
sudo cp -r extract/* /
sudo ldconfig
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: autogen
Expand All @@ -72,7 +83,7 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf idevicerestore.tar usr
- name: publish artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: idevicerestore-latest_${{env.target_triplet}}
path: idevicerestore.tar
Expand All @@ -88,48 +99,55 @@ jobs:
fi
shell: bash
- name: fetch libirecovery
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libirecovery-latest_macOS
repo: libimobiledevice/libirecovery
- name: fetch libplist
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libplist-latest_macOS
repo: libimobiledevice/libplist
- name: fetch libusbmuxd
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libusbmuxd-latest_macOS
repo: libimobiledevice/libusbmuxd
- name: fetch libimobiledevice-glue
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-glue-latest_macOS
repo: libimobiledevice/libimobiledevice-glue
- name: fetch libimobiledevice
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-latest_macOS
repo: libimobiledevice/libimobiledevice
- name: fetch libtatsu
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libtatsu-latest_macOS
repo: libimobiledevice/libtatsu
- name: install external dependencies
run: |
mkdir extract
for I in *.tar; do
tar -C extract -xvf $I
done
sudo cp -r extract/* /
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: install additional requirements
run: |
SDKDIR=`xcrun --sdk macosx --show-sdk-path 2>/dev/null`
Expand All @@ -144,30 +162,18 @@ jobs:
export CFLAGS="$USEARCHS -isysroot $SDKDIR"
echo "Using CFLAGS: $CFLAGS"
echo "BUILD_CFLAGS=$CFLAGS" >> $GITHUB_ENV
mkdir -p lib
curl -o lib/libcrypto.35.tbd -Ls \
https://gist.github.com/nikias/94c99fd145a75a5104415e5117b0cafa/raw/5209dfbff5a871a14272afe4794e76eb4cf6f062/libcrypto.35.tbd
curl -o lib/libssl.35.tbd -Ls \
https://gist.github.com/nikias/94c99fd145a75a5104415e5117b0cafa/raw/5209dfbff5a871a14272afe4794e76eb4cf6f062/libssl.35.tbd
LIBRESSL_VER=2.2.7
FILENAME="libressl-$LIBRESSL_VER.tar.gz"
curl -o $FILENAME -Ls "https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/$FILENAME"
mkdir -p deps
tar -C deps -xzf $FILENAME
echo "LIBRESSL_CFLAGS=-I`pwd`/deps/libressl-$LIBRESSL_VER/include" >> $GITHUB_ENV
echo "LIBRESSL_LIBS=-Xlinker `pwd`/lib/libssl.35.tbd -Xlinker `pwd`/lib/libcrypto.35.tbd" >> $GITHUB_ENV
FILENAME="libzip-static.tar.bz2"
curl -o $FILENAME.b64 -Ls "https://gist.github.com/nikias/3da15d03120382f87b44029cd8495a02/raw/99cd8138fed99e8f6530b6f179f787342c698e1f/libzip-1.7.1_static_macOS.tar.bz2"
base64 -D < $FILENAME.b64 > $FILENAME
tar -C deps -xjf $FILENAME
echo "LIBZIP_CFLAGS=-I`pwd`/deps/include" >> $GITHUB_ENV
echo "LIBZIP_LIBS=`pwd`/deps/lib/libzip.a -Xlinker /usr/lib/libbz2.dylib -Xlinker /usr/lib/liblzma.dylib -lz" >> $GITHUB_ENV
echo "LIBZIP_LIBS=`pwd`/deps/lib/libzip.a -Xlinker ${SDKDIR}/usr/lib/libbz2.tbd -Xlinker ${SDKDIR}/usr/lib/liblzma.tbd -lz" >> $GITHUB_ENV
- name: autogen
run: |
export CFLAGS="${{env.BUILD_CFLAGS}} -Wno-nullability-completeness -Wno-expansion-to-defined"
echo "Using CFLAGS: $CFLAGS"
./autogen.sh PKG_CONFIG_PATH=/usr/local/lib/pkgconfig \
openssl_CFLAGS="$LIBRESSL_CFLAGS" openssl_LIBS="$LIBRESSL_LIBS" \
libcurl_CFLAGS="-I${{env.SDKDIR}}/usr/include" libcurl_LIBS="-lcurl" \
libzip_CFLAGS="$LIBZIP_CFLAGS" libzip_LIBS="$LIBZIP_LIBS" \
zlib_CFLAGS="-I${{env.SDKDIR}}/usr/include" zlib_LIBS="-lz" \
Expand All @@ -182,12 +188,12 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf idevicerestore.tar usr
- name: publish artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: idevicerestore-latest_macOS
path: idevicerestore.tar
build-windows:
runs-on: windows-2019
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
Expand All @@ -212,55 +218,65 @@ jobs:
libtool
autoconf
automake-wrapper
liblzma
mingw-w64-${{ matrix.arch }}-xz
mingw-w64-${{ matrix.arch }}-bzip2
mingw-w64-${{ matrix.arch }}-openssl
pkg-config
- name: prepare environment
run: |
dest=`echo ${{ matrix.msystem }} |tr [:upper:] [:lower:]`
echo "dest=$dest" >> $GITHUB_ENV
echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV
- name: fetch libirecovery
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libirecovery-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libirecovery
- name: fetch libplist
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libplist-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libplist
- name: fetch libusbmuxd
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libusbmuxd-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libusbmuxd
- name: fetch libimobiledevice-glue
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-glue-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libimobiledevice-glue
- name: fetch libimobiledevice
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libimobiledevice-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libimobiledevice
- name: fetch libtatsu
uses: dawidd6/action-download-artifact@v6
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build.yml
name: libtatsu-latest_${{ matrix.arch }}-${{ env.dest }}
repo: libimobiledevice/libtatsu
- name: install external dependencies
run: |
mkdir extract
for I in *.tar; do
tar -C extract -xvf $I
done
cp -r extract/* /
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: install additional requirements
run: |
FILENAME="libzip-1.7.1-static.tar.bz2"
Expand All @@ -270,8 +286,17 @@ jobs:
tar -C deps -xjf $FILENAME
echo "LIBZIP_CFLAGS=-I`pwd`/deps/include" >> $GITHUB_ENV
echo "LIBZIP_LIBS=`pwd`/deps/lib/libzip.a /${{env.dest}}/lib/libbz2.a /${{env.dest}}/lib/liblzma.a " >> $GITHUB_ENV
FILENAME="libcurl-8.1.0-static.tar.bz2"
curl -o $FILENAME.b64 -Ls "https://gist.github.com/nikias/6c397a0a2f4f4eafd91b81cccd22b761/raw/85216e60af6787f3b351291165eb91bd585ff09a/libcurl-8.1.0-static-${{matrix.arch}}-${{env.dest}}.tar.bz2"
base64 -d < $FILENAME.b64 > $FILENAME
tar -C deps -xjf $FILENAME
echo "LIBCURL_CFLAGS=-I`pwd`/deps/include -DCURL_STATICLIB" >> $GITHUB_ENV
echo "LIBCURL_LIBS=`pwd`/deps/lib/libcurl.a /${{env.dest}}/lib/libzstd.a -lws2_32 -lcrypt32 -lwldap32 -lbcrypt -lssl -lcrypto" >> $GITHUB_ENV
- name: autogen
run: ./autogen.sh CC=gcc CXX=g++ --without-openssl libzip_CFLAGS="${{env.LIBZIP_CFLAGS}}" libzip_LIBS="${{env.LIBZIP_LIBS}}" zlib_LIBS="/${{env.dest}}/lib/libz.a"
run: |
./autogen.sh PKG_CONFIG_PATH=/${{env.dest}}/lib/pkgconfig \
libzip_VERSION=1.7.1 libzip_CFLAGS="${{env.LIBZIP_CFLAGS}}" libzip_LIBS="${{env.LIBZIP_LIBS}}" \
zlib_LIBS="/${{env.dest}}/lib/libz.a" libcurl_CFLAGS="${{env.LIBCURL_CFLAGS}}" libcurl_LIBS="$LIBCURL_LIBS"
- name: make
run: make
- name: make install
Expand All @@ -282,7 +307,20 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf idevicerestore.tar ${{ env.dest }}
- name: publish artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: idevicerestore-latest_${{ matrix.arch }}-${{ env.dest }}
path: idevicerestore.tar
build-docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build
run: |
pushd docker && ./build.sh; popd
docker image save -o idevicerestore-docker.tar idevicerestore-docker
- name: publish artifact
uses: actions/upload-artifact@v4
with:
name: idevicerestore-latest_docker
path: idevicerestore-docker.tar
60 changes: 60 additions & 0 deletions .github/workflows/curl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: build-libcurl-static

on: workflow_dispatch

jobs:
build-windows:
runs-on: windows-2019
defaults:
run:
shell: msys2 {0}
strategy:
fail-fast: false
matrix:
include: [
{ msystem: UCRT64, arch: x86_64, flavor: w64-ucrt },
{ msystem: MINGW64, arch: x86_64, flavor: w64 },
{ msystem: MINGW32, arch: i686, flavor: w64 }
]
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
release: false
update: false
install: >-
base-devel
git
mingw-${{ matrix.flavor }}-${{ matrix.arch }}-gcc
make
libtool
autoconf
automake-wrapper
liblzma
mingw-${{ matrix.flavor }}-${{ matrix.arch }}-openssl
- name: prepare environment
run: |
dest=`echo ${{ matrix.msystem }} |tr [:upper:] [:lower:]`
echo "dest=$dest" >> $GITHUB_ENV
echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV
- name: fetch curl source
run: |
curl -Ls -o curl-8.10.1.tar.bz2 https://github.com/curl/curl/releases/download/curl-8_10_1/curl-8.10.1.tar.bz2
tar xjf curl-8.10.1.tar.bz2
- name: configure curl
run: |
cd curl-8.10.1
./configure --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smb --disable-smtp --disable-gopher --disable-mqtt --disable-manual --disable-threaded-resolver --disable-pthreads --disable-sspi --disable-aws --disable-ntlm --disable-ntlm-wb --disable-tls-srp --disable-unix-sockets --disable-doh --disable-mime --disable-dnsshuffle --disable-alt-svc --disable-hsts --disable-websockets --with-openssl --without-brotli --without-libidn2 --without-ngtcp2 --without-quiche --without-msh3 --without-nghttp2 --without-libpsl
- name: build libcurl
run: |
CURDIR=`pwd`
cd curl-8.10.1/lib
make
cp .libs/libcurl.a .
cd ..
tar cf $CURDIR/libcurl-static.tar lib/libcurl.a include/curl/*.h
- name: publish artifact
uses: actions/upload-artifact@v4
with:
name: libcurl_${{ matrix.arch }}-${{ env.dest }}
path: libcurl-static.tar
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ py-compile
stamp-h1
src/.libs
src/idevicerestore
src/idevicerestore.exe
7 changes: 6 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,9 @@ SUBDIRS = src docs

EXTRA_DIST = \
docs \
README.md
README.md \
git-version-gen

dist-hook:
@if ! git diff --quiet; then echo "Uncommitted changes present; not releasing"; exit 1; fi
echo $(VERSION) > $(distdir)/.tarball-version
Loading