libimobiledevice

libimobiledevice

A cross-platform protocol library to access iOS devices

Member Since 8 years ago

Germany

Experience Points
0
follower
Lessons Completed
0
follow
Best Reply Awards
12
repos
Activity
Nov
27
22 hours ago
pull request

kozyraP merge to libimobiledevice/libimobiledevice-glue

kozyraP
kozyraP

Updates to the collection interface

Adds new and free all functions

Activity icon
fork

davidkra230 forked libimobiledevice/ideviceinstaller

⚡ Manage apps of iOS devices
davidkra230 GNU General Public License v2.0 Updated
fork time in 5 hours ago
Nov
26
1 day ago
Activity icon
issue

kozyraP issue comment libimobiledevice/libimobiledevice-glue

kozyraP
kozyraP

Publish release to fix failing installation for libimobiledevice and other projects on macOS

Is it possible to publish an official release for libimobiledevice-glue? After refactoring the code base and adding the libimobiledevice-glue dependency to other projects it is not possible to install libimobiledevice, libusbmuxd and others with the latest --HEAD version.

The installation gives an error:

brew install --HEAD libimobiledevice
(...)

No package 'libimobiledevice-glue-1.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables limd_glue_CFLAGS
and limd_glue_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

It's not possible to add libimobiledevice-glue to homebrew Formula without an official release. User @hammer065 is trying to add brew formula to fix this but this requires having release.

Links to homebrew statistic with failling instalation attempts for: libimobiledevice libusbmuxd

kozyraP
kozyraP

I created turnaround for myself. If someone still having this problem you can try this:

brew tap kozyrap/libimobiledevice brew install kozyrap/libimobiledevice/libimobiledevice --HEAD

I created a fork from libimobiledevice main repo and I changed Head to be as last commit that doesn't need libimibiledevice-glue as a dependency. Then I created brew tap for that fork. tap repo url

Another solution that should work is to copy working, already installed libimobiledevice from another Mac, zip it (it should be named for example as "HEAD-16a8b97") and unzip it into your folder: /usr/local/Cellar/libimobiledevice and than run command: 'brew link libimobiledevice'

Both solution are a bit messy but nothing else worked for me.

Activity icon
issue

kozyraP issue comment libimobiledevice/libimobiledevice

kozyraP
kozyraP

unable to install libimobiledevice from --HEAD

Unable to install libimobiledevice from head on macOS.

brew install --HEAD libimobiledevice

getting error: No package 'libimobiledevice-glue-1.0' found

kozyraP
kozyraP

I am having the same issue. I created turnaround for myself. You can try if it is gonna work for you:

brew tap kozyrap/libimobiledevice brew install kozyrap/libimobiledevice/libimobiledevice --HEAD

I created a fork from libimobiledevice main repo and I changed Head to be as last commit that doesn't need libimibiledevice-glue as a dependency. Then I created brew tap for that fork. tap repo url

Another solution that should work is to copy working, already installed libimobiledevice from another Mac, zip it (it should be named for example as "HEAD-16a8b97") and unzip it into your folder: /usr/local/Cellar/libimobiledevice and than run command: 'brew link libimobiledevice'

Both solution are a bit messy but nothing else worked for me.

started
started time in 1 day ago
Activity icon
issue

SaadAnsari-sankey issue libimobiledevice/libimobiledevice

SaadAnsari-sankey
SaadAnsari-sankey

Idevicesyslog is getting stuck on Connected on IOS 15 .1 and xcode 13.2 beta , sometimes it do run then again get stuck in between

Idevicesyslog is getting stuck on Connected on IOS 15 .1 and xcode 13.2 beta , sometimes it do run then again get stuck in between Added screen shot for better clarity Screenshot 2021-11-25 at 8 06 52 PM

Activity icon
issue

truonggiang0710 issue comment libimobiledevice/libimobiledevice

truonggiang0710
truonggiang0710

WatchOS support

seems there is issue with lockdown handshake on WatchOs, i have applewatch connected trough usb adapter and when it comes to handshake, it tries to do validate_pair and fails with unknown error (tested on watchos 6.3 and 7.1), i will do further research on it, and try to make fix for it, if i skip validate_pair, it works properly it seems.

it my own code, that communicates with watch trough ioctl driver (on windows) i skip validate_pair completely for iwatch, but since there is no detection on libimobile if device is iwatch and only version is compared for validate pair, it is not skipped.

you can query "DeviceClass" which from my testing contains following values "Watch","iPad","iPhone","AppleTV" ... maybe some other value for mac computers, but i had not tested those.

