As long as a 64 bit CPU is supposed to execute 32 bit programs, it is sometimes hard to know which one do I have installed on my device.

There are programs that require this knowledge, like the Xposed Framework installer.

What could be considered the proper method, whether be it ADB, command-line or software?

I used to do on desktop Linux:

 sudo uname -a

Maybe there is some equivalent for Android?

Further data:

  • Some programs that should inform about this are not clear enoguh for me. This is a example of some AIDA64 report. Even when it shows 32 bit, is this info about the operating system? I would say it is just about the hardware:

    (Click image to enlarge; my AIDA64 is in Spanish)

    IMG: AIDA64 report example

Question extended to this other

  • What device do you have?
    – New-To-IT
    Commented Oct 22, 2015 at 20:08
  • See this page: software.intel.com/en-us/blogs/2014/12/16/… It says to see the property ro.product.cpu.abi and the related ro.product.cpu.abilist32 and ro.product.cpu.abilist64 in the output of getprop. I don't have a 64-bit device so I can't test few things. There is also a similar question on Quora here.
    – Firelord
    Commented Oct 22, 2015 at 20:11
  • @New-To-IT , I have multiple Android devices. And, as a computer scientist, I use to work with several different models. Finding a generic method (or, at least, as generic as possible) would be preferred for me. Specifying a device would transform this question in "How can I guess if the installed Android version for my [Brand][Model][Number] is a 64 or 32 bit one?". Commented Oct 22, 2015 at 20:16
  • @Firelord : thanks for the link. It seems related to "current device", not "current installed Android version". Would it be the same? Commented Oct 22, 2015 at 20:18
  • 1
    @Lucky: I have tested AIDA64, and some others tools that report the 32/64 bit information, but none of them sets clear if they are talking about the operating system or the hardware. Added a capture screen to my original question to show. Commented Oct 22, 2015 at 20:57

1 Answer 1


uname -m will display the architecture of the running kernel. This is different than whatever your hardware may be capable of running.

Unfortunately, you have to know which architectures are 32-bit and which are 64-bit. But you can easily find this out.

For example, my m7 displays arm7l. A quick search confirms that this is a 32-bit architecture, meaning that my running kernel was compiled as a 32-bit executable.

  • But if you check usage of uname you get -m The machine (hardware) type. i.sstatic.net/DTueH.png
    – Firelord
    Commented Oct 22, 2015 at 23:34
  • 4
    It refers to the machine architecture that the kernel was compiled for. Try installing 32-bit Ubuntu on your 64-bit computer and you will get i686 or some other 32-bit architecture name from uname -m. Commented Oct 23, 2015 at 1:52
  • As Paul said, uname -m can be deceiving. Some relevant details here: Could a 64-bit hardware device run a 32-bit Android version? Commented Apr 30, 2020 at 17:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .