44 lines
1.1 KiB
Nix
44 lines
1.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
username,
|
|
...
|
|
}:
|
|
|
|
let
|
|
cfg = config.dov.development.android;
|
|
|
|
mtk-udev-rules = pkgs.writeTextFile {
|
|
name = "mtk-udev-rules";
|
|
destination = "/etc/udev/rules.d/60-mtk.rules";
|
|
text = ''
|
|
# MediaTek BROM (0003), Preloader VCOM (2000/2001), META (6000)
|
|
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", MODE="0666", TAG+="uaccess"
|
|
# Oppo/Realme fastboot + adb
|
|
SUBSYSTEM=="usb", ATTR{idVendor}=="22d9", MODE="0666", TAG+="uaccess"
|
|
|
|
# keep ModemManager's hands off the preloader port
|
|
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
SUBSYSTEM=="tty", ATTRS{idVendor}=="0e8d", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
options.dov.development.android = {
|
|
enable = lib.mkEnableOption "Android and MediaTek flashing tools";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
environment.systemPackages = with pkgs; [
|
|
android-tools
|
|
mtkclient
|
|
usbutils
|
|
];
|
|
|
|
users.users.${username}.extraGroups = [ "dialout" ];
|
|
|
|
services.udev.packages = [ mtk-udev-rules ];
|
|
};
|
|
}
|