Question Will a arm64-v8a app run in armeabi-v7a system if the SOC is Arm cortex A55 quad core that supports arm64-v8a?

reaper89971

Prominent
Jun 2, 2023
164
5
585
The device is a 32inch ACER smart tv V pro series,
16gb of storage,
1.5gb of ram,
quad core arm cortex A55,
arm mali mp2 gpu i think, not sure,


It is running android 11 SDK 30

The SOC is a Realtek RTD2841A, It was advertised as a 64 bit processor, Arm Cortex A55 quad core,
so i assumed it was arm64-v8a compatible... and backwards compatible with armeabi-v7a.

I checked the system information using a windows app called Android TV TOOLs V3. It list the ABI as armeabi-v7a cause it is a cheap android google tv.

I want to run an app called King Root to root the TV, That runs on arm64-v8a,armeabi,x86,x86_64,nodil etc but it does not say armeabi-v7a

So if the SOC officially supports arm64-v8a will the app run or will it not run. I don't want to run an app that is in the wrong architecture for my system.

My goal is to get a form of linux on the system but it being armeabi-v7a makes things very difficult. From what i understand i would have to install an emulator to run the arm64-v8a.

Would i need to install an emulator to run arm64-v8a apps?

Thus far i have replaced the capacitors with low esr capacitors
upgraded the cooling of the tv with a 92mm noctuafan and on and off switch
replaced the thermal compound with high quality thermal paste
Thermal glued a heat sink to there heat sink making a larger heat sink.
Added emi filter plug so i can use a regular high quality PC Power cord.
installed Fdroid,installed termux,installed termux x11, installed root-repo,
Ran update and upgrade, then stopped.
 
ARMv7-a architecture is an older 32-bit ARM. In that architecture there were a number of options, e.g., NEON. ARmv8-a (a 64-bit architecture) is "sort of" a superset of ARMv7-a in that it has a compatibility mode which can dumb down to ARMv7-a. That compatibility mode makes support of all ARMv7-a options mandatory, e.g., the ARMv8-a compatibility mode must support NEON. The EABI is just a software calling convention.

ARMv8-a cannot just run ARMv7-a code. You have to have support in the kernel, you have to have any user space libraries, and user space linking tools, so on. Technically, one could add ARMv7-a emulation or even a compatibility mode environment, but that is a lot tougher than it sounds since it is basically an entire operating system's support.

ARMv7-a won't be able to run ARMv8-a code or architecture. All ARMv7-a could hope to do (an emulator would be terribly slow) is to run ARMv7-a code designed to run in an ARMv8-a compatibility mode CPU.

Incidentally, the part which makes ARMv8-a a superset of ARMv7-a is the fact that in ARMv7-a compatibility mode there is an instruction used to put the ARMv7-a device back into ARMv8-a mode (and no ARMv7-a has that instruction).

It would be difficult to run ARMv7-a on ARMv8-a, but possible. The other way around is not something which would be practical even if you could get around other issues.
 
  • Like
Reactions: reaper89971
ARMv7-a architecture is an older 32-bit ARM. In that architecture there were a number of options, e.g., NEON. ARmv8-a (a 64-bit architecture) is "sort of" a superset of ARMv7-a in that it has a compatibility mode which can dumb down to ARMv7-a. That compatibility mode makes support of all ARMv7-a options mandatory, e.g., the ARMv8-a compatibility mode must support NEON. The EABI is just a software calling convention.

ARMv8-a cannot just run ARMv7-a code. You have to have support in the kernel, you have to have any user space libraries, and user space linking tools, so on. Technically, one could add ARMv7-a emulation or even a compatibility mode environment, but that is a lot tougher than it sounds since it is basically an entire operating system's support.

ARMv7-a won't be able to run ARMv8-a code or architecture. All ARMv7-a could hope to do (an emulator would be terribly slow) is to run ARMv7-a code designed to run in an ARMv8-a compatibility mode CPU.

Incidentally, the part which makes ARMv8-a a superset of ARMv7-a is the fact that in ARMv7-a compatibility mode there is an instruction used to put the ARMv7-a device back into ARMv8-a mode (and no ARMv7-a has that instruction).

It would be difficult to run ARMv7-a on ARMv8-a, but possible. The other way around is not something which would be practical even if you could get around other issues.
Thank you for your reply
I don't fully understand everything you said, I will have to read it slowly and do some searching around.

This Smart TV is my first android device other than a few really cheap smart phones in the past

