FliegendeWurst dc491896af apksigner: 34.0.5-unstable-2024-03-06 -> 35.0.6-unstable-2024-11-15
This changes the package to the upstream's distribution archive.
2025-04-25 22:37:42 +05:30

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;
};
}