blob: ef33a0561a0fc46f152e31b16e13d60c79fdc9ff [file] [log] [blame]
service mmd /system/bin/mmd
class core
user mmd
group mmd system
critical
# For calling swapon syscall
capabilities SYS_ADMIN
disabled
on boot
# Allow mmd to run mkswap on zram device
chown root mmd /dev/block/zram0
chmod 0664 /dev/block/zram0
# Allow mmd to update zram disk size
chown root mmd /sys/block/zram0/disksize
chmod 0664 /sys/block/zram0/disksize
chown root mmd /sys/block/zram0/recompress
chmod 0220 /sys/block/zram0/recompress
chown root mmd /sys/block/zram0/writeback_limit
chmod 0664 /sys/block/zram0/writeback_limit
# /sys/block/zram0/idle and /sys/block/zram0/writeback are used by the
# system server managing zram writeback if mmd is disabled. This is
# duplicated as /system/core/rootdir/init.rc. But updating the same
# permission is safe to do.
chown root system /sys/block/zram0/idle
chmod 0220 /sys/block/zram0/idle
chown root system /sys/block/zram0/writeback
chmod 0220 /sys/block/zram0/writeback
on property:sys.boot_completed=1
# Copy AConfig flag value to "mmd.enabled_aconfig" system property because
# AConfig flag does not support init "on property" trigger.
# mmd service starts only if AConfig flag is enabled when boot_completed.
# Copying the value on boot_completed once is enough because AConfig is
# static during a device lifetime.
exec /system/bin/mmd --set-property
on property:mmd.enabled_aconfig=true
# Enable mmd daemon if the system property copied from AConfig flag by
# "/system/bin/mmd --set-property" is enabled.
enable mmd