I just think its strange that they took a quad core Arm Cortex A55 and then dumbed it down to 32bit ABI to save money i guess. I read that is done in cheap devices.

Thank you again
 
Still trying to turn a TV into a PC?

As has been said elsewhere, why not just mount a mini PC tot he back of the TV?
An actual PC.....
Thanks for your reply
I currently have 3 pcs so i don't really need another one.

I thought it would be fun to try to get the tv to be like a mini pc.

I am having a strange problem with the tv. When i run a command in termux the hdmi ports stop working. I don't know if there shorting or what. The hdmi sees my pc that i have connected but the screen is black.

Anyone know of a way to add a region to android 11 sdk 30? The TV is an import from India and there is a English language that i can select but there is not United states region that i can select. So there is a conflict with my google account the region i think. When i sign in to google account it keeps telling me to verify again and again even though i enter my password.

Is there a way to add a region to tv. Or set it to a universal region or something. Cause i don't have full access to my google account it seems on the TV and i suspect there is a region conflict.

Also another funny thing is that i cannot go to toms hardware forum and post anything using the tv. The TVS current region is set to India.

I thought about setting it to Great Britian instead but i don't think it will resolve the issue i am having.

If i could i would completely erase the os and install a new one to fix the problem if possible once i become root.
 
Thank you for your reply
I don't fully understand everything you said, I will have to read it slowly and do some searching around.

This Smart TV is my first android device other than a few really cheap smart phones in the past

I just think its strange that they took a quad core Arm Cortex A55 and then dumbed it down to 32bit ABI to save money i guess. I read that is done in cheap devices.

Thank you again

ARMv7-a is 32-bit. ARMv8-a is 64-bit with a compatibility mode for 32-bit. In order to support 32-bit in compatibility mode you must essentially put in the guts of an entire 32-bit operating system.

When 64-bit ARMv8-a first came out all of the existing code in the world was still 32-bit ARMv7-a. Companies transitioning would keep the processor in 32-bit compatibility mode for anything they were not working on. The biggest and longest running 32-bit compatibility mode is in the boot chain. Nobody had 64-bit ARM bootloaders and boot chains, and even today a lot of 64-bit systems use 32-bit mode for boot. It is once boot exits and the Linux kernel loads that it transitions to 64-bit. So once Linux is running there is virtually no 32-bit support unless you add it yourself (and that gets complicated).