truonggiang0710
truonggiang0710

I hope we can find out the proper configuration. Happy Thanksgiving to you and libimobiledevice team that is always doing great things. You are wonderful, and I hope you have a great holiday with the people in your life who matter most. Thanks.

Activity icon
issue

luobo180180 issue libimobiledevice/idevicerestore

luobo180180
luobo180180

Specify DMG with the latest firmware brush

Can you use the latest firmware to brush in the specified root disk. DMG? Apticket of the specified root disk firmware can be provided for, for example, degradation.

能实现用最新固件,刷入指定root盘.dmg吗,可以提供指定root盘固件的apticket,用于比如降级。

push

nikias push libimobiledevice/idevicerestore

nikias
nikias

Cache build manifest in client struct

commit sha: 1b19774be006645c424d1df52f792faa807a5db9

push time in 1 day ago
Nov
25
2 days ago
Activity icon
issue

corsac-s issue comment libimobiledevice/idevicerestore

corsac-s
corsac-s

configure.ac: fix link against pthread

Hi, as Debian maintainer of imobiledevice tools, I've tried to build idevicerestore 1.0.0 for uploading to Debian unstable, and for some reason it failed (while it build successfully in June).

The error is:

/bin/bash ../libtool  --tag=CC   --mode=link gcc -Wno-multichar -O2  -I/usr/include/libusb-1.0      -I/usr/include/x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/build/idevicerestore-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security  -lirecovery-1.0 -limobiledevice-1.0 -lplist-2.0 -lplist-2.0 -lzip -lz -lssl -lcrypto -lcurl -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -Wl,-O1 -Wl,-z,defs -o idevicerestore idevicerestore-idevicerestore.o idevicerestore-common.o idevicerestore-tss.o idevicerestore-fls.o idevicerestore-mbn.o idevicerestore-img3.o idevicerestore-img4.o idevicerestore-ftab.o idevicerestore-ipsw.o idevicerestore-normal.o idevicerestore-dfu.o idevicerestore-recovery.o idevicerestore-restore.o idevicerestore-asr.o idevicerestore-fdr.o idevicerestore-limera1n.o idevicerestore-download.o idevicerestore-locking.o idevicerestore-socket.o idevicerestore-thread.o idevicerestore-jsmn.o idevicerestore-json_plist.o   
libtool: link: gcc -Wno-multichar -O2 -I/usr/include/libusb-1.0 -I/usr/include/x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/build/idevicerestore-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,--as-needed -Wl,-O1 -Wl,-z -Wl,defs -o idevicerestore idevicerestore-idevicerestore.o idevicerestore-common.o idevicerestore-tss.o idevicerestore-fls.o idevicerestore-mbn.o idevicerestore-img3.o idevicerestore-img4.o idevicerestore-ftab.o idevicerestore-ipsw.o idevicerestore-normal.o idevicerestore-dfu.o idevicerestore-recovery.o idevicerestore-restore.o idevicerestore-asr.o idevicerestore-fdr.o idevicerestore-limera1n.o idevicerestore-download.o idevicerestore-locking.o idevicerestore-socket.o idevicerestore-thread.o idevicerestore-jsmn.o idevicerestore-json_plist.o  -lirecovery-1.0 -limobiledevice-1.0 -lplist-2.0 -lzip -lz -lssl -lcrypto -lcurl
/usr/bin/ld: idevicerestore-thread.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

And indeed, there is no -lpthread flag on the command line and in the generated Makefile PTHREAD_LIBS is empty. Maybe something changed on the Debian toolchain, but looking at libimobiledevice configure.ac there's an explicit call to AC_CHECK_LIB which is missing in idevicerestore.

Here's a pull request adding that line, which seems to fix the build failure on my side.

corsac-s
corsac-s

What are both patches? The new m4 and the additional AC_CHECK_LIB ?

Yes that's it.

Activity icon
fork

admin-elvistrujanovic forked libimobiledevice/libirecovery

⚡ Library and utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, and Linux
admin-elvistrujanovic Updated
fork time in 2 days ago
Activity icon
issue

nikias issue comment libimobiledevice/idevicerestore

nikias
nikias

configure.ac: fix link against pthread

Hi, as Debian maintainer of imobiledevice tools, I've tried to build idevicerestore 1.0.0 for uploading to Debian unstable, and for some reason it failed (while it build successfully in June).

The error is:

