apparmor.d/apparmor.d/groups/freedesktop/upowerd
Alexandre Pujol 175e2c3dc3
feat(profile): ensure all access to udev/data is documented.
Cleanup some rule to wide in udev/data
2025-08-11 16:16:35 +02:00

67 lines
2.5 KiB
Text

# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2018-2022 Mikhail Morfikov
# Copyright (C) 2022-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
include <tunables/global>
@{exec_path} = @{lib}/{,upower/}upowerd
profile upowerd @{exec_path} flags=(attach_disconnected) {
include <abstractions/base>
include <abstractions/bus-system>
include <abstractions/bus/org.bluez>
include <abstractions/bus/org.freedesktop.login1>
include <abstractions/bus/org.freedesktop.PolicyKit1>
include <abstractions/devices-usb>
network netlink raw,
#aa:dbus own bus=system name=org.freedesktop.UPower
@{exec_path} mr,
/etc/UPower/ r,
/etc/UPower/UPower.conf r,
/var/lib/upower/ r,
/var/lib/upower/history-*.dat{,.*} rw,
@{run}/udev/data/ r, # Lists all udev data files
@{run}/udev/data/+acpi:* r, # Exposes ACPI objects (power buttons, batteries, thermal)
@{run}/udev/data/+hid:* r, # For Human Interface Device (mice, controllers, drawing tablets, scanners)
@{run}/udev/data/+i2c:* r, # For Inter-Integrated Circuit, low-speed peripherals (sensors, EEPROMs, etc.)
@{run}/udev/data/+input:input@{int} r, # for mouse, keyboard, touchpad
@{run}/udev/data/+pci:* r, # Identifies all PCI devices (CPU, GPU, Network, Disks, USB, etc.)
@{run}/udev/data/+platform:* r, # Identifies onboard devices (laptop/board model, power controllers, thermal sensors)
@{run}/udev/data/+serio:* r, # for serial mice
@{run}/udev/data/+power_supply:* r, # For power supply devices (batteries, AC adapters, USB chargers)
@{run}/udev/data/+sound:card@{int} r, # for sound card
@{run}/udev/data/c10:@{int} r, # for non-serial mice, misc features
@{run}/udev/data/c13:@{int} r, # for /dev/input/*
@{run}/udev/data/c116:@{int} r, # for ALSA
@{att}/@{run}/systemd/inhibit/@{int}.ref rw,
@{sys}/bus/hid/devices/ r,
@{sys}/class/input/ r,
@{sys}/class/leds/ r,
@{sys}/class/power_supply/ r,
@{sys}/class/sound/ r,
@{sys}/devices/ r,
@{sys}/devices/**/capabilities/* r,
@{sys}/devices/**/leds/**/brightness rw,
@{sys}/devices/**/leds/**/brightness_hw_changed r,
@{sys}/devices/**/leds/**/max_brightness r,
@{sys}/devices/**/power_supply/**/* r,
@{sys}/devices/**/uevent r,
@{sys}/devices/virtual/dmi/id/product_name r,
@{sys}/devices/virtual/misc/uhid/*/input/input@{int}/name r,
/dev/input/event* r,
include if exists <local/upowerd>
}
# vim:syntax=apparmor