I expect most A55 devices to boot in 32-bit compatibility mode, but to run 64-bit when the Linux kernel loads (and Android uses the Linux kernel; it's all the other files which differ from plain Linux). To install a 32-bit application isn't particularly practical on any ARMv8-a.
 
  • Like
Reactions: reaper89971
ARMv7-a is 32-bit. ARMv8-a is 64-bit with a compatibility mode for 32-bit. In order to support 32-bit in compatibility mode you must essentially put in the guts of an entire 32-bit operating system.

When 64-bit ARMv8-a first came out all of the existing code in the world was still 32-bit ARMv7-a. Companies transitioning would keep the processor in 32-bit compatibility mode for anything they were not working on. The biggest and longest running 32-bit compatibility mode is in the boot chain. Nobody had 64-bit ARM bootloaders and boot chains, and even today a lot of 64-bit systems use 32-bit mode for boot. It is once boot exits and the Linux kernel loads that it transitions to 64-bit. So once Linux is running there is virtually no 32-bit support unless you add it yourself (and that gets complicated).

I expect most A55 devices to boot in 32-bit compatibility mode, but to run 64-bit when the Linux kernel loads (and Android uses the Linux kernel; it's all the other files which differ from plain Linux). To install a 32-bit application isn't particularly practical on any ARMv8-a.
I ran Treble cmd and got a true. I just learned what treble project is
The architecture is armv7l 32 bit armeabi-v7a
It is currently running android 11 sdk30
Its a Realtek RTD2841a Soc.
It is using Emmc flash 5.1 16gb
It has ethernet 100,2 hdmi ports, usb 2.0 2 ports, audio jack, no wifi card, AV jack.

Would you happen to know what Generic System Image i could run or AOSP?
I would need a smart tv image. I don't know how to build one myself. I could learn but that would take awhile and i would probably not get the result that i am looking for.

It was suggested to me on XDA forum to flash a GSI with the SU in it then i can get my boot.img and run magisk to root the system.
 
Keep in mind that Android and Linux tend to have different user space support. It is possible that Android has both the 32-bit and 64-bit user space to support using the compatibility mode, but many apps, when auto installed, will pick the release compatible with 64-bit for 64-bit systems. I have no knowledge of what Android does for 32-bit support, but if they already have this in place, then you'd just have to install it like any other Android program (I do Linux work; the kernel and drivers are the same, but user space is far different). I do not know if there is any generic system image which supports both 64-bit and 32-bit or which can append 32-bit support. I think you might have to specifically ask someone from that project, but any image which has both the original 64-bit system, plus compatibility 32-bit, should do the job. I just don't know if such a thing exists.
 
Keep in mind that Android and Linux tend to have different user space support. It is possible that Android has both the 32-bit and 64-bit user space to support using the compatibility mode, but many apps, when auto installed, will pick the release compatible with 64-bit for 64-bit systems. I have no knowledge of what Android does for 32-bit support, but if they already have this in place, then you'd just have to install it like any other Android program (I do Linux work; the kernel and drivers are the same, but user space is far different). I do not know if there is any generic system image which supports both 64-bit and 32-bit or which can append 32-bit support. I think you might have to specifically ask someone from that project, but any image which has both the original 64-bit system, plus compatibility 32-bit, should do the job. I just don't know if such a thing exists.
Thank you for your reply
I got fake root installed and fake chroot installed

Is fake chroot better then proot distro? My goal is to get real root.
Do you know what cmds don’t work with fake chroot?
 
I couldn't answer that. I haven't looked at Android in about a decade or more.
Thank you for your reply
Thanks anyway. I appreciate it.

I went ahead and installed proot-distro archlinux. Arch linux arm is suppost to have support for armv7.
its a just a basic system for now. I don't know what im doing lol yet.

Would you happen to know what to do next after installing archlinux command line
It just says rootlocalhoust# after you login.
So from there i just logged out. its archlinux arm.
I don't know the exact version of archlinux. I don't know the basics of linux yet, I have been a windows user for years. I have tried fedora,archlinux,kali,etc but i never really learned how to use the OS well.

I am currently looking for tutorials on what to do next. I am not sure if i have enough ram to install a desktop because usually 70-75% of the limited memory i have on the system is in use by the host operating system android 11. When i run optimise in tv manager it drops it to about 50% minimum. So i don't have much ram to work with. So i have half of 1.5gb of ram. If i run a desktop i think it will run poorly or at max ram.

But at least i got linux installed so far. So i am getting some were i think.

Thanks again. yeah i really need an expert linux user and android user to help me out cause i want to do some advanced stuff kinda. I want to get my boot.img from the host operating system but not sure if that is possible with proot-distro. Anyway it is a fun project to play with untill it bricks lol.
 
Would you happen to know what to do next after installing archlinux command line
It just says rootlocalhoust# after you login.

At this point it should be more or less like any Linux system. What will differ is package management. Every distribution uses a different package manager, and so finding out how to search for packages on that distro, and installing or updating those packages, is probably important. It is true too though that on occasion there are distributions which require compiling or installing as ordinary files and not with packages. This is the first thing I'd look up.

Being user root gives you the power to change or modify in any way (both destructive and useful ways; be careful). If you are not used to the editor "vi" (or "vim"), then you probably need to learn it on a desktop Linux, or else just use something else (for example, "pico"). If you can edit files, you're a step ahead.

You also probably want to know if ssh is enabled. Having root exposed to a public network port is very very dangerous, but if root has at least a good password, then you are way ahead. Note though that serial console might not need a password, this isn't exposed except to local access. Basically, you should explore what networking options are present, e.g., try commands like these:
  • ifconfig
  • which ssh
  • which scp
  • which sftp
  • ping localhost
  • ping 127.0.0.1
  • ping google.com
  • whoami
  • which bash
  • which sh
  • which vi
  • which pico
  • which useradd
  • which usermod
  • EDIT: which busybox
Don't change the password without knowing details on command line. Instead, you might consider adding a new user such that this user is a "superuser" (can use "sudo" for things like password changes, but does not normally run as root without the "sudo"...basically, "Simon says").
 
  • Like
Reactions: reaper89971
At this point it should be more or less like any Linux system. What will differ is package management. Every distribution uses a different package manager, and so finding out how to search for packages on that distro, and installing or updating those packages, is probably important. It is true too though that on occasion there are distributions which require compiling or installing as ordinary files and not with packages. This is the first thing I'd look up.

Being user root gives you the power to change or modify in any way (both destructive and useful ways; be careful). If you are not used to the editor "vi" (or "vim"), then you probably need to learn it on a desktop Linux, or else just use something else (for example, "pico"). If you can edit files, you're a step ahead.

You also probably want to know if ssh is enabled. Having root exposed to a public network port is very very dangerous, but if root has at least a good password, then you are way ahead. Note though that serial console might not need a password, this isn't exposed except to local access. Basically, you should explore what networking options are present, e.g., try commands like these:
  • ifconfig
  • which ssh
  • which scp
  • which sftp
  • ping localhost
  • ping 127.0.0.1
  • ping google.com
  • whoami
  • which bash
  • which sh
  • which vi
  • which pico
  • which useradd
  • which usermod
  • EDIT: which busybox
Don't change the password without knowing details on command line. Instead, you might consider adding a new user such that this user is a "superuser" (can use "sudo" for things like password changes, but does not normally run as root without the "sudo"...basically, "Simon says").
Thank you again for helping me out

I have decided to play around with arch linux in a windows 10 virtual machine or virtualbox or boxes oracle. Funny thing i already had a problem while installing.

I discovered a command that allows for a guided installation of the system through Arch Linux WIKI or documentation.
The Command is archinstall and it loads a guided installer, But even with that i messed up somehow. I set a a root user password during installation in my virtual machine, partition the disk, set the mirror region, choose a profile etc then ran the installer,

After the installer completed it ask me if i want to chroot into the new installed system or installation. I selected yes and it went to another login screen. I typed archlinux and enter my password and it said incorrect login. But there were no errors during installation.

I find it to be strange that after setting a root password it has you chroot into the system. Maybe i should have said no to the, do you want to chroot into the system.
Why? after setting up root do i have to change root or chroot?

I want to get this information once i install the system into my virtual machine.

What is the output of "date -u +%V$(uname)|sha512sum|sed 's/\W//g'"?

That question has to be answered in order for me to get on the Arch Linux forum.


So i have to have a linux machine or a arch linux machine running to get that answer witch i think is non-sense but i kinda understand that they want to keep people away who don't have a linux machine.

thanks again
 
I don't use arch linux (no particular reason), and I avoid VMs like the plague (VM configuration is something you will have to figure out, but it has "surprises" in a number of cases which I don't want to find and solve).

However, "chroot " is something quite interesting, and useful to know about. This isn't just for arch linux. You should also know about the command which exists just about everywhere, "exit".

When Linux boots it will quite often use a kind of "adapter" between the boot content and the actual running o/s. The story is long, but a shorter version is that for Linux content to be available to the boot stage it might need to understand the things which Linux itself has drivers for. Instead, RAM can be treated as a very simple filesystem with a tree structure, and the boot stage can install Linux in its most basic form (the kernel), and then put a temporary o/s support in that RAM which pretends to be a partition (and the bootloader always understands this). This gets a tiny micro environment running that Linux kernel. If the Linux kernel in that environment has everything it needs to work with the actual root filesystem device, then the only thing left is to transfer operation to that.

It is the "chroot" (or a pivot root variant) which works to do this. chroot will "stack" the previous root, but transfer to the new root. pivot_root (and friends) throw away the old root filesystem and transfer to the new root filesystem. One is temporary, one is permanent. On the temporary "chroot" one can "exit". Then you will be back in the original.

While in the "new" rootfs you are strictly running what that environment has and not accessing the original operating system (e.g., Windows) other than through the VM functions. If you run the command "exit", then you should be out of the VM environment. This is a lot like "booting" into the new o/s, but you are booting into the VM's child and have a way back out (assuming the "exit" command is supported).

So far as that particular command goes, I don't know. One would have to know what system calls are made. It is the VM which restricts or allows those system calls (incidentally, in Linux one can see system calls, or calls to the kernel, with the "strace" tool). However, in real Linux, the kernel itself talks directly to hardware. With the VM the VM itself is pretending to be isolated hardware. If that physical access fails, then it is likely due to the VM restricting it. I avoid VMs and couldn't tell you which VM "tuning" is required. The answer is usually very specific to the VM brand and the host PC o/s the VM runs on.
 
  • Like
Reactions: reaper89971
I don't use arch linux (no particular reason), and I avoid VMs like the plague (VM configuration is something you will have to figure out, but it has "surprises" in a number of cases which I don't want to find and solve).

