Merge pull request #59427 from nh2/idevicerestore
Add libirecovery and idevicerestore
This commit is contained in:
commit
f4af5f3899
@ -34,7 +34,6 @@ stdenv.mkDerivation rec {
|
|||||||
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
|
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--disable-static"
|
|
||||||
"--disable-openssl"
|
"--disable-openssl"
|
||||||
"--without-cython"
|
"--without-cython"
|
||||||
];
|
];
|
||||||
|
54
pkgs/development/libraries/libirecovery/default.nix
Normal file
54
pkgs/development/libraries/libirecovery/default.nix
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{ stdenv, fetchFromGitHub, automake, autoconf, libtool, pkgconfig
|
||||||
|
, libusb
|
||||||
|
, readline
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "libirecovery";
|
||||||
|
version = "2019-01-28";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "libimobiledevice";
|
||||||
|
repo = pname;
|
||||||
|
rev = "5da2a0d7d60f79d93c283964888c6fbbc17be1a3";
|
||||||
|
sha256 = "0fqmr1h4b3qn608dn606y7aqv3bsm949gx72b5d6433xlw9b23n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
|
libtool
|
||||||
|
pkgconfig
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
libusb
|
||||||
|
readline
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
|
||||||
|
|
||||||
|
# Packager note: Not clear whether this needs a NixOS configuration,
|
||||||
|
# as only the `idevicerestore` binary was tested so far (which worked
|
||||||
|
# without further configuration).
|
||||||
|
configureFlags = [
|
||||||
|
"--with-udevrulesdir=${placeholder ''out''}/lib/udev/rules.d"
|
||||||
|
''--with-udevrule="OWNER=\"root\", GROUP=\"myusergroup\", MODE=\"0660\""''
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/libimobiledevice/libirecovery;
|
||||||
|
description = "Library and utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, and Linux";
|
||||||
|
longDescription = ''
|
||||||
|
libirecovery is a cross-platform library which implements communication to
|
||||||
|
iBoot/iBSS found on Apple's iOS devices via USB. A command-line utility is also
|
||||||
|
provided.
|
||||||
|
'';
|
||||||
|
license = licenses.lgpl21;
|
||||||
|
# Upstream description says it works on more platforms, but packager hasn't tried that yet
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ nh2 ];
|
||||||
|
};
|
||||||
|
}
|
58
pkgs/tools/misc/idevicerestore/default.nix
Normal file
58
pkgs/tools/misc/idevicerestore/default.nix
Normal file
@ -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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -3839,6 +3839,7 @@ in
|
|||||||
|
|
||||||
ifuse = callPackage ../tools/filesystems/ifuse { };
|
ifuse = callPackage ../tools/filesystems/ifuse { };
|
||||||
ideviceinstaller = callPackage ../tools/misc/ideviceinstaller { };
|
ideviceinstaller = callPackage ../tools/misc/ideviceinstaller { };
|
||||||
|
idevicerestore = callPackage ../tools/misc/idevicerestore { };
|
||||||
|
|
||||||
inherit (callPackages ../tools/filesystems/irods rec {
|
inherit (callPackages ../tools/filesystems/irods rec {
|
||||||
stdenv = llvmPackages_38.libcxxStdenv;
|
stdenv = llvmPackages_38.libcxxStdenv;
|
||||||
@ -11833,6 +11834,8 @@ in
|
|||||||
inherit (darwin.apple_sdk.frameworks) Carbon;
|
inherit (darwin.apple_sdk.frameworks) Carbon;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
libirecovery = callPackage ../development/libraries/libirecovery { };
|
||||||
|
|
||||||
libivykis = callPackage ../development/libraries/libivykis { };
|
libivykis = callPackage ../development/libraries/libivykis { };
|
||||||
|
|
||||||
liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
|
liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user