Hardware • 9 min de lectura • 3 de noviembre de 2026

Android 15 de mentira: la tablet de un usuario era Android 9 y así le instalé Google Keep

Una tablet nueva que presume Android 15 es en realidad un Android 9 de 32 bits. Cómo lo detecté con ADB y cómo instalé Keep sin Play Store.

Solución en "Dos Clics" (TL;DR)

La tablet decía Android 15, pero por dentro era Android 9 y solo 32 bits. Así lo detecté en seis comandos y logré instalar Google Keep igual.

Un usuario me trajo una tablet nueva: caja, folleto y funda. En Ajustes → Acerca del dispositivo decía, sin ambages, Android 15. Tan actual que hasta parecía sospechoso en un equipo de gama baja. El encargo era simple —instalar Google Keep—, pero al abrir Play Store y buscarlo, la tienda respondió con un escueto "tu dispositivo no es compatible con esta versión". Lo que empezó como una instalación de cinco minutos terminó destapando una de las formas más silenciosas de obsolescencia: un equipo vendido como "Android 15 actual" que por dentro es un Android 9 con el número de versión maquillado.

1. El síntoma no era el APK

Antes de rendirme con Play Store descargué dos versiones de Keep desde APKMirror. La más nueva, 5.26.411.01.90 (versionCode 220679609), y la anterior, 5.25.501.01.90 (versionCode 220640126). Las dos traían la misma etiqueta en el nombre del archivo: minAPI29.

Al abrirlas desde el explorador de archivos, el instalador del sistema aparecía un par de segundos y se cerraba sin explicación. En pantalla, el clásico "Aplicación no instalada", ese mensaje que no distingue entre una firma inválida, un archivo corrupto, un permiso denegado o un problema de compatibilidad.

Error de diagnóstico habitual: culpar al APK. Si el mismo paquete lo firma Google y está descargado completo, el problema casi nunca es el archivo. Antes de volver a descargarlo, conviene mirar qué versión de Android cree tener el equipo.

2. Los seis comandos que dijeron la verdad

Con la tablet conectada por USB y la depuración por ADB habilitada, lo primero es confirmar que el equipo responde:

Terminal (ADB)
adb devices -l

Y luego, las propiedades que realmente importan del sistema. No las que muestra la interfaz, sino las que reporta el propio framework:

Terminal (ADB)
adb shell getprop ro.build.version.release
adb shell getprop ro.build.version.sdk
adb shell getprop ro.product.cpu.abilist
adb shell getprop ro.build.fingerprint

La respuesta de la tablet fue esta:

Salida real
9
28
armeabi-v7a,armeabi
alps/full_k37mv1_bsp_512/k37mv1_bsp_512:9/PPR1.180610.011/user0203141111:user/dev-keys

Ahí estaba todo. Android 9 (API 28), no 15. Y arquitectura de 32 bits (armeabi-v7a), sin rastro de arm64-v8a. La cadena PPR1.180610.011 es el identificador de compilación de Android 9, un dato que las ROMs de bajo coste no suelen molestarse en cambiar.

Dato Lo que mostraba la interfaz Lo que reporta el sistema
Versión de Android 15 ro.build.version.release = 9
Nivel de API "actual" ro.build.version.sdk = 28
Arquitectura no se muestra armeabi-v7a,armeabi (solo 32 bits)
Build del framework no se muestra PPR1.180610.011 (Android 9)
Compilación de la ROM no se muestra k37mv1_bsp_512 (MediaTek)

3. El disfraz está en dos propiedades

Si la versión real está en ro.build.version.release, ¿de dónde sale el "15" que se ve en Ajustes? De un par de propiedades que la ROM escribe a mano y que la capa de presentación del fabricante lee para pintar la pantalla de "Acerca del dispositivo":

Terminal (ADB)
adb shell getprop | grep -i version
Salida real (extracto)
[persist.sys.oldversion]: [9]
[persist.sys.cyversion]: [15]
[persist.sys.newversion]: [15]
[ro.build.version.release]: [9]
[ro.build.version.sdk]: [28]
[ro.build.version.security_patch]: [2026-01-01]
[ro.custom.build.version]: [ZLP35V5.2_2EX_VWP_DTCY302_10.1c_P_V1.0_20260314]

La lectura es casi cómica: oldversion todavía confiesa el 9 original, mientras cyversion y newversion anuncian 15 para que la pantalla de Ajustes quede a la moda. El parche de seguridad de enero de 2026 es igual de decorativo: el framework que corre debajo es de 2018 y no recibe parches de Google desde que el equipo dejó de ser soportado.

Esto es distinto de la obsolescencia clásica, la que uno puede planificar. Un Android 9 de 2019 es viejo, pero es honesto: sabes lo que tienes y decides si te sirve. Un Android 9 de 2019 anunciado como Android 15 en 2026 no solo está desactualizado: está vendiendo una expectativa falsa, y el usuario lo descubre cuando una app deja de instalarse y no hay explicación en la caja ni en el manual.

4. Por qué "forzar" el APK no era una opción

Con el diagnóstico claro, el mensaje de Play Store y el fallo del instalador dejan de ser un misterio. Ambos APK que había descargado estaban compilados con minSdkVersion 29, es decir, exigían Android 10 o superior. El sistema responde INSTALL_FAILED_OLDER_SDK: la instalación ni siquiera empieza.

No intentes subir el nivel de API: editar ro.build.version.sdk o el build.prop para engañar al instalador deja el equipo en un arranque incompleto con mucha facilidad. Y aunque la instalación pasara, la app llamaría a APIs de Android 10 que el framework no tiene: el resultado sería un cierre inmediato al abrirla, no una app funcionando.

El segundo límite es la arquitectura. La tablet solo expone armeabi-v7a. Las apps de Google siguen publicando variantes de 32 bits, así que ese punto no bloqueaba la instalación, pero sí obligaba a elegir un paquete universal o una variante con ABI de 32 bits en lugar de un bundle solo para arm64-v8a.

5. La solución: la última versión que aún soporta Android 8+

Google mantiene, dentro del mismo listado de Keep, compilaciones para dispositivos antiguos. La más reciente de esa rama al momento del diagnóstico era 5.25.491.01.90 (versionCode 220639127, publicada en diciembre de 2025), con minSdk 26 y APK universal que incluye las cuatro ABI. Antes de instalarla conviene verificar que el archivo sea realmente lo que dice ser:

PowerShell (build-tools)
aapt dump badging C:\dosclic\herramientas\keep.apk | Select-String "package:|sdkVersion|native-code"
Salida esperada
package: name='com.google.android.keep' versionCode='220639127' versionName='5.25.491.01.90'
sdkVersion:'26'
targetSdkVersion:'36'
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'

Con esas tres líneas confirmadas —sdkVersion 26, versionCode correcto y ABI de 32 bits presente— la instalación es una sola orden:

Terminal (ADB)
adb install -r C:\dosclic\herramientas\keep.apk

Y la verificación posterior, para no quedarse con la duda de si el paquete quedó bien registrado, de qué arquitectura se instaló y si la app arranca de verdad:

Terminal (ADB)
adb shell dumpsys package com.google.android.keep | grep -E "versionName|primaryCpuAbi"
adb shell monkey -p com.google.android.keep -c android.intent.category.LAUNCHER 1
adb logcat -d | grep -E "FATAL|AndroidRuntime"

La salida de la primera orden es la confirmación final: versionName=5.25.491.01.90 y primaryCpuAbi=armeabi-v7a. Es decir, la versión de 32 bits correcta, instalada en el sistema correcto, sin trucos. La segunda abre la app y la tercera sirve para comprobar que no haya un cierre inesperado en el log.

Consejo Práctico: guarda el APK que funcionó en la carpeta de Descargas del equipo y desactiva la actualización automática de Keep en Play Store. Play no debería ofrecer una versión incompatible, pero si en el futuro la ofrece, la app se actualizaría al paquete que el sistema rechaza y volvería el problema original.

6. Comprobarlo sin root y sin ADB

No todo el mundo tiene una PC con platform-tools a mano, y para revisar el equipo de otra persona no hace falta. Hay tres formas de ver lo que Ajustes esconde desde la propia tablet, sin permisos especiales:

El navegador delata la versión

Chrome construye su User-Agent con la versión real del sistema. Abre chrome://version en la barra de direcciones, o visita una página de "mi user agent" como whatismybrowser.com/detect/what-is-my-user-agent. Si Ajustes dice 15 y ahí aparece Android 9, ya está la primera prueba.

Play Store es el juez externo

Busca una app conocida que exija Android 10 o superior —Google Keep sirve de termómetro—. Si la ficha advierte "Requiere Android 10 y versiones posteriores" y a la vez el botón de instalar aparece bloqueado con "tu dispositivo no es compatible", el sistema no puede ser Android 15.

De paso conviene mirar la certificación: Play Store → foto de perfil → Ajustes → Acerca de → Certificación de Play Protect. Si el equipo aparece como "no certificado", no pasó la validación de Google y muchas apps de Google no se instalarán aunque la versión parezca la correcta.

Una app de información de hardware

Herramientas como DevCheck, AIDA64, CPU-Z o Device Info: System & CPU Info leen android.os.Build y muestran justo lo que Ajustes oculta: nivel de API, fingerprint, parche de seguridad y ABI soportadas. En esta tablet, cualquiera de ellas habría reportado API 28 y un listado donde solo aparece armeabi-v7a.

Qué quieres comprobar Dónde verlo (sin root ni ADB) Señal de alarma
Versión real chrome://version o una web de user-agent Dice Android 9 y Ajustes dice 15
Nivel de API DevCheck, AIDA64 o Device Info API 28 o menos
Arquitectura La misma app, sección CPU / ABI Solo 32 bits (armeabi-v7a)
Compatibilidad Ficha de Google Keep en Play Store "No compatible" en un equipo que dice 15
Certificación Play Store → Ajustes → Acerca de Equipo "no certificado"
Ojo con las apps "de confianza": todas leen las mismas propiedades del sistema. Si una ROM se tomara el trabajo de falsificar también ro.build.version.sdk, mentirían todas a la vez. Pero ese engaño es mucho más caro: media docena de apps de Google empezarían a llamar a APIs que no existen y el equipo fallaría. Por eso el disfraz casi siempre se queda en la pantalla de Ajustes, y la contradicción con Play Store sigue siendo la prueba más difícil de tapar.

7. Las herramientas que hicieron el trabajo

Nada exótico. ADB de las platform-tools para hablar con el equipo y leer sus propiedades reales; getprop para la versión, el nivel de API y las ABI; dumpsys package para confirmar qué quedó instalado; monkey para lanzar la app desde la línea de comandos sin tocar la pantalla; logcat para descartar cierres; aapt dump badging de build-tools para auditar el APK antes de instalarlo; y APKMirror como archivo histórico de versiones, que es justo lo que Play Store no ofrece. El resto fue leer con calma lo que el sistema ya estaba diciendo.

8. Si la versión compatible no existe

No siempre hay un APK antiguo disponible; los fabricantes de apps también retiran compilaciones. En ese caso quedan dos salidas razonables: usar la versión web del servicio —keep.google.com funciona igual y se puede añadir a la pantalla de inicio como acceso directo— o sustituir la app por una alternativa que siga soportando el sistema, como una libreta local sin dependencia de la nube. Lo que no tiene sentido es comprar un equipo cuyo sistema real quedó tres versiones atrás y esperar que el ecosistema actual siga entrando en él.

9. La historia detrás de la nota

La historia detrás de la nota

La compró por menos de lo que cuesta una funda buena, así que el engaño no sorprende demasiado. Lo que molesta es el método: no le vendieron un equipo viejo, le vendieron un equipo viejo con el número cambiado. La diferencia entre ambas cosas es la posibilidad de decidir. Y esa posibilidad, cuando se trata de una computadora en la mano de un estudiante o de un niño, no es un detalle menor.