Skip to content

Fall back on librecovery-1.0.so if libirecovery.so not found #278

@mmhobi7

Description

@mmhobi7

Describe the bug
Blobsaver crashes when pulling APNounce from device. This is due to irecovery.so not being found (by tsschecker I presume)
Can be fixed with:
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libirecovery-1.0.so.3.0.0 /usr/lib/x86_64-linux-gnu/libirecovery.so

libirecovery-dev (https://packages.ubuntu.com/hirsute/amd64/libirecovery-1.0-dev/filelist) creates the symlink to:
/usr/lib/x86_64-linux-gnu/libirecovery-1.0.so

I'd recommend checking that libirecovery and libimobiledevice are found at app launch

Desktop:

  • OS Version: Ubuntu 21.04
  • iOS Device: iPhone13,4

Checklist (place an x between the brackets to mark as completed):

  • I have made sure I am on the latest version of blobsaver (v 3.0 downloaded today as of this post)
  • I have checked the blobsaver wiki to see if there is already a solution to my problem
  • I have tried common troubleshooting tactics such as restarting my computer and reinstalling blobsaver

Log(s)

➜  ~ /opt/blobsaver/bin/blobsaver
Read in normal mode: 71bd1cd0c62f4058038a4255432c7273ca633ce25a83a67226063aeb487190de
java.lang.UnsatisfiedLinkError: Unable to load library 'irecovery':
libirecovery.so: cannot open shared object file: No such file or directory
libirecovery.so: cannot open shared object file: No such file or directory
Native library (linux-x86-64/libirecovery.so) not found in resource path ()
	at com.sun.jna@5.7.0/com.sun.jna.NativeLibrary.loadLibrary(Unknown Source)
	at com.sun.jna@5.7.0/com.sun.jna.NativeLibrary.getInstance(Unknown Source)
	at com.sun.jna@5.7.0/com.sun.jna.Native.register(Unknown Source)
	at airsquared.blobsaver/airsquared.blobsaver.app.natives.Libirecovery.<clinit>(Unknown Source)
	at airsquared.blobsaver/airsquared.blobsaver.app.LibimobiledeviceUtil.waitForRecovery(Unknown Source)
	at airsquared.blobsaver/airsquared.blobsaver.app.LibimobiledeviceUtil$GetApnonceTask.call(Unknown Source)
	at airsquared.blobsaver/airsquared.blobsaver.app.LibimobiledeviceUtil$GetApnonceTask.call(Unknown Source)
	at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
	Suppressed: java.lang.UnsatisfiedLinkError: libirecovery.so: cannot open shared object file: No such file or directory
		at com.sun.jna@5.7.0/com.sun.jna.Native.open(Native Method)
		... 12 more
	Suppressed: java.lang.UnsatisfiedLinkError: libirecovery.so: cannot open shared object file: No such file or directory
		at com.sun.jna@5.7.0/com.sun.jna.Native.open(Native Method)
		... 12 more
	Suppressed: java.io.IOException: Native library (linux-x86-64/libirecovery.so) not found in resource path ()
		at com.sun.jna@5.7.0/com.sun.jna.Native.extractFromResourcePath(Unknown Source)
		... 12 more

This below is me:
➜  ~ irecovery -v -n
Attempting to connect...
opening device 05ac:1281...
Setting to configuration 1
Setting to interface 0:0
Command completed successfully

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions