如何在没有 root 的情况下从我的应用程序调用 Smartbear ssh?

How do I invoke Smartbear ssh from my application without root?

我正在尝试通过 popen() 从我的 C++ NDK 应用程序调用 ssh 执行 ssh 的命令,该命令在其他平台上运行良好。在 Android 读取管道时出现错误:

sh: ssh: not found

因此,我使用了我安装的Smartbear的完整路径ssh,但仍然失败:

sh: /data/data/berserker.android.apps.sshdroid/dropbear/ssh: not found

然后我尝试从 ADB shell,但该命令仅在我先 suroot 时才有效。所以我想我没有权限查看安装了 ssh 的文件系统。我的应用程序可以请求 su 权限吗?如果可以,api 是什么,这会解决调用 ssh 的失败吗?

我应该如何通过 popen() 从我的应用程序中调用 ssh?我如何控制权限以及我能否以某种方式将 ssh 放入 PATH?我可以用不同的方式安装 Smartbear,这样就不需要 root 来访问 ssh?

简而言之:如果您看到此错误,则不能。

除非应用 B 明确允许(通过 https://developer.android.com/training/secure-file-sharing/index.html),否则应用 A 无法访问应用 B 的数据。