/bin/bash ../libtool  --tag=CC   --mode=link gcc -Wno-multichar -O2  -I/usr/include/libusb-1.0      -I/usr/include/x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/build/idevicerestore-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security  -lirecovery-1.0 -limobiledevice-1.0 -lplist-2.0 -lplist-2.0 -lzip -lz -lssl -lcrypto -lcurl -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -Wl,-O1 -Wl,-z,defs -o idevicerestore idevicerestore-idevicerestore.o idevicerestore-common.o idevicerestore-tss.o idevicerestore-fls.o idevicerestore-mbn.o idevicerestore-img3.o idevicerestore-img4.o idevicerestore-ftab.o idevicerestore-ipsw.o idevicerestore-normal.o idevicerestore-dfu.o idevicerestore-recovery.o idevicerestore-restore.o idevicerestore-asr.o idevicerestore-fdr.o idevicerestore-limera1n.o idevicerestore-download.o idevicerestore-locking.o idevicerestore-socket.o idevicerestore-thread.o idevicerestore-jsmn.o idevicerestore-json_plist.o   
libtool: link: gcc -Wno-multichar -O2 -I/usr/include/libusb-1.0 -I/usr/include/x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/build/idevicerestore-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,--as-needed -Wl,-O1 -Wl,-z -Wl,defs -o idevicerestore idevicerestore-idevicerestore.o idevicerestore-common.o idevicerestore-tss.o idevicerestore-fls.o idevicerestore-mbn.o idevicerestore-img3.o idevicerestore-img4.o idevicerestore-ftab.o idevicerestore-ipsw.o idevicerestore-normal.o idevicerestore-dfu.o idevicerestore-recovery.o idevicerestore-restore.o idevicerestore-asr.o idevicerestore-fdr.o idevicerestore-limera1n.o idevicerestore-download.o idevicerestore-locking.o idevicerestore-socket.o idevicerestore-thread.o idevicerestore-jsmn.o idevicerestore-json_plist.o  -lirecovery-1.0 -limobiledevice-1.0 -lplist-2.0 -lzip -lz -lssl -lcrypto -lcurl
/usr/bin/ld: idevicerestore-thread.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

And indeed, there is no -lpthread flag on the command line and in the generated Makefile PTHREAD_LIBS is empty. Maybe something changed on the Debian toolchain, but looking at libimobiledevice configure.ac there's an explicit call to AC_CHECK_LIB which is missing in idevicerestore.

Here's a pull request adding that line, which seems to fix the build failure on my side.

nikias
nikias

What are both patches? The new m4 and the additional AC_CHECK_LIB ?

Activity icon
issue

corsac-s issue comment libimobiledevice/idevicerestore

corsac-s
corsac-s

configure.ac: fix link against pthread

Hi, as Debian maintainer of imobiledevice tools, I've tried to build idevicerestore 1.0.0 for uploading to Debian unstable, and for some reason it failed (while it build successfully in June).

The error is:

/bin/bash ../libtool  --tag=CC   --mode=link gcc -Wno-multichar -O2  -I/usr/include/libusb-1.0      -I/usr/include/x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/build/idevicerestore-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security  -lirecovery-1.0 -limobiledevice-1.0 -lplist-2.0 -lplist-2.0 -lzip -lz -lssl -lcrypto -lcurl -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -Wl,-O1 -Wl,-z,defs -o idevicerestore idevicerestore-idevicerestore.o idevicerestore-common.o idevicerestore-tss.o idevicerestore-fls.o idevicerestore-mbn.o idevicerestore-img3.o idevicerestore-img4.o idevicerestore-ftab.o idevicerestore-ipsw.o idevicerestore-normal.o idevicerestore-dfu.o idevicerestore-recovery.o idevicerestore-restore.o idevicerestore-asr.o idevicerestore-fdr.o idevicerestore-limera1n.o idevicerestore-download.o idevicerestore-locking.o idevicerestore-socket.o idevicerestore-thread.o idevicerestore-jsmn.o idevicerestore-json_plist.o   
libtool: link: gcc -Wno-multichar -O2 -I/usr/include/libusb-1.0 -I/usr/include/x86_64-linux-gnu -g -O2 -fdebug-prefix-map=/build/idevicerestore-1.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,--as-needed -Wl,-O1 -Wl,-z -Wl,defs -o idevicerestore idevicerestore-idevicerestore.o idevicerestore-common.o idevicerestore-tss.o idevicerestore-fls.o idevicerestore-mbn.o idevicerestore-img3.o idevicerestore-img4.o idevicerestore-ftab.o idevicerestore-ipsw.o idevicerestore-normal.o idevicerestore-dfu.o idevicerestore-recovery.o idevicerestore-restore.o idevicerestore-asr.o idevicerestore-fdr.o idevicerestore-limera1n.o idevicerestore-download.o idevicerestore-locking.o idevicerestore-socket.o idevicerestore-thread.o idevicerestore-jsmn.o idevicerestore-json_plist.o  -lirecovery-1.0 -limobiledevice-1.0 -lplist-2.0 -lzip -lz -lssl -lcrypto -lcurl
/usr/bin/ld: idevicerestore-thread.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

