48 lines
1.3 KiB
Nix
48 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;
|
||
|
};
|
||
|
}
|