Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fork Sync #2

Open
wants to merge 102 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
fe82727
Allow using limd as a submodule
kabiroberai Sep 4, 2022
377dda2
Support OpenSSL built without OPENSSL_ENGINE
kabiroberai Sep 4, 2022
b5ce444
Fix iOS SDK build
kabiroberai Sep 4, 2022
ef7cf8e
restore: Remove incorrect invocation of free() in restored_get_value
nikias Sep 14, 2022
5debcee
mobilebackup: Fix version check to allow operability with really old …
nikias Oct 4, 2022
b314f04
lockdown: Fix error parsing for older iOS versions
nikias Oct 4, 2022
a6775bc
tools: Add idevicedevmodectl tool
nikias Dec 10, 2022
f781905
tools/ideviceimagemounter: Notify user of missing Developer Mode on i…
nikias Dec 10, 2022
06f212e
[github-actions] Fix build workflow for Linux/ubuntu
nikias Dec 10, 2022
7a8e432
idevicebackup2: Fix missing break in switch case statement
nikias Dec 10, 2022
8455d43
idevice: Simplify TLS version selection code for older devices
nikias Jan 11, 2023
a15a316
idevice: Fix connections to <= iOS 5 devices with OpenSSL 3
nikias Jan 11, 2023
9a5e78f
idevice: Use more reliable version check macro for OpenSSL 3 specific…
nikias Jan 11, 2023
c797c2a
reverse_proxy: Fix use-after-free
nikias Feb 21, 2023
cc540a2
3rd_party: Prevent installation of internal headers
nikias Mar 1, 2023
963083b
installation_proxy: Handle BundleIDs in instproxy_client_options_add
nikias Mar 23, 2023
eda2c5e
Updated to use latest libplist API changes
nikias Apr 21, 2023
860ffb7
git-version-gen: Prevent multiple lines of output
nikias Apr 30, 2023
a172604
idevice: Use network addresses as is from what we get from (lib)usbmuxd
nikias Jun 27, 2023
806ab8d
idevice: Fix network address handling in other code paths too
nikias Jun 28, 2023
23c1d30
idevice: Add missing include for Windows
nikias Jun 28, 2023
81b12f0
tools/idevicedevmodectl: Add missing include
nikias Jun 29, 2023
643a46c
tools/idevicedebug: Add missing default case for switch statement
nikias Jun 29, 2023
f4c30d5
3rd_party/ed25519: Silence compiler warning about missing return valu…
nikias Jun 30, 2023
52ab7b7
3rd_party/libsrp6a-sha512: Update function definitions to modern style
nikias Jun 30, 2023
474fd92
3rd_party/libsrp6a-sha512: Updated to work with OpenSSL 3.0+ API
nikias Jul 4, 2023
e57b6e7
Updated OpenSSL-specific code to use OpenSSL 3.0+ API
nikias Jul 5, 2023
8163ca0
Silence (v)asprintf related compiler warnings
nikias Jul 5, 2023
6fc41f5
tools/idevicecrashreport: Silence compiler warning
nikias Jul 5, 2023
ba2fb48
automake: Reorder CFLAGS to fix build issues and use correct SSL libr…
nikias Oct 6, 2023
04c0233
[github-actions] Update checkout and upload-artifact to v3
nikias Oct 6, 2023
9ecd81d
Fix iOS 1 SSL connection
tihmstar Dec 12, 2023
9f29d3b
Fix idevicebackup2 man page
nikias Dec 12, 2023
5452024
sbservices: Read setIconState response
dnicolson Nov 16, 2023
8819a30
Fix GitHub Action for Cython on macOS
dnicolson Nov 24, 2023
a7f993d
cython: Fix Python 3 LockdownClient exception
dnicolson Nov 23, 2023
b18bfef
Remove bashisms in configure.ac
l-pt May 7, 2023
54135e4
mobilebackup: Add missing include
nikias Dec 15, 2023
d86140f
lockdown-cu: Fix the build with LibreSSL >= 3.5.0
orbea Apr 11, 2023
d872130
idevice: Update for LibreSSL >= 3.6.0
orbea Apr 11, 2023
d379401
idevicedevmodectl: Include unistd.h for usleep()
kraj May 10, 2023
76f924c
idevicesyslog: Allow writing output to a file with command line option
nikias Dec 22, 2023
7f781eb
tools: Add afcclient utility
nikias Dec 30, 2023
4cb84a7
Updated README
nikias Dec 30, 2023
f723a44
tools/idevicedevmodectl: Fix action success check and device reboot d…
nikias Jan 11, 2024
63bbac5
Move LIBIMOBILEDEVICE_API to public headers
nikias Jan 31, 2024
0bdef85
Add afc_strerror function to interface
nikias Jan 31, 2024
3c88faf
tools/afcclient: Print human readable description of AFC error code o…
nikias Jan 31, 2024
73b6fd1
tools/afcclient: Allow removing non-empty directories with -r
nikias Feb 1, 2024
7b1faa0
Add libimobiledevice_version() function to interface
nikias Mar 16, 2024
49f4ceb
autoconf: Add LibreSSL specific check
nikias Mar 17, 2024
9649448
tools: Fix memory leak in idevicedevmodectl
nikias Mar 27, 2024
fb1dec7
cython: fixed notification_proxy callback gil lock
aymenim Mar 15, 2016
9eee3d1
cython: Allow passing null to lockdown set value
aymenim Mar 21, 2016
59ec38c
cython: Fix cython3 noexcept compilation error
IridiumXOR Jan 11, 2024
1ec2c2c
cython: Set explicit language_level to 3str
nikias Apr 1, 2024
3cea605
[github-actions] Use newer cython version (macOS/Linux)
nikias Apr 2, 2024
3969bc9
autoconf: Require cython 3.0 for python bindings
nikias Apr 2, 2024
5f08342
automake: Prevent `dist` or `distcheck` when uncommitted changes are …
nikias Apr 16, 2024
9d74aed
libsrp6a-sha512: disable BN_mod_exp_mont_word() with LibreSSL
orbea Apr 23, 2024
80d5f46
common/userpref: remove X509V3_EXT_cleanup()
orbea Apr 23, 2024
f2d3d40
[github-actions] Update actions in build workflow to newer versions
nikias Apr 27, 2024
77c727b
[github-actions] Fix cython installation for macOS build
nikias Apr 28, 2024
469d21c
common: Add libimobiledevice-glue to dependencies
nikias May 16, 2024
d4efb4e
tools/afcclient: Allow get folder from device to local.
tomriddly Apr 28, 2024
8bed93c
tools/afcclient: Allow put directory to device
tomriddly Apr 28, 2024
d2374c3
.gitignore: Ignore build target for afcclient
tomriddly Apr 28, 2024
3d2ef97
tools/afcclient: get/put operations use '-f' to allow overwrite, '-r'…
tomriddly May 2, 2024
db0e022
tools/afcclient: Update get/put options in help message
tomriddly May 2, 2024
d4bd267
docs/Makefile.am: add man doc build for afcclient
tomriddly May 2, 2024
af3d102
docs: Update manpage for afcclient
tomriddly May 2, 2024
753844b
tools/afcclient: Prevent too much blank lines from recursive put
tomriddly May 2, 2024
80e13a3
tools/afcclient: Fix build for Windows
nikias May 18, 2024
9ccc522
tools/afcclient: Add missing argument count check for `get` command
nikias May 20, 2024
ed0d66d
Update libimobiledevice-glue dependency to 1.3.0 and use its SHA1 imp…
nikias Jun 27, 2024
68df374
Add support for iOS 17+ Personalized Developer Disk image mounting
nikias Jun 27, 2024
87788ae
Updated README.md to mention libtatsu dependency
nikias Jun 27, 2024
927898c
tools/afcclient: Add missing time.h header.
nikias Jun 27, 2024
d1a98e0
[github-actions] Fix build workflow for new libtatsu dependency
nikias Jun 27, 2024
2a0a6d5
tools: Fix heap buffer overflow in ideviceimagemounter
nikias Jul 1, 2024
42f2553
tools: Fix typo in Makefile.am regarding idevicebtlogger_CFLAGS
nikias Aug 7, 2024
ed9703d
tools: Add detection and note about passcode requirement for iOS 16.1
nikias Sep 16, 2024
8811029
3rd_party/libsrp6a: Remove unnecessary allocator code and just use ma…
nikias Oct 8, 2024
c60d70c
win32: Add missing include for Sleep
nikias Oct 22, 2024
12c1c5e
Updated README
nikias Oct 22, 2024
2726ee5
idevicecrashreport: Allow removing crash logs without copying.
nikias Oct 25, 2024
dc445fd
docs: Update manpage for idevicecrashreport
nikias Oct 25, 2024
205fd58
idevice: Use proper cast for pointer to fd
nikias Oct 26, 2024
3b5d3e5
tools: Some Makefile fine-tuning
nikias Oct 27, 2024
5aebbc0
configure: Fine-tuning for MinGW/msys build
nikias Oct 27, 2024
ba829e6
tools: Add --insecure option to idevicenotificationproxy tool
nikias Nov 14, 2024
bcced6c
Fix attempts to detect Windows using _WIN32
mrexodia Nov 27, 2024
563f912
Switch to better initializer strategy
mrexodia Nov 27, 2024
9bc95a0
Fix compilation on MSVC
mrexodia Nov 27, 2024
b9b78f2
[github-actions] Run build workflow on pull_request
nikias Nov 29, 2024
a911066
[github-actions] Bump dawidd6/action-download-artifact from 3 to 6
nikias Nov 29, 2024
add40b9
tools: Fix build due to missing sys/stat.h
nikias Nov 29, 2024
ac617a8
Updated ax_python_devel.m4
nikias Nov 29, 2024
c8cdf20
configure: Remove unused check
nikias Dec 2, 2024
1b09adc
tools/idevicebackup2: Fix free disk space calculation
nikias Jan 6, 2025
e198940
tools: Fix afclient compilation by adding libimobiledevice-glue depen…
nikias Jan 22, 2025
f61a3bb
tools: Fix usage output for ideviceimagemounter
nikias Jan 22, 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
67 changes: 50 additions & 17 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: build

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

Expand All @@ -12,31 +13,38 @@ jobs:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install cython
pip install cython
- name: prepare environment
run: |
echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV
- 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 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 @@ -45,7 +53,7 @@ jobs:
done
sudo cp -r extract/* /
sudo ldconfig
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: autogen
Expand All @@ -60,7 +68,7 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf libimobiledevice.tar usr
- name: publish artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: libimobiledevice-latest_${{env.target_triplet}}
path: libimobiledevice.tar
Expand All @@ -74,37 +82,44 @@ jobs:
else
brew install libtool autoconf automake pkgconfig
fi
pip install cython
pip3 install --break-system-packages cython
shell: bash
- 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 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: |
mkdir -p lib
Expand Down Expand Up @@ -133,6 +148,17 @@ jobs:
done
export CFLAGS="$USEARCHS -isysroot $SDKDIR"
echo "Using CFLAGS: $CFLAGS"
PYTHON3_BIN=`xcrun -f python3`
if test -x $PYTHON3_BIN; then
export PYTHON=$PYTHON3_BIN
PYTHON_VER=`$PYTHON3_BIN -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION'))"`
PYTHON_EXEC_PREFIX=`$PYTHON3_BIN -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('exec_prefix'))"`
PYTHON_LIBS_PATH=$PYTHON_EXEC_PREFIX/lib
PYTHON_FRAMEWORK_PATH=$PYTHON_EXEC_PREFIX/Python3
export PYTHON_CPPFLAGS="-I$PYTHON_EXEC_PREFIX/Headers"
export PYTHON_LIBS="-L$PYTHON_LIBS_PATH -lpython$PYTHON_VER"
export PYTHON_EXTRA_LDFLAGS="-Wl,-stack_size,1000000 -framework CoreFoundation $PYTHON_FRAMEWORK_PATH"
fi
./autogen.sh PKG_CONFIG_PATH=/usr/local/lib/pkgconfig --enable-debug \
openssl_CFLAGS="-I${{ env.DEPSDIR }}/libressl-${{ env.LIBRESSL_VER }}/include" \
openssl_LIBS="-Xlinker ${{ env.LIBSSL }} -Xlinker ${{ env.LIBCRYPTO }}"
Expand All @@ -146,7 +172,7 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf libimobiledevice.tar usr
- name: publish artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: libimobiledevice-latest_macOS
path: libimobiledevice.tar
Expand Down Expand Up @@ -183,34 +209,41 @@ jobs:
echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV
git config --global core.autocrlf false
- 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 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: autogen
run: ./autogen.sh CC=gcc CXX=g++ --enable-debug
- name: make
Expand All @@ -223,7 +256,7 @@ jobs:
DESTDIR=`pwd`/dest make install
tar -C dest -cf libimobiledevice.tar ${{ env.dest }}
- name: publish artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: libimobiledevice-latest_${{ matrix.arch }}-${{ env.dest }}
path: libimobiledevice.tar
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ docs/html
libimobiledevice-1.0.pc
tools/.libs/*
tools/idevice*
tools/afcclient
!tools/idevice*.[ch]
cython/.libs/*
cython/*.c
Expand Down
2 changes: 1 addition & 1 deletion 3rd_party/ed25519/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ AM_CPPFLAGS = \

AM_CFLAGS = \
$(GLOBAL_CFLAGS) \
$(openssl_CFLAGS)
$(ssl_lib_CFLAGS)

AM_LDFLAGS =

Expand Down
2 changes: 1 addition & 1 deletion 3rd_party/ed25519/seed.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ int ed25519_create_seed(unsigned char *seed) {
return 1;
}

fread(seed, 1, 32, f);
if(fread(seed, 1, 32, f)){}
fclose(f);
#endif

Expand Down
14 changes: 7 additions & 7 deletions 3rd_party/libsrp6a-sha512/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@ AM_CPPFLAGS = \
-I$(top_srcdir) \
-Wno-incompatible-pointer-types

include_HEADERS = srp.h srp_aux.h cstr.h

AM_CFLAGS = -DHAVE_CONFIG_H
if HAVE_OPENSSL
AM_CFLAGS += -DOPENSSL=1 -DOPENSSL_ENGINE=1 $(openssl_CFLAGS)
AM_CFLAGS += -DOPENSSL=1 $(openssl_CFLAGS)
else
if HAVE_GCRYPT
AM_CFLAGS += -DGCRYPT=1 $(libgcrypt_CFLAGS)
Expand All @@ -25,7 +23,9 @@ noinst_LTLIBRARIES = libsrp6a-sha512.la
libsrp6a_sha512_la_SOURCES = \
t_conv.c t_math.c t_misc.c \
t_truerand.c cstr.c \
srp.c srp6a_sha512_client.c
if !HAVE_OPENSSL
libsrp6a_sha512_la_SOURCES += t_sha.c
endif
srp.c srp6a_sha512_client.c \
srp.h srp_aux.h cstr.h \
t_sha.c
#if !HAVE_OPENSSL
#libsrp6a_sha512_la_SOURCES += t_sha.c
#endif
62 changes: 10 additions & 52 deletions 3rd_party/libsrp6a-sha512/cstr.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,71 +8,30 @@
#define MINSIZE 4 /* Absolute minimum - one word */

