i have an application that creates a ssh connection tunnel for traffic forwarding. but it’s working perfectly on android 13 and below. but on android 14 when running(executing) the following commands, it raise error 126.
i don’t know what exactly has changed in android 14( permissions or /data/data/ or whatever). the error is unclear, maybe is file not found.
protected static String BASE = "/data/data/com.staf621.ki4a/ki4a";
protected static String BASE_BIN = "/bin";
ssh_return_val = Util.runChainFireCommand(
((key_switch && !enc_ssh_key) ? "" : BASE + BASE_BIN + "/sshpass -p "" + password_text + "" ")
+ BASE + BASE_BIN + "/ssh " + server_text + " -p " + port_number + " -l " + user_text
+ " -NT -g -D " + Util.localSocksPort + (dns_switch?" -L 127.0.0.1:8163:"+dns_server+":53":"")
+ forward_string
+ (key_switch ? " -i "" + BASE + "/id_rsa"" : "")
+ (compress ? " -C" : "")
+ " -o "ProxyCommand " + BASE + BASE_BIN + "/korkscrew"
+ (iptables_switch ? "" : " --ancillaryfile " + BASE + "/sshfd_file")
+ (proxy ? " --proxyhost " + proxy_host
+ " --proxyport " + proxy_port + " --desthost %h --destport %p"
+ " --headerfile " + BASE + "/header_file" + """
: " --directconnection --desthost %h --destport %p"")
+ " -o "KeepAlive yes" -o "ServerAliveInterval 15""
+ " -o "StrictHostKeyChecking=no" -o "GlobalKnownHostsFile=/dev/null"", false, true);
}
Logcat:
[libsuperuser][O][SH*] sh: <stdin>[1]: /data/data/com.staf621.ki4a/ki4a/bin/sshpass: No such file or directory
[libsuperuser][O][SH-] 126
[libsuperuser][C][SH%] END
I have attached an image of /data/data/packagename/ files and contents and permissions of the binary files.
on android<=13, it works perfectly, but on api lvl 34(android 14) it catches error 126