The need for `execvp` wrapper
What it's all about
Right now, termux-exec only wraps execve.
env however, uses execvp to execute external programs.
https://github.com/coreutils/coreutils/blob/a94a551ee031e0ff07d707f867cb08a8be83e78c/src/env.c#L921
The man for exec(3) does say that:
The exec() family of functions replaces the current process image with a new process image. The functions described in this manual page are layered on top of execve(2).
However, it refers to execve as a system call, not as a library function.
What's broken
Here's a simple test to show inconsistency between ./test.sh and env ./test.sh
That should not happen.
On my system,
/bin/sh leads to /system/bin/sh.
It shows that the parameters passed to execvp are not altered.
There is a pull already to fix this and debs are attached. I'll get back to it after plugin app updates, some stuff remains to be completed.
https://github.com/termux/termux-exec/pull/24#issuecomment-1873059748