• Happy holidays, folks! Thanks to each and every one of you for being part of the Tom's Hardware community!

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
160
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.