However, "chroot " is something quite interesting, and useful to know about. This isn't just for arch linux. You should also know about the command which exists just about everywhere, "exit".

When Linux boots it will quite often use a kind of "adapter" between the boot content and the actual running o/s. The story is long, but a shorter version is that for Linux content to be available to the boot stage it might need to understand the things which Linux itself has drivers for. Instead, RAM can be treated as a very simple filesystem with a tree structure, and the boot stage can install Linux in its most basic form (the kernel), and then put a temporary o/s support in that RAM which pretends to be a partition (and the bootloader always understands this). This gets a tiny micro environment running that Linux kernel. If the Linux kernel in that environment has everything it needs to work with the actual root filesystem device, then the only thing left is to transfer operation to that.

It is the "chroot" (or a pivot root variant) which works to do this. chroot will "stack" the previous root, but transfer to the new root. pivot_root (and friends) throw away the old root filesystem and transfer to the new root filesystem. One is temporary, one is permanent. On the temporary "chroot" one can "exit". Then you will be back in the original.

While in the "new" rootfs you are strictly running what that environment has and not accessing the original operating system (e.g., Windows) other than through the VM functions. If you run the command "exit", then you should be out of the VM environment. This is a lot like "booting" into the new o/s, but you are booting into the VM's child and have a way back out (assuming the "exit" command is supported).

