首页 > 解决方案 > 向其他 Android 应用程序公开二进制文件

问题描述

我想git在我的 android 设备上作为 CLI 工具使用,可以通过本地终端应用程序使用。我已经成功交叉编译gitaarch64-linux-android如果我使用 root shell 将它移动到ext4设备上的文件系统之一,我可以成功调用它。

但是,不希望使用 root 安装和使用它。我通常让我的设备无根,只是暂时启用根来做这样的实验。以 root 身份安装还不错,但似乎只有ext4读/写安装的文件系统位于终端应用程序无法读取的位置,所以我不能将它用作非 root 用户,这是一个交易破坏者 *.

如果可能,我更愿意将其打包为 APK,以便可以作为普通用户侧载。我还希望能够从终端应用程序调用它。如果我必须手动调整$PATH,那很好,但如果 APK 可以将其放置在某个位置或在安装$PATH时扩展操作系统,则可以加分。$PATH

* (我知道我可以将 /system 重新安装为 r/w 以将其安装为 root,这将使其可用于所有应用程序。我不想修改 /system,因为这样不能保证“恢复出厂设置”给我带来回到工作状态。我知道这将是一个相对安全的更改。如果这真的不可能,我会这样做,但 APK 会更好)

标签: androidapk

解决方案


我不认为你能做到这一点。Android 旨在防止此类事情发生:每个 APK 只能在(某种程度上)隔离的容器中运行。

APK 无法在根文件夹中安装可执行文件。修改$PATH也不会起作用(如果系统甚至允许您修改它),因为每个 APK 是由不同的用户执行的,因此环境会有所不同。我什至不确定您是否可以将文件标记为常见文件夹上的可执行文件。

一种解决方法是使可执行文件的路径(如果您可以将文件标记为可执行文件)通过ContentResolver.


推荐阅读