The reason is the file permission for battd is somehow failed to set. I fixed that by manually set the permission in the terminal.
For ppl who has the same problem but don't like to go into the command terminal, here's a GUI way:
You need the root explorer or es file explorer. First mount the system folder as writable, then navigate to the file /system/bin/battd, long press and select permisson or properties. then set the permisson to: [user:rwx, group:r-x, other: r-x] (r:read,w:write,x:execute).
Now reboot, done, enjoy the fix.