Skip to content

blobsaver on Linux

airsquared edited this page Jun 27, 2023 · 19 revisions

Reading from device

You may get an error about being unable to load native libraries when trying to read from device.

  1. Make sure you have libimobiledevice and libirecovery installed.
  2. The libraries might be installed under a different directory that blobsaver hasn't detected. If the libraries are installed but you are still getting an error, try symlinking them to /usr/lib. For example, ln -s /path/to/libimobiledevice.so /usr/lib.

If you are building and installing libirecovery from source, make sure to pass the --with-udev argument to ./autogen.sh or ./configure.

If you get other errors or crashes when trying to read from device, try updating some of these libraries:

  • libimobiledevice
  • libirecovery (try building it from source)
  • libplist
  • libusb (last resort, should not be needed to update)

If updating doesn't work, your distribution's libraries might be old and you will have to build/install those from source.

You can also try running blobsaver with sudo/root privileges or adding a udev rule for libirecovery (see issue #459 for more information).

If you need to get your device out of recovery and the menu item in blobsaver (Help > Exit Recovery Mode...) isn't working you can try using other tools.

For ARM

blobsaver can be installed from releases for Linux 64-bit x86 machines. If you're using a Raspberry Pi or any other architecture, you will need to compile blobsaver yourself. Build instructions are here.

Auto-saving blobs in the background

On Linux, blobsaver uses systemd timers to save blobs. Most distributions come with systemd, but if you prefer not to use systemd for saving blobs automatically in the background you can set it up using something like cron instead. Once you have your auto-save settings set up with your devices enabled, set up cron or something else to call blobsaver with the --background-autosave argument at the interval you want. /path/to/blobsaver --background-autosave.

If you get the error Failed to execute child process "dbus-launch", you need to install it. On Debian-based systems like Ubuntu, it can be installed with apt install x11-dbus.