And indeed, there is no -lpthread flag on the command line and in the generated Makefile PTHREAD_LIBS is empty. Maybe something changed on the Debian toolchain, but looking at libimobiledevice configure.ac there's an explicit call to AC_CHECK_LIB which is missing in idevicerestore.

Here's a pull request adding that line, which seems to fix the build failure on my side.

corsac-s
corsac-s

Hi, I've tried with the updated ax_pthread.m4 from the repository but without the patch to configure.ac and it didn't work.

With both patches it does work.

Activity icon
issue

mexmer issue comment libimobiledevice/libimobiledevice

mexmer
mexmer

WatchOS support

seems there is issue with lockdown handshake on WatchOs, i have applewatch connected trough usb adapter and when it comes to handshake, it tries to do validate_pair and fails with unknown error (tested on watchos 6.3 and 7.1), i will do further research on it, and try to make fix for it, if i skip validate_pair, it works properly it seems.

it my own code, that communicates with watch trough ioctl driver (on windows) i skip validate_pair completely for iwatch, but since there is no detection on libimobile if device is iwatch and only version is compared for validate pair, it is not skipped.

you can query "DeviceClass" which from my testing contains following values "Watch","iPad","iPhone","AppleTV" ... maybe some other value for mac computers, but i had not tested those.

mexmer
mexmer

yes i know, it can be used to write IPSW (firmware) to device, but it can't be used for anything else. with modified driver, exposed interface reports as apple debug interface .... but there is no mux endpoint or at least i was not able to find proper configuration, to enable it.

Activity icon
issue

truonggiang0710 issue comment libimobiledevice/libimobiledevice

truonggiang0710
truonggiang0710

WatchOS support

seems there is issue with lockdown handshake on WatchOs, i have applewatch connected trough usb adapter and when it comes to handshake, it tries to do validate_pair and fails with unknown error (tested on watchos 6.3 and 7.1), i will do further research on it, and try to make fix for it, if i skip validate_pair, it works properly it seems.

it my own code, that communicates with watch trough ioctl driver (on windows) i skip validate_pair completely for iwatch, but since there is no detection on libimobile if device is iwatch and only version is compared for validate pair, it is not skipped.

you can query "DeviceClass" which from my testing contains following values "Watch","iPad","iPhone","AppleTV" ... maybe some other value for mac computers, but i had not tested those.

truonggiang0710
truonggiang0710

Thanks @mexmer , I requested the MFC team to supply the driver for S6 on Ubuntu and windows, but the answer is still "waiting". I have an S6 driver on Mac. The Apple watch S6 connects successfully to the Mac. It can read information and restore with ipsw file. I capture the data. The header of sending package adds 28 bytes before usbmuxd header. I don't know what the data. Below a sample of header. 4F 10 A0 10 03 0D 00 00 54 01 00 00 AC D5 25 00 00 00 00 00 48 01 00 00 44 01 00 11 00 00 00 06 00 00 01 44 FE ED FA CE 01 BF 00 FC 33 00 F2 7E 00 00 00 01 00 00 00 01 5E 10 02 00 2E 30 22 20 00 00 01 1C 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54 46 2D 38 22 3F 3E 0A 3C 21 44 4F 43 54 59 50 45 20 70 6C 69 73 74 20 50 55 42 4C 49 43 20 22 2D 2F 2F 41 70 70 6C 65 2F 2F 44 54 44 20 50 4C 49 53 54 20 31 2E 30 2F 2F 45 4E 22 20 22 68 74 74 70 3A 2F 2F 77 77 77 2E 61 70 70 6C 65 2E 63 6F 6D 2F 44 54 44 73 2F 50 72 6F 70 65 72 74 79 4C 69 73 74 2D 31 2E 30 2E 64 74 64 22 3E 0A 3C 70 6C 69 73 74 20 76 65 72 73 69 6F 6E 3D 22 31 2E 30 22 3E 0A 3C 64 69 63 74 3E 0A 09 3C 6B 65 79 3E 4C 61 62 65 6C 3C 2F 6B 65 79 3E 0A 09 3C 73 74 72 69 6E 67 3E 69 64 65 76 69 63 65 69 6E 66 6F 3C 2F 73 74 72 69 6E 67 3E 0A 09 3C 6B 65 79 3E 52 65 71 75 65 73 74 3C 2F 6B 65 79 3E 0A 09 3C 73 74 72 69 6E 67 3E 51 75 65 72 79 54 79 70 65 3C 2F 73 74 72 69 6E 67 3E 0A 3C 2F 64 69 63 74 3E 0A 3C 2F 70 6C 69 73 74 3E 0A

