Volver al Centro de conocimiento
Huella digital

Señales del navegador Linux armv81: límites de plataforma

Interpreta Linux armv81, User-Agent Client Hints y WebGL sin convertir la superficie del navegador en identidad de hardware.

BotBrowser Team

Documentación

Quieres la documentación estructurada de Huella digital?

Este artículo forma parte de la biblioteca editorial. Para pasos de configuración, material de referencia y actualizaciones continuas, entra en la sección de docs.

Cuando una página muestra Linux armv81, la pregunta útil no es qué teléfono es. Hay que separar los campos visibles, las sugerencias opcionales que no estuvieron disponibles y las capacidades gráficas observadas. La documentación de emulación Android explica por qué BotBrowser puede presentar esta familia de plataforma, pero no convierte la cadena en un identificador de dispositivo.

TL;DR

  • navigator.platform es una cadena visible para la página, no un modelo de CPU ni una identidad.
  • User-Agent Reduction y User-Agent Client Hints exponen conjuntos distintos; una sugerencia ausente no significa una respuesta negativa.
  • WebGL puede aportar capacidad corroborativa, pero un contexto o extensión ausente no demuestra otro host.
  • Conserva unknown, not-requested, not-exposed y los valores reales como estados distintos.
  • Un registro de coherencia documenta lo observado y lo que no se pudo comparar, sin prometer un veredicto externo.

Contents

La cadena de plataforma es un campo

Navigator.platform expone una cadena al contenido web. Sirve para una rama de compatibilidad amplia, pero no promete CPU, kernel, placa, emulador ni identidad. La página /docs/platform/android-emulation/ muestra el ejemplo de BotBrowser donde puede aparecer Linux armv81; describe una superficie configurada, no todos los perfiles o contextos.

CampoObservaciónLo que no demuestra
navigator.platformCadena exacta, por ejemplo Linux armv81CPU física, modelo o persona
navigator.userAgentTexto UA reducido o heredadoSistema operativo completo
navigator.userAgentDataValores de baja entropía disponiblesQue se autorizaron hints de alta entropía
uaData.architectureunknown si no se solicitóUna arquitectura física
WebGLContexto, extensiones y parámetrosGPU única o veredicto

No uses platform.includes('arm') como autorización. Para compatibilidad, combina la cadena con detección de la función real. Si cambia entre perfiles, registra qué configuración cambió en vez de inventar un cambio de dispositivo.

User-Agent reducido y Client Hints

User-Agent Reduction omite detalles de sistema y dispositivo del UA predeterminado. NavigatorUAData ofrece valores básicos y una solicitud opcional mediante getHighEntropyValues(). La guía de reducción de User-Agent trata la cabecera, mientras que la guía del límite del renderer WebGL separa capacidad gráfica e identidad.

ObservaciónInterpretaciónSustitución incorrecta
userAgentData no existeLa interfaz no está expuestaNo es Chromium
platform está disponibleHay un token amplioEs el sistema completo
architecture vuelve tras una solicitudSe recibió ese hint en el contextoEs la CPU física
La promesa fallaSolicitud no disponible o rechazadaLa arquitectura no es ARM

Guarda el estado de la solicitud junto al valor. Este helper preserva la diferencia entre no expuesto, no solicitado y error:

async function readPlatformSurface() {
  const result = {
    platformString: typeof navigator.platform === 'string' ? navigator.platform : 'not-exposed',
    userAgent: typeof navigator.userAgent === 'string' ? navigator.userAgent : 'not-exposed',
    uaData: 'not-exposed',
    highEntropy: 'not-requested',
  };
  if (!navigator.userAgentData) return result;
  result.uaData = { mobile: navigator.userAgentData.mobile, platform: navigator.userAgentData.platform };
  try {
    result.highEntropy = await navigator.userAgentData.getHighEntropyValues([
      'architecture',
      'model',
      'platformVersion',
    ]);
  } catch {
    result.highEntropy = 'request-failed';
  }
  return result;
}

WebGL como capacidad corroborativa

WebGLRenderingContext permite crear un contexto y consultar extensiones. El resultado depende del contexto y de la política del navegador; no es un detector ARM.

ObservaciónApoyaNo prueba
Contexto creadoLa página obtuvo esa capacidadGPU física
getExtension() devuelve nullExtensión ausente aquíAusencia en todos los hosts
Parámetro devuelve valorEse parámetro está expuestoIdentidad única
Creación fallaEsta solicitud no pudo ejecutarseCausa sin más datos

