# 32-bit and 64-bit Android: how to tell before buying a phone [duplicate]

I have been looking into 32-bit or 64-bit Android versions for phones. It seems to me that the information on the number of bits of the installed Android version is always missing from phones' specs, unlike what happens for the CPU. Googling around, the ways I have found to understand whether a phone is running a 32-bit or a 64-bit OS all include actually doing something with the phone, like looking up the kernel version or downloading some app, like AIDA64.

How do I know if a phone I want to buy will come with a 32-bit or a 64-bit Android before I buy it? It would be interesting to find a layman-friendly criterion or resource that allows me to know this in advance, especially to be able to look into the cheapest phones running a 64-bit Android.

• Are you looking for website or on device indicator? Or just buy a phone with at least 6GB of RAM which requires 64-bit support. Commented Jun 28, 2019 at 4:03

One way to know that the OS is 64-bit is to check the RAM. 32-bit OSes have (see/utilise) a maximum of 4GB of RAM while 64-bit devices see more. Devices with more than 4GB of RAM will be using 64-bit Android.

Limits are as followed:

32-bit: 2^32 = 2^2 * 2^30 = 4GB. A 32-bit OS will go 1 bits up to 4GB.

64-bit: 2^64 = 2^4 * 2^60 = 16EB. A 64-bit OS will go 1 bits up to 16EB.

Up to 4GB, the RAM won't help differentiating whether it is 32 or 64-bit. More than 4GB, then it is more than likely to be 64-bit.

Large Physical Address Extension(LPAE) was implemented to allow physical address up to 40-bit. But as @Irfan as inferred, it is not known (at least publicly) if there are devices in the market which have taken advantage of it.

``````Conversion table
-----------------
2^10 = 1 KB
2^20 = 1 MB
2^30 = 1 GB
2^40 = 1 TB
2^50 = 1 PB
2^60 = 1 EB
``````
• I have Redmi Note 4 with 3GB DDR3, but it's 64-bit. So this criteria could be misleading sometimes, partially applicable. Commented Jun 28, 2019 at 13:58
• @IrfanLatif Could you explain the misleading part? Because I said that devices with more than maximum of 4GB of RAM will have 32 bit OS. But a device with more than 4GB will be 64-bit (it doesn't mean that a 64-bit OS can't handle less than 4GB of RAM, but that the 32+bit OS can't handle more than 4GB). I will be more than happy to edit, if you think it's necessary. Commented Jun 28, 2019 at 15:56
• @ReddyLutonadio Only windows sees restrictions in handling RAM for 64/32 bir Commented Jun 28, 2019 at 16:46
• @ReddyLutonadio A phone comes with 3GB RAM. Based on your answer, one can't be sure if it's 32 bit or 64 bit. If RAM >= 4GB, then the criteria holds good. But some 32-bit architecture also supported larger RAMs? I remember some news from a few years back. Commented Jun 28, 2019 at 17:42
• Also include a reference to LPAE, though I'm not sure if any devices are/were shipped with this. Commented Jun 29, 2019 at 5:01

Until the manufacturer doesn't describe the technical specifications of OS included with a device, it's hard to say if it's 32-bit or 64-bit. But a device with 64-bit hardware is expected to come with 64-bit OS (not always), let's take a look how to identify 64-bit hardware.

To find out if a device is 32-bit or 64-bit, you need to check the specifications of its SoC and then of its processor. For instance SoC in Redmi Note 4 is Qualcomm Snapdragon 625 (MSM 8953), which contains processor `Cortex-A53`. It's evident from technical specifications of Cortex-53 that it's based on `ARMv8` architecture, which can process 2 types of Instruction Sets: `aarch64` (which Android's `arm64-v8a` ABI uses) and `aarch32` (which Android's `armeabi-v7a` ABI uses). So the phone is 64-bit, shipped with a 64-bit OS.

On-device processor/SoC information can be checked using some third party app as you have mentioned, or directly from CLI: `uname -m`, `cat /proc/cpuinfo`, `cat /sys/firmware/devicetree/base/model` etc.

• What you wrote is correct, however a 64bit CPU doe not necessarily means that the phone is running a 64bit version of Android. Commented Jun 28, 2019 at 9:18
• @Robert valid point, I was focusing hardware aspect. But I don't think one would prefer 32-bit OS on a 64-bit hardware, isn't it? It's a wastage of resources then. If a phone's specs aren't out from OEM, I don't think there is way to find out if Android ROM is 64 or 32 bit. But they don't tell much about stock ROM usually, other than Android version, or if it's heavy mod on AOSP like MIUI. Commented Jun 28, 2019 at 9:33
• I don't know the numbers but it is not uncommon to use a 32bit OS on a 64bit capable hardware. Just think of the Raspberry which has 64bit hardware since 4 years and finally this year gets a 64bit OS. Commented Jun 28, 2019 at 11:37
• Also `getconf LONG_BIT` returns `64` on my Pixel 4a, Android 13. Not sure if it can be added to the methods mentioned in the last section of your answer. This was using Termux Commented Dec 4, 2022 at 14:46
• And `lscpu` on Termux returns `CPU op-mode(s): 32-bit, 64-bit` (amongst a ton of details) Commented Dec 4, 2022 at 14:52