我可以在批准的应用程序中启动可执行文件吗?

Can I start an executable in an approved application?

我注意到可以在 Android 上使用 chmod 更改文件的权限,这意味着我们可以轻松地从应用程序执行任何操作:

var runtime = Runtime.GetRuntime();
runtime.Exec("chmod 0755 /my/file").WaitFor();
// Then ProcessBuilder to execute it.

Google Play 商店会接受利用此缺陷的应用程序吗?我找不到任何关于它的文档,但我确认它有效。

实际上,我想包含 ffmpeg 用于太慢而无法使用 MediaCodec 执行的任务。

(我还注意到 Android 框架有时会直接访问 ffmpeg 的本机版本,所以也许我可以直接从 phone 访问它?)

我不确定是否适合 Google 播放。

不过我不认为这是安全问题。您将通过应用程序的自动化执行流程。 我希望下面的例子对你有帮助。 您可以尝试使用以下命令行连接您的设备。

adb shell 

在您的设备上安装 shell 然后您可以尝试查看应用程序文件中的内容(将 com.your.package 替换为可调试 apk 的名称)

ls /data/data/com.your.package

由于您没有良好的权限,此命令将失败。 现在 运行 以下命令。

run-as com.your.package

您现在将以与您的应用程序相同的权限执行您的命令行。 您现在可以重试之前的 ls 命令。它会起作用。但是它不适用于另一个包。

因此,我认为您将使用您的代码执行的命令将以您的应用程序的特权执行。所以我不认为你可以用这种方法提升你的应用程序对文件的特权。