termux / proot

An chroot-like implementation using ptrace.
https://wiki.termux.com/wiki/PRoot
Other
751 stars 161 forks source link

[QEMU] proot not found ld-linux.so #158

Open urain39 opened 3 years ago

urain39 commented 3 years ago

qemu-$arch's libraries may be confused with host libraries when $arch equals $(uname -m).

proot info: vpid 1: translate("/" + "/bin/su")
proot info: vpid 1:          -> "/data/data/com.termux/files/home/alpine64/bin/busybox"
proot info: '/data/data/com.termux/files/home/alpine64/bin/busybox' is a host ELF
proot info: vpid 1: translate("/" + "/host-rootfs/lib/ld-musl-aarch64.so.1")
proot error: execve("/bin/su"): No such file or directory
proot info: possible causes:
  * the program is a script but its interpreter (eg. /bin/sh) was not found;
  * the program is an ELF but its interpreter (eg. ld-linux.so) was not found;
  * the program is a foreign binary but qemu was not specified;
  * qemu does not work correctly (if specified);
  * the loader was not found or doesn't work.
fatal error: see `proot --help`.

I know it may be meaningless, but for some people it may still be used.

urain39 commented 3 years ago

I have checked the related source is_host_elf and set PROOT_FORCE_FOREIGN_BINARY=1, and it works. But I would like to ask if it is possible to distinguish between two binaries by default? Thanks.