termux / proot

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

proot error: ptrace(TRACEME): Operation not permitted #108

Open 0142929 opened 4 years ago

0142929 commented 4 years ago

hi all. i try to install fedora using termux-fedora.sh script, and got error. by way, i can not install any distro, only bare termux works. do anybody knows how to resolve this errors? thanks.

----

All done! Start Fedora with 'startfedora'. Get updates with regular 'dnf update'. $ startfedora proot error: ptrace(TRACEME): Operation not permitted proot error: execve("/usr/bin/env"): Operation not permitted proot info: It seems your kernel contains this bug: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1202161 To workaround it, set the env. variable PROOT_NO_SECCOMP to 1. fatal error: seeproot --help. proot error: can't chmod '/data/data/com.termux/files/usr/tmp/proot-8730-guNUhN': No such file or directory

----

$ export PROOT_NO_SECCOMP=1

-----

` $ startfedora proot error: ptrace(TRACEME): Operation not permitted proot error: execve("/usr/bin/env"): Operation not permitted proot info: possible causes:

----

using docomo(fujitsu) f-04k, android 9.

----

$ uname -a Linux localhost 3.18.120-gc4b7f3a #1 SMP PREEMPT Fri Feb 7 06:12:24 JST 2020 aarch64 Android

0142929 commented 4 years ago

docomo f-04k, was upgraded today to android 10, but nothing changed. and any script or proot-distro give same result. proot error: ptrace(TRACEME): Operation not permitted

so, it seems to me that the problem is in proot and not in android...

michalbednarski commented 4 years ago

ptrace(TRACEME) is very early in proot startup and would indicate that this device won't be able to run proot, though to be sure please check if you're able to use strace in Termux on that device (If strace also fails then proot won't be able to run, if strace works then probably this needs to be fixed on proot side)

0142929 commented 4 years ago

thanks for the answer, i try strace, but do not know how exactly test it in termux.

$ strace ls strace: test_ptrace_get_syscall_info: PTRACE_TRACEME: Operation not permitted strace: ptrace(PTRACE_TRACEME, ...): Operation not permitted strace: PTRACE_SETOPTIONS: Operation not permitted strace: detach: waitpid(5262): No child processes strace: Process 5262 detached $

michalbednarski commented 4 years ago

So strace also doesn't work on that device (otherwise it wouldn't fail on tracing ls), so I think proot won't be able to work there either.

0142929 commented 4 years ago

then strace and proot does not work in this android, but maybe there are any other ways to run other linux distributions without root? or other proot run method...

ghost commented 4 years ago

@0142929 If ptrace() is fully SELinux'ed on your device, then only available method is to use emulators like qemu. It doesn't use special features which can be subject for restrictions on Android.

0142929 commented 4 years ago

it is unlikely that qemu will work in android, but i hope to find something. thanks for answers.

ghost commented 4 years ago

it is unlikely that qemu will work in android

It is available in Termux repo and works with no issues for Android 7.0 - 11.0 (emulation only, no KVM).

0142929 commented 4 years ago

i will try this, thanks

WizardlyBump17 commented 2 years ago

Hello. I had the same issuse here. Im trying to run termux with the BlueStacks

The first error:

proot error: ptrace(TRACEME): Operation not permitted
proot error: execve("/data/data/com.termux/files/usr/bin/tar"): Operation not permitted
proot info: It seems your kernel contains this bug: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1202161
To workaround it, set the env. variable PROOT_NO_SECCOMP to 1.
fatal error: see `proot --help`.

After i set PROOT_NO_SECCOMP to 1:

proot error: execve("/data/data/com.termux/files/usr/bin/tar"): Operation not permitted
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`.

ptrace(TRACEME) is very early in proot startup and would indicate that this device won't be able to run proot, though to be sure please check if you're able to use strace in Termux on that device (If strace also fails then proot won't be able to run, if strace works then probably this needs to be fixed on proot side)

I tried that. Firstly the strace wasnt installed so i installed it and strace works here.

devmsv commented 2 years ago

I'm having this is issue for official proot-distros. strace doesn't work. What's the underlying issue? What kind of ROM/Kernel is needed to make it work? Is there any other workaround?