#!/sbin/openrc-run # B12Q: eMMC write policy check after switch_root (stage0 left only userdata RW) + /tmp on tmpfs (no eMMC writes for scratch). description="Aurora eMMC RO policy check" depend() { before aurora-firmware aurora-modem aurora-wifi; } start() { ebegin "Checking eMMC RO policy" ud=; for p in /sys/class/block/mmcblk0p*; do [ "$(sed -n 's/^PARTNAME=//p' $p/uevent)" = userdata ] && ud=/dev/$(basename $p); done bad=; for x in /dev/mmcblk0p* /dev/mmcblk0boot0 /dev/mmcblk0boot1; do [ "$x" = "$ud" ] && continue; [ "$(blockdev --getro $x)" = 1 ] || bad="$bad $x"; done [ -z "$bad" ] || { eend 1 "NOT RO:$bad"; return 1; } grep -q " /tmp tmpfs" /proc/mounts || mount -t tmpfs -o nosuid,nodev,mode=1777,size=64m tmpfs /tmp echo "<5>[aurora-ro] all eMMC devices RO except $ud (root)" > /dev/kmsg; eend 0 }