static char cstr_empty_string[] = { '\0' };
static cstr_allocator * default_alloc = NULL;

/*
* It is assumed, for efficiency, that it is okay to pass more arguments
* to a function than are called for, as long as the required arguments
* are in proper form. If extra arguments to malloc() and free() cause
* problems, define PEDANTIC_ARGS below.
*/
#ifdef PEDANTIC_ARGS
static void * Cmalloc(int n, void * heap) { return malloc(n); }
static void Cfree(void * p, void * heap) { free(p); }
static cstr_allocator malloc_allocator = { Cmalloc, Cfree, NULL };
#else
static cstr_allocator malloc_allocator = { malloc, free, NULL };
#endif

_TYPE( void )
cstr_set_allocator(cstr_allocator * alloc)
{
default_alloc = alloc;
}

_TYPE( cstr * )
cstr_new_alloc(cstr_allocator * alloc)
cstr_new()
{
cstr * str;

if(alloc == NULL) {
if(default_alloc == NULL) {
default_alloc = &malloc_allocator;
}
alloc = default_alloc;
}

str = (cstr *) (*alloc->alloc)(sizeof(cstr), alloc->heap);
str = (cstr *) malloc(sizeof(cstr));
if(str) {
str->data = cstr_empty_string;
str->length = str->cap = 0;
str->ref = 1;
str->allocator = alloc;
}
return str;
}

_TYPE( cstr * )
cstr_new()
{
return cstr_new_alloc(NULL);
}

_TYPE( cstr * )
cstr_dup_alloc(const cstr * str, cstr_allocator * alloc)
cstr_dup(const cstr * str)
{
cstr * nstr = cstr_new_alloc(alloc);
cstr * nstr = cstr_new();
if(nstr)
cstr_setn(nstr, str->data, str->length);
return nstr;
}

_TYPE( cstr * )
cstr_dup(const cstr * str)
{
return cstr_dup_alloc(str, NULL);
}

_TYPE( cstr * )
cstr_create(const char * s)
{
Expand Down Expand Up @@ -101,9 +60,9 @@ cstr_clear_free(cstr * str)
if(--str->ref == 0) {
if(str->cap > 0) {
memset(str->data, 0, str->cap);
(*str->allocator->free)(str->data, str->allocator->heap);
free(str->data);
}
(*str->allocator->free)(str, str->allocator->heap);
free(str);
}
}

Expand All @@ -112,16 +71,16 @@ cstr_free(cstr * str)
{
if(--str->ref == 0) {
if(str->cap > 0)
(*str->allocator->free)(str->data, str->allocator->heap);
(*str->allocator->free)(str, str->allocator->heap);
free(str->data);
free(str);
}
}

_TYPE( void )
cstr_empty(cstr * str)
{
if(str->cap > 0)
(*str->allocator->free)(str->data, str->allocator->heap);
free(str->data);
str->data = cstr_empty_string;
str->length = str->cap = 0;
}
Expand All @@ -137,8 +96,7 @@ cstr_alloc(cstr * str, int len)
if(len < MINSIZE)
len = MINSIZE;

t = (char *) (*str->allocator->alloc)(len * sizeof(char),
str->allocator->heap);
t = (char *) malloc(len * sizeof(char));
if(t) {
if(str->data) {
t[str->length] = 0;
Expand Down
Loading