luci-mod-admin-full: change supports_reset() test for factory reset
authorFlorian Eckert <fe@dev.tdt.de>
Wed, 29 Nov 2017 15:51:08 +0000 (16:51 +0100)
committerYousong Zhou <yszhou4tech@gmail.com>
Mon, 7 May 2018 12:36:40 +0000 (20:36 +0800)
The check "supports_reset" only covers /proc/mtd partitions. If we have
this the commands checks for names like ubi or rootfs_data. If this is
found the system is possible for a factory reset.  But on x86 the
situation is different.  We have no /proc/mtd partitions because this
system do not use a bare metall flash.

To solve this issue check if we have an overlay and if so we could do a
factory reset. This could be applied for system which uses bare metal
flash and system which uses FTL or harddisks.

Jffs2reset is the current command used for factory reset.  It will try
to find volume "rootfs_data" and if it's mounted will delete all files
under directory /overlay

luci-mod-admin-mini also has check for reset available, but we leave it
alone for now as it uses "mtd -r erase rootfs_data"

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
modules/luci-mod-admin-full/luasrc/controller/admin/system.lua

index 5478afa3e6e2eab107459fb6f79e95dc9c185859..51f9d9d7b6386f2cc777f5a04c7f5cbb5b8d6566 100644 (file)
@@ -195,7 +195,7 @@ local function supports_sysupgrade()
 end
 
 local function supports_reset()
-       return (os.execute([[grep -sqE '"rootfs_data"|"ubi"' /proc/mtd]]) == 0)
+       return (os.execute([[grep -sq "^overlayfs:/overlay / overlay " /proc/mounts]]) == 0)
 end
 
 local function storage_size()