Regards.

Activity icon
issue

mexmer issue comment libimobiledevice/libimobiledevice

mexmer
mexmer

WatchOS support

seems there is issue with lockdown handshake on WatchOs, i have applewatch connected trough usb adapter and when it comes to handshake, it tries to do validate_pair and fails with unknown error (tested on watchos 6.3 and 7.1), i will do further research on it, and try to make fix for it, if i skip validate_pair, it works properly it seems.

it my own code, that communicates with watch trough ioctl driver (on windows) i skip validate_pair completely for iwatch, but since there is no detection on libimobile if device is iwatch and only version is compared for validate pair, it is not skipped.

you can query "DeviceClass" which from my testing contains following values "Watch","iPad","iPhone","AppleTV" ... maybe some other value for mac computers, but i had not tested those.

mexmer
mexmer

Hi @mexmer/@a-gunter , can the libimobiledevice connect Apple watch S6 through a USB adaptor on Ubuntu ? When I connect Apple watch S6, the idProduct = 0x1881, usbmuxd does not recognize the watch.

not sure what adapter you using, but if you using iBus adapter (which i have tested) https://www.mfcbox.com/shop/ibus-s4-5-tool-for-apple-watch-s4-s5-40mm-44mm/ then no , it doesn't work, this adapter doesn't propagate mux service, i have tested it with windows and linux, and does propagate some interface, but it is not recognized and i was not able to communicate with it either trough libusb directly or trough

i tested iBus adapters (S1/S2/S4) with all apple watch devices up to watch 6, and all worked except 6 watch series 0, 1 - iBus S1 - will connect, mux interface exposed, works watch series 2, 3 - iBus S2 - will connect, mux interface exposed, works watch series 4, 5, SE - iBus S4/5 - will connect, mux interface exposed, works watch series 6 - iBus S4/5 - will connect, no mux interface, doesn't communicate

as you have noticed series 6 propagate with different USB product id, while other watches all use same USB product id. i tried few times to contact author of iBus adapter, but never got any response.

Activity icon
issue

truonggiang0710 issue comment libimobiledevice/libimobiledevice

truonggiang0710
truonggiang0710

WatchOS support

seems there is issue with lockdown handshake on WatchOs, i have applewatch connected trough usb adapter and when it comes to handshake, it tries to do validate_pair and fails with unknown error (tested on watchos 6.3 and 7.1), i will do further research on it, and try to make fix for it, if i skip validate_pair, it works properly it seems.

it my own code, that communicates with watch trough ioctl driver (on windows) i skip validate_pair completely for iwatch, but since there is no detection on libimobile if device is iwatch and only version is compared for validate pair, it is not skipped.

you can query "DeviceClass" which from my testing contains following values "Watch","iPad","iPhone","AppleTV" ... maybe some other value for mac computers, but i had not tested those.

truonggiang0710
truonggiang0710

Hi @mexmer/@a-gunter , can the libimobiledevice connect Apple watch S6 through a USB adaptor on Ubuntu ? When I connect Apple watch S6, the idProduct = 0x1881, usbmuxd does not recognize the watch.

pull request

xanadu-lee pull request libimobiledevice/libimobiledevice-glue

xanadu-lee
xanadu-lee

Expression simplified

Simplify expressions to make them easier to read.

Activity icon
issue

xanadu-lee issue comment libimobiledevice/libimobiledevice-glue

xanadu-lee
xanadu-lee

Expression simplified

Simplify expressions to make them easier to read.

xanadu-lee
xanadu-lee

Maybe I didn't see your preparation for the future code. I saw size_t, so I modified it to look more intuitive. If you think there is something wrong with my modification, I can close it.

Activity icon
issue

nikias issue comment libimobiledevice/libimobiledevice-glue

nikias
nikias

Expression simplified

Simplify expressions to make them easier to read.

nikias
nikias

From a compiler perspective @rickmark is correct, but in the end this shall prevent the size being passed to be <= 0. Now since the type is size_t it will not be considered < 0 anyway, so a check for == 0 is sufficient here.

Previous