diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix new file mode 100644 index 000000000000..8d7d2392dfb7 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix @@ -0,0 +1,51 @@ +{ stdenv, rustPlatform, fetchFromGitHub, fetchzip, androidenv, makeWrapper }: +let +version = "2.5"; +apk = stdenv.mkDerivation { + pname = "gnirehtet.apk"; + inherit version; + src = fetchzip { + url = "https://github.com/Genymobile/gnirehtet/releases/download/v${version}/gnirehtet-rust-linux64-v${version}.zip"; + sha256 = "1db0gkg5z8lighhkyqfsr9jiacrck89zmfnmp74vj865hhxgjzgq"; + }; + installPhase = '' + mkdir $out + mv gnirehtet.apk $out + ''; +}; +in +rustPlatform.buildRustPackage { + pname = "gnirehtet"; + inherit version; + + src = fetchFromGitHub { + owner = "Genymobile"; + repo = "gnirehtet"; + rev = "v${version}"; + sha256 = "0wk6n082gnj9xk46n542h1012h8gyhldca23bs7vl73g0534g878"; + }; + sourceRoot = "source/relay-rust"; + cargoSha256 = "0i7f52r697gjw30m8k60hd3y6wsn5lpz419r083a1rhpbinzd26q"; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/gnirehtet \ + --set GNIREHTET_APK ${apk}/gnirehtet.apk \ + --set ADB ${androidenv.androidPkgs_9_0.platform-tools}/bin/adb + ''; + + meta = with stdenv.lib; { + description = "Reverse tethering over adb for Android"; + longDescription = '' + This project provides reverse tethering over adb for Android: it allows devices to use the internet connection of the computer they are plugged on. It does not require any root access (neither on the device nor on the computer). + + This relies on adb, make sure you have the required permissions/udev rules. + ''; + homepage = "https://github.com/Genymobile/gnirehtet"; + license = licenses.asl20; + maintainers = with maintainers; [ symphorien ]; + platforms = platforms.unix; + }; +} + |