I have a rooted custom device (Android 8.0), I can use
adb and run
su and do whatever I want in the shell. But SuperSU or any other app cannot find root. I have made a symlink from
/system/bin/su but it still does not work.
/system/xbin/su is a normal
su binary that's shipped with
engineering builds of ROMs. It gets you root access by making syscall
setuid. On the other hand, with SuperSU or Magisk root, a special binary is placed at
/system/bin/su (or some other path) which works quite differently. For details see How Magisk works?.
So, with only a working
/system/xbin/su executable, your device isn't essentially "rooted". SuperSU or Magisk won't work with this binary. And so the apps cannot get root access.