Home / Android

Mobile

Y2038 and Android

A current 64-bit Android phone is not the problem. The leftover is 32-bit devices still in cupboards, TV sticks and industrial handhelds, plus any native library that still passes a 32-bit time_t.

What was actually reproduced

The public failures were old 32-bit hardware — Nexus 7 class tablets, early Android 4 boards — and experiments that set the system clock to 2038. Some of those units boot-looped. That is a real failure mode. It is not a statement about a Pixel or a Galaxy sold in the last several years.

Google has required 64-bit support for Play apps for years. That rule covers the app you upload. It does not rewrite a TV stick that never used Play, and it does not recompile a vendor .so that an app still ships for armeabi-v7a.

What to read on a device

getprop ro.product.cpu.abi
getprop ro.build.version.release
uname -m

arm64-v8a or x86_64 is the 64-bit ABI. armeabi-v7a alone is the 32-bit one. A device that lists both can still run a 32-bit process. The process is what has the time_t width, not the marketing line “Android 14.”

“Linux based” on a vendor page is not a time_t width. Test a 32-bit unit on a spare. See testing.