-
-
Notifications
You must be signed in to change notification settings - Fork 14k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #59427 from nh2/idevicerestore
Add libirecovery and idevicerestore
- Loading branch information
Showing
4 changed files
with
115 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters