75 lines
1.8 KiB
Nix
75 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchgit,
|
|
jdk_headless,
|
|
gradle_8,
|
|
makeWrapper,
|
|
bashNonInteractive,
|
|
}:
|
|
let
|
|
# "Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0."
|
|
gradle = gradle_8;
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "apksigner";
|
|
# Major version is derived from the API version of the corresponding Android release.
|
|
# Patch version is derived from the release number.
|
|
# For example, Android 15 had releases starting at r24 -> r30 is patch 6.
|
|
version = "35.0.6";
|
|
|
|
src = fetchgit {
|
|
# use pname here because the final jar uses this as the filename
|
|
name = pname;
|
|
url = "https://android.googlesource.com/platform/tools/apksig";
|
|
rev = "refs/tags/android-15.0.0_r30";
|
|
hash = "sha256-f/PggxvBv8nYUyL9Ukd4YVpunpRWbLL5UYsYhsiDWRE=";
|
|
};
|
|
|
|
mitmCache = gradle.fetchDeps {
|
|
inherit pname;
|
|
data = ./deps.json;
|
|
};
|
|
|
|
__darwinAllowLocalNetworking = true;
|
|
|
|
doCheck = true;
|
|
|
|
nativeBuildInputs = [
|
|
gradle
|
|
makeWrapper
|
|
];
|
|
|
|
buildInputs = [
|
|
# required for startup script generated by Gradle
|
|
bashNonInteractive
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/opt
|
|
tar xf build/distributions/apksigner.tar
|
|
mv apksigner $out/opt
|
|
mkdir -p $out/bin
|
|
makeWrapper $out/opt/apksigner/bin/apksigner $out/bin/apksigner \
|
|
--set JAVA_HOME ${jdk_headless.home}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = {
|
|
description = "Command line tool to sign and verify Android APKs";
|
|
mainProgram = "apksigner";
|
|
homepage = "https://developer.android.com/tools/apksigner";
|
|
downloadPage = "https://android.googlesource.com/platform/tools/apksig/";
|
|
license = lib.licenses.asl20;
|
|
maintainers = with lib.maintainers; [
|
|
linsui
|
|
fliegendewurst
|
|
];
|
|
teams = [ lib.teams.android ];
|
|
platforms = lib.platforms.unix;
|
|
};
|
|
}
|