Closed GJoe2 closed 2 years ago
Your last uname -a
just shows that your phone is using 64 bit CPU, But your Operating System is in 32 bit instead of 64 bit.
I can also say that the main problem is at your operating system which is using 32 bit Binaries instead of what you want.
You may use something like qemu-user-aarch64
. You may contact to Manufacter regarding this issue.
@Yonle No, this is normal 64 bit Android OS. Please read the issue carefully, especially stats:
[ro.product.cpu.abi]: [arm64-v8a]
[ro.product.cpu.abilist]: [arm64-v8a,armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: [arm64-v8a]
Btw, nothing to do with Termux either. That's entirely setup issue.
@Gurren-Joestar You have installed 32 bit variant of Arch Linux, that's why the issue happens. Install 64 bit and error will gone.
You may try proot-distro for setting up Arch or other distributions under proot. Also check the return value of dpkg --print-architecture
and make sure it is aarch64
. If there is returned arm
or something like, then you may need to completely re-install Termux (https://f-droid.org/repo/com.termux_117.apk).
$ dpkg --print-architecture
arm
installed 32 bit variant of Arch Linux
Was this the key line?
proot error: execve("/system/bin/sh"): Bad address
If so, please explain how.
I studied the output and still cannot phantom how you knew this is a NOT a mixed architecture issue.
I studied the output and still cannot phantom how you knew this is a NOT a mixed architecture issue.
Do not read between lines. In my first comment there is no statement that this is not mixed architecture issue.
This is a standard 64 bit installation of Android OS (see ABIs in stats), but Termux environment is somehow 32bit. The only ways how this is possible are:
Edit 2 : I installed first Termux in a old device (Samsung j7 prime - arm32 bits), make the back up (with google play version), later I bought a new device which is the currently Im using, I remeber I tried to use the old backups on my new device (arm64 with fdroid) but cant tell or remember if it works or not
32 bit backup won't automatically become 64 bit. If you really restored Termux from made backup, this falls under case
- Custom bootstrap installation
accidentally pick armeabi-v7a build instead of armv8-a or universal
I have not tried the debug builds yet; You can choose the architecture download at https://github.com/termux/termux-app/actions/workflows/debug_build.yml
If there is returned arm or something like, then you may need to completely re-install Termux
$ uname -m
aarch64
Thanks, reinstalling Termux was the solution for proot issue and Termux architecture version
Problem description
Toolbox cant be executed due to proot being 32 bits, similar issues with other custom distros (i.e. https://github.com/Hax4us/TermuxAlpine https://github.com/TermuxArch/TermuxArch)![image](https://user-images.githubusercontent.com/71229258/138110622-3d8504bc-79d8-4697-9f7a-17be9b1deb8f.png)
CPU and ABI seems to be 64 bits (aarch64 - arm64-v8a), I only suspect the OS version could be 32 bits, but Im not sure how to know that, if my OS is 32 bits I would like to know how to get a proot x64 so toolbox works and proot custom distros works so.
Steps to reproduce
install proot execute toolbox inside proot
Expected behavior
toolbox works
Additional information
more information:
<<< System >>>
Model: SM-A515F Board: exynos9611
<<< CPU >>>
Scaling Governor: schedutil Supported ABIs: arm64-v8a, armeabi-v7a, armeabi Supported 32-bit ABIs: armeabi-v7a, armeabi Supported 64-bit ABIs: arm64-v8a
<<< Android >>>
Android Version: 11 API Level: 30 Kernel Architecture: aarch64 Kernel Version: 4.14.113-22145712
Aditionally I would like to know why
uname -m
outputarmv8l
instead of aarch64, using other terminals apps like pydroid give me this result:Alternative Using TermOne Plus -terminal emulator (https://gitlab.com/termapps/termoneplus)
EDIT 1: