I find solution, API29+ have more "feature": Removed execute permission for app home directory
The workaround is to rename the executable from "iperf" to "libiperf.so", and create "lib" directory, make "arm64-v8a" subdirectory and put "libiperf.so" there.
Then you can execute iperf
Java.Lang.Process processIperf = Java.Lang.Runtime.GetRuntime().Exec(ApplicationInfo.NativeLibraryDir + "/libiperf.so -v");
Java.IO.BufferedReader bufferedReader = new Java.IO.BufferedReader(new Java.IO.InputStreamReader(processIperf.InputStream));
For more details and discussions, please go to the internet. No decent solution, there are only more workarounds;)