La plataforma, UA reducido, Client Hints y WebGL llegan a un registro de coherencia; los estados desconocidos no son identidad.

Registro de coherencia con estados desconocidos

Un registro mínimo puede conservar el contexto, la cadena exacta, el resultado UA-CH y la operación WebGL. architecture: unknown significa que la hint no se obtuvo; no significa x86. Guarda también la fecha, el release y el perfil para no comparar entradas con inputs distintos.

ClaveEjemploRegla
contextWindow / secureIndica dónde se leyó
platformStringLinux armv81Conserva el texto literal
uaData.architectureunknownNo rellenes una ausencia
webgl.contextwebgl2Nombra el contexto pedido
webgl.extensionavailable / absentNombra la extensión

Compara primero release y contexto, luego plataforma y UA reducido, después la solicitud de hints y finalmente la operación WebGL. Una diferencia es una pista de compatibilidad, no una identidad distinta.

Fallos y límites de interpretación

Si aparece Linux armv81 pero falta una hint, conserva unknown y revisa si la solicitud se ejecutó. Si falla WebGL2, diagnostica el contexto, la política y la excepción; no cambies la plataforma. Si dos contextos difieren, compara perfil, release y modo embebido antes de comparar usuarios. Un modelo devuelto por una hint sigue siendo un valor del navegador, no una atestación física.

Diagnóstico de una diferencia de plataforma

Registra primero el contexto de la ventana y después conserva sin normalizar navigator.platform y navigator.userAgent. Anota si existe navigator.userAgentData, qué claves de baja entropía llegaron y si se solicitó una hint de alta entropía. Una interfaz ausente y una promesa rechazada son estados diferentes.

La comprobación WebGL debe registrar el contexto solicitado, el resultado de getContext() y solo la extensión o parámetro que explica la decisión de la aplicación. Si la llamada falla, conserva la clase de excepción y detén esa rama.

PasoEvidencia que se conservaCondición de parada
Ventana seguraisSecureContext y contextoNo solicitar hints en contexto inválido
PlataformaCadena exacta de navigator.platformNo asignarla a un modelo
UA-CHInterfaz, claves y resultadoMantener desconocido lo que falte
WebGLTipo de contexto y extensión relevanteNo crear un inventario de renderer
ComparaciónMismo release, perfil y fixtureNo comparar entradas distintas
ResultadoInterpretación segura
architecture no solicitadaNo hubo petición, no una arquitectura negativa
architecture rechazadaLa política o el contexto rechazó la petición
Linux armv81 y WebGL2 fallidoDos observaciones separadas que requieren repetir el mismo contexto

El registro ayuda a repetir una comprobación de compatibilidad; no identifica una persona ni un dispositivo.

Límite de la documentación de BotBrowser

La documentación de emulación Android describe la superficie de plataforma que el producto puede presentar. No garantiza cada Client Hint, un backend WebGL concreto ni el resultado de un detector externo. Una configuración es evidencia de configuración; una lectura de página es evidencia de observación. No son una tasa de éxito, anonimato o identidad.

BotBrowser puede presentar una superficie de plataforma configurada para una revisión de compatibilidad; no controla directamente cada Client Hint ni garantiza el renderer WebGL o el resultado de un detector externo.

FAQ

¿Linux armv81 demuestra Android?

No. Es una cadena visible para la página y puede ser compatible con una superficie Android, pero no prueba kernel, modelo ni dispositivo.

¿Una hint ausente significa x86?

No. Ausente, no solicitada y rechazada son estados diferentes; conserva el desconocido.

¿WebGL identifica un dispositivo ARM?

No. Describe capacidades de un contexto concreto, no una identidad física.

¿Este registro identifica a una persona o un dispositivo?

No. Conserva valores visibles y estados de disponibilidad para investigar compatibilidad, no para crear una identidad.

Sources

Para ampliar la comparación, consulta el mapa de superficies de plataforma y la guía de propiedades navigator.

Conclusión práctica

Trata Linux armv81 como un campo visible. Guarda el texto, el UA reducido, el estado de cada Client Hint y la capacidad WebGL exacta. Mantén desconocido lo que no fue devuelto y usa el registro para resolver compatibilidad, nunca para convertir una familia de plataforma en hardware, persona o veredicto.

#fingerprinting#privacidad#plataforma#client hints

Este artículo forma parte de la guía: ¿Qué es la huella digital del navegador?

Ejecuta la misma comprobación en BotBrowser

Carga un perfil, mantén dentro del navegador las señales que acabas de leer y confirma el resultado en tu propia máquina antes del despliegue.