将二进制文件公开给其他 Android 个应用程序
Expose a binary to other Android apps
我希望 git
在我的 android 设备上作为 CLI 工具可用,可通过本地终端应用程序使用。我已经为 aarch64-linux-android
成功交叉编译了 git
,如果我使用 root shell 将它移动到设备上的 ext4
文件系统之一,我可以成功调用它.
但是,以root 身份安装和使用它是不可取的。我通常让我的设备没有root权限,只是暂时启用root权限来做这样的实验。以 root 身份安装还不错,但似乎只有 ext4
安装的文件系统 read/write 位于终端应用程序无法读取的位置,因此我不能以非 root 用户身份使用它,这是一个交易破坏者 *.
如果可能的话,我更愿意将它打包为 APK,这样它就可以作为普通用户进行旁加载。我还希望能够从终端应用程序调用它。如果我必须手动调整 $PATH
,那没关系,但如果 APK 可以将其放置在 $PATH
上的某处或在安装时让 OS 扩展 $PATH
,则会加分。
* (我知道我可以将 /system 重新挂载为 r/w 以将其安装为 root,这将使它可用于所有应用程序。我不想修改 /system因为那样的话“恢复出厂设置”不能保证让我回到工作状态。我知道这是一个相对安全的改变。如果这真的不可能,我会这样做,但 APK 会更好)
我认为你做不到。 Android 旨在防止此类事情发生:每个 APK 只能 运行 在一个(有点)隔离的容器中。
APK 无法在根文件夹中安装可执行文件。修改 $PATH
也不行(如果系统允许你修改的话),因为每个 APK 由不同的用户执行,因此环境会不同。我什至不确定您是否可以在普通文件夹中将文件标记为可执行文件。
一个解决方法是通过 ContentResolver
.
使可执行文件的路径(如果您可以将文件标记为可执行文件)可用。
我希望 git
在我的 android 设备上作为 CLI 工具可用,可通过本地终端应用程序使用。我已经为 aarch64-linux-android
成功交叉编译了 git
,如果我使用 root shell 将它移动到设备上的 ext4
文件系统之一,我可以成功调用它.
但是,以root 身份安装和使用它是不可取的。我通常让我的设备没有root权限,只是暂时启用root权限来做这样的实验。以 root 身份安装还不错,但似乎只有 ext4
安装的文件系统 read/write 位于终端应用程序无法读取的位置,因此我不能以非 root 用户身份使用它,这是一个交易破坏者 *.
如果可能的话,我更愿意将它打包为 APK,这样它就可以作为普通用户进行旁加载。我还希望能够从终端应用程序调用它。如果我必须手动调整 $PATH
,那没关系,但如果 APK 可以将其放置在 $PATH
上的某处或在安装时让 OS 扩展 $PATH
,则会加分。
* (我知道我可以将 /system 重新挂载为 r/w 以将其安装为 root,这将使它可用于所有应用程序。我不想修改 /system因为那样的话“恢复出厂设置”不能保证让我回到工作状态。我知道这是一个相对安全的改变。如果这真的不可能,我会这样做,但 APK 会更好)
我认为你做不到。 Android 旨在防止此类事情发生:每个 APK 只能 运行 在一个(有点)隔离的容器中。
APK 无法在根文件夹中安装可执行文件。修改 $PATH
也不行(如果系统允许你修改的话),因为每个 APK 由不同的用户执行,因此环境会不同。我什至不确定您是否可以在普通文件夹中将文件标记为可执行文件。
一个解决方法是通过 ContentResolver
.