| 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 |