47 lines
1.3 KiB
Nix
47 lines
1.3 KiB
Nix
{
|
|
lib,
|
|
swiftPackages,
|
|
fetchFromGitHub,
|
|
stdenv,
|
|
}:
|
|
|
|
stdenv.mkDerivation {
|
|
pname = "smc-fuzzer";
|
|
version = "0-unstable-2020-12-23";
|
|
|
|
src = fetchFromGitHub {
|
|
repo = "smc-fuzzer";
|
|
owner = "theopolis";
|
|
rev = "ed60c4efeddea8a9778a976c49c650eee3840eac";
|
|
hash = "sha256-FyiFSVeO46UnBrpC8AhSuGe7alo37pT8J1qQWGPqV2U=";
|
|
};
|
|
|
|
buildInputs = [ swiftPackages.apple_sdk.frameworks.AppKit ];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm 755 smc -t $out/bin
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = {
|
|
description = "Apple SMC (System Management Controller) API fuzzer";
|
|
longDescription = ''
|
|
smc-fuzzer uses the AppleSMC IOKit interface and a userland API for
|
|
interacting with the System Management Controller (Mac embedded
|
|
controllers). The tool focuses on the SMC key/value API.
|
|
|
|
smc-fuzzer is not just useful for fuzzing the SMC itself: it can also be
|
|
used to explicitly control or query the SMC. That makes it useful in
|
|
system management, e.g. controlling and querying the charge status of an
|
|
Apple laptop.
|
|
'';
|
|
homepage = "https://github.com/theopolis/smc-fuzzer";
|
|
license = lib.licenses.gpl2Plus;
|
|
maintainers = with lib.maintainers; [ hraban ];
|
|
mainProgram = "smc";
|
|
platforms = lib.platforms.darwin;
|
|
};
|
|
}
|