根于 android。程序执行错误"permission denied"

Proot in android. Program execution error "permission denied"

我的程序的可执行文件和库安装在该目录下 BinDir=/data/app/ru.testapp/lib/x86_64/,该目录在SELinux中有执行权限。 程序的其余部分(附加文件)安装在 Enviroment= /data/user/0/ru.testapp/files/enviroment 目录中: bin dev etc lib proc root 运行 sys 系统 usr var。 环境目录在 SELinux 中没有执行权限。 我正在尝试 运行 使用 proot 的应用程序:

proot\
  --link2symlink\
  -w /root\
  -r $Environment \
  -b $BinDir:/bin\
  -b $BinDir:/lib \
  -b /sys\
  -b /system/ \
  -b /apex\
  -b /proc/ \
  -b /dev\
      /bin/test

如您所见,我将 $BinDir“绑定”到 $Enviroment/lib 和 $Enviroment/bin。在这种情况下,在这些目录中执行 SELinux 的权利将丢失,并且我会收到“permisiion denied”错误。绝对没有其他错误,因为在 su 下整个机制都有效。

遇到这种情况怎么办?

我的问题是通过使用 PROOT_UNBUNDLE_LOADER 环境变量集构建 proot 解决的,这样加载程序就位于 SELinux 允许执行的 $BinDir 位置。通常,错误与根加载程序有关。 (Android 10)