So far as that particular command goes, I don't know. One would have to know what system calls are made. It is the VM which restricts or allows those system calls (incidentally, in Linux one can see system calls, or calls to the kernel, with the "strace" tool). However, in real Linux, the kernel itself talks directly to hardware. With the VM the VM itself is pretending to be isolated hardware. If that physical access fails, then it is likely due to the VM restricting it. I avoid VMs and couldn't tell you which VM "tuning" is required. The answer is usually very specific to the VM brand and the host PC o/s the VM runs on.
Thanks for your reply
I have given up trying to get on there forum. I just decided to use what else that i can. I went on android central,xda,linux.org, and even a hacker website that i am a little afraid of, for good reason LOL. I was hoping someone on the hacker forum would know about proot-distro.

Proot-Distro seems to be a little bit of a mystery when it comes to certain particular distros like Arch Linux. Ubuntu and Debian seem to have alot information available on how to get the system running. I can't even figure out when Proot-Distro became a thing, google doesn't know when proot-distro came into existence. It just says that it probably came to be along with the creation of Termux.

I have read the Arch Linux WIKI but it never seems to answer my questions and doesn't have a section yet on Proot-Distro in particular.

Running linux on a smart tv has been interesting, The system works kinda but there some bugs and errors and i expected that. So i am currently working around some issues. There are Kernel limitations, I don't think that i can configure my kernel in proot-distro, I would have to have real root. But the error that i see often is lamelock not supported by the kernel. Proot-Distro uses the android kernel. So i am stuck with that.

I am getting packages made for Armv7H when my processor is a Armv7L but everything seems to work still. The L or little endian vs the H for higher end machines.

As root i can't run makepkg -si cause the OS won't let me. It give me an error. So i created a regular user and then ran makepkg -si again, it works further but then tries to download a dependency witch requires root privilage. It prompts for a password , I enter the password correctly but then tells me that my user that i created is not a sudeor. So i then added the user that i created to group wheel, edited sudoers file with nano and made wheel or gave group wheel root privilages. I then tried to run the command again makepkg -si but it tells me the same thing that my regular user is not in the sudoers club or team or group.

So i am having a Sudo error. I can't get the package yay installed the helper to install AUR packages. Just trying or was trying to install the realvnc package from AUR.

I can't create a sudoer for some reason that along with the lamelock error. Those are the biggest errors that i have encountered so far. Maybe Nano corrupted my Sudoers file or something.

I installed the wrong desktop, for anyone out there the only supported desktops are xfce, xqlt, and i forgot the other one. Termux x11 doesn't support all desktop environments. I did not know that. So for anyone else running proot there are only 3 desktops that are supported witch is a bummer unless i am wrong and all desktop environments are supported by termux.

Anyway i will be working on this project for awhile. getting linux on a TV and getting it to run properly. Most people using proot-distro seem to be using phone devices and or tablets, Which really sucks because when you search about proot distro there a tons of phones or videos of people running proot on there phone. There are no videos on people running proot distro on other strange adroid devices like tvs.

So i am on my own kinda. If i were a linux power user or superuser or expert this would be done by now. But being a beginner i am way behind the power curve.

Thanks to Toms hardware for helping me.