# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2021 Canonical Ltd
# Copyright (C) 2022-2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only

# Allow reading and writing to raw input devices

  abi <abi/4.0>,

  # Allow reading for supported event reports for all input devices. See
  # https://www.kernel.org/doc/Documentation/input/event-codes.txt
  @{sys}/devices/**/input@{int}/capabilities/* r,

  @{sys}/devices/**/input/ r,
  @{sys}/devices/**/input@{int}/ r,
  @{sys}/devices/**/input@{int}/event@{int}/ r,
  @{sys}/devices/**/input@{int}/event@{int}/uevent r,
  @{sys}/devices/**/input@{int}/{,**/}properties r,
  @{sys}/devices/**/input@{int}/{,**/}uevent r,
  @{sys}/devices/virtual/input/mice/uevent r,

  @{run}/udev/data/+input:input@{int} r,  # for mouse, keyboard, touchpad
  @{run}/udev/data/c13:@{int}  r,         # for /dev/input/*

  /dev/input/ r,
  /dev/input/event@{int} rw,
  /dev/input/js@{int} rw,
  /dev/input/mice rw,
  /dev/input/mouse@{int} rw,

  include if exists <abstractions/input.d>

# vim:syntax=apparmor
