about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/misc/idevicerestore/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/idevicerestore/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/misc/idevicerestore/default.nix58
1 files changed, 58 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/misc/idevicerestore/default.nix b/nixpkgs/pkgs/tools/misc/idevicerestore/default.nix
new file mode 100644
index 000000000000..a12fa04c5fce
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/idevicerestore/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, curl
+, libimobiledevice
+, libirecovery
+, libzip
+, libusbmuxd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "idevicerestore";
+  version = "2019-02-14";
+
+  src = fetchFromGitHub {
+    owner = "libimobiledevice";
+    repo = pname;
+    rev = "8a882038b2b1e022fbd19eaf8bea51006a373c06";
+    sha256 = "17lisl7ll43ixl1zqwchn7jljrdyl2p9q99w30i6qaci71mas37m";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkgconfig
+  ];
+
+  buildInputs = [
+    curl
+    libimobiledevice
+    libirecovery
+    libzip
+    libusbmuxd
+    # Not listing other dependencies specified in
+    # https://github.com/libimobiledevice/idevicerestore/blob/8a882038b2b1e022fbd19eaf8bea51006a373c06/README#L20
+    # because they are inherited `libimobiledevice`.
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/libimobiledevice/idevicerestore;
+    description = "Restore/upgrade firmware of iOS devices";
+    longDescription = ''
+      The idevicerestore tool allows to restore firmware files to iOS devices.
+
+      It is a full reimplementation of all granular steps which are performed during
+      restore of a firmware to a device.
+
+      In general, upgrades and downgrades are possible, however subject to
+      availability of SHSH blobs from Apple for signing the firmare files.
+
+      To restore a device to some firmware, simply run the following:
+      $ sudo idevicerestore -l
+
+      This will download and restore a device to the latest firmware available.
+    '';
+    license = licenses.lgpl21Plus;
+    # configure.ac suggests it should work for darwin and mingw as well but not tried yet
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nh2 ];
+  };
+}