Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Implementación del registro de proveedores con alcance

Android 11 agrega un nuevo HAL, IDumpstateDevice (versión 1.1). Esta HAL expone nuevos métodos a registros de proveedores de mayor alcance que se incluyen en los informes de errores estándar, así como para permitir que las compilaciones de usuarios activen y desactiven el registro de proveedores (el valor predeterminado para las compilaciones de usuarios es desactivado). Esto les da a los OEM más control sobre lo que se incluye en tipos particulares de informes de errores.

Esta característica afecta a los OEM si optan por implementar esta HAL opcional. Los SoC pueden verse afectados, según lo que el OEM decida exponer con esta HAL. No se espera un impacto para los operadores.

Lo que incluya en los informes de errores depende de la información que considere relevante para la depuración, pero en general, es mejor si es más detallado.

Ejemplos y fuente

Hay una implementación por defecto de la (en desuso) 1.0 versión de IDumpstateDevice que muestra un ejemplo de la utilización de la biblioteca: dumpstate util frameworks/native/cmds/dumpstate/DumpstateUtil.h . También hay una aplicación de sepia del 1,1 HAL: device/google/cuttlefish/guest/monitoring/dumpstate_ext/* .

El código fuente se encuentra aquí:

Implementación

Para implementar esta HAL, implementar el android.hardware.dumpstate@1.1::IDumpstateDevice interfaz de HAL. Hay muchas posibles DumpstateMode valores, pero no todos son susceptibles de ser apoyado por un solo dispositivo (por ejemplo, el desgaste para dispositivos que no son de desgaste del sistema operativo).

La implementación de dumpstate HAL es opcional. Todos los dispositivos nuevos que se lanzan con Android 11 DEBEN implementar IDumpstateDevice 1.1 si implementan Dumpstate HAL. Los dispositivos que ya han implementado IDumpstateDevice 1.0 antes de Android 11 deberían ser relativamente fáciles de actualizar a 1.1, y hacerlo es muy recomendable, ya que reduce en gran medida la cantidad de información privada extraña incluida en los informes de errores.

Esta opción depende de los cambios fundamentales dumpstate También se incluye con Android 11, que se encuentra bajo frameworks/native/cmds/dumpstate .

La implementación de esta HAL probablemente requerirá algunos cambios de SEPolicy en ciertas propiedades del sistema, archivos, etc. para que las cosas funcionen completamente, y requerirá la coordinación con los proveedores para volcar toda la información relevante en informes de errores.

Personalización

El usuario del dispositivo puede activar o desactivar el inicio de sesión del proveedor mediante la configuración del desarrollador. Cuando está apagado, dumpstateBoard_1_1 puede todavía información esencial mínimo de salida según lo determinado por el OEM. Volviendo proveedor de cerrar la sesión hace IDumpstateDevice::dumpstateBoard añadir información sólo es esencial para un informe de error, mientras la enciende incluye cualquier información que escoge el OEM.

Puede modificar dumpstate.cpp (que llama a los métodos IDumpstateDevice HAL), por ejemplo, para aumentar el tiempo de espera dado para dumpstateBoard al completo. Sin embargo, la lógica de la base de dumpstate.cpp debe permanecer sin cambios.

Los tiempos de espera pueden tener cualquier valor, pero no deberían aumentar drásticamente el tiempo que tarda en completarse un informe de error. En particular, DumpstateMode::CONNECTIVITY es altamente sensible al tiempo y las necesidades de correr tan rápido como sea posible para recoger todas / Wi-Fi registros de módem / red correspondiente.

Validación

Hay una prueba de STM para la ejecución IDumpstateDevice, y hay pruebas unitarias funcionales para generales BugreportManager funcionalidad.

El caso de prueba manual recomendada es de frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java .