Dispositivos que se lanzan con Android 12 mediante kernel
se requiere que las versiones posteriores a 5.4 se envíen con el kernel de GKI. De esta manera,
Los socios pueden acceder a DebugFS
en compilaciones userdebug mientras desarrollan en GKI.
la configuración del kernel CONFIG_DEBUG_FS
está habilitada en la defconfig de GKI.
Nunca actives DebugFS
en compilaciones de usuario para dispositivos
que se lanzará en Android 12.
Las compilaciones de userdebug tienen una mejor cobertura de pruebas que las compilaciones de usuario y se vuelven muy
y se prueban a lo largo del ciclo de desarrollo. Con el siguiente plan, se minimiza
diferencia entre los dos tipos de compilación con respecto al acceso a DebugFS
ofrece los siguientes beneficios:
- Impide que las compilaciones de userdebug dependan accidentalmente de
DebugFS
para nuevas funcionalidades - Garantiza que cualquier funcionalidad existente que no funcione por la falta de DebugFS se conoce al principio del ciclo de desarrollo
Los accesos de Debugfs en compilaciones de userdebug se clasifican como sigue:
DebugFS
inicializaciones de archivos durante el arranque del dispositivo, como una acceso de escritura a un archivo enDebugFS
para activar la recopilación de datos de depuración- Generación de informes de errores: La HAL de estado de volcado lee los archivos
DebugFS
cuandodumpstate
invoca aDumpstateBoard()
. Esta esta información se vuelve parte del informe de errores. - Pruebas y validación específicas del dispositivo.
La siguiente tabla describe cómo cada una de estas tres categorías
compatible con Android 12. Ten en cuenta que
El siguiente código solo se aplica a compilaciones userdebug, ya que DebugFS
no puede ser
activa en compilaciones de usuarios.
Caso de uso | Compilación userdebug de Android 12 |
---|---|
Inicialización única de archivos DebugFS durante el inicio.
Este acceso sucede una sola vez durante el tiempo de inicio.
|
La HAL de estado de volcado realiza esto durante la inicialización de HAL. Para habilitar esta función,
init activa DebugFS en compilaciones userdebug antes de que se inicialice la HAL.
Init llama a umount() en DebugFS cuando
que el dispositivo haya terminado de iniciarse.
|
Generación de informes de errores: La HAL de estado de volcado lee:
Archivos DebugFS , que forman parte del informe de errores
|
Lo realiza la HAL de dumpstate dentro de DumpstateBoard() cuando lo invoca dumpstate.
(DumpstateDevice.cpp).
La herramienta dumpstate (parte del framework de Android) garantiza que DebugFS
activa durante la invocación.
|
Pruebas y validación específicas del dispositivo | Shell y raíz de adb. Activa DebugFS desde el shell de adb con lo siguiente:
acceso raíz1.
|
1 Para activar DebugFS
desde adb shell
con
acceso raíz, usa este comando:
adb shell mount -t debugfs debugfs /sys/kernel/debug
.
Acciones requeridas del socio
Los socios deben aplicar lo siguiente en función de estos cambios en Dispositivos con Android 12:
- Realiza todas las inicializaciones del tiempo de inicio de
DebugFS
nodos durante la inicialización de HAL de dumpstate. Para ver un ejemplo de cómo hacerlo, consulta DNM: Ejemplo de la inicialización del tiempo de inicio de archivosDebugFS
. - No permitir el acceso de
DebugFS
durante el tiempo de ejecución. Las siguientes excepciones se aplican las siguientes condiciones:- Generación del informe de errores (proviene de la HAL del estado de volcado)
- Pruebas y validación (accesible para
adb root
yshell
) Asegúrate de que DebugFS se active primero).
Los desarrolladores pueden configurar la propiedad persistente de depuración
persist.dbg.keep_debugfs_mounted
para mantener DebugFs
activado
Se reinicia en compilaciones userdebug y eng.
Las pruebas de cumplimiento de GTS garantizan que el sistema de archivos DebugFS
no esté
activa en compilaciones de usuarios. Las sentencias neverallow
de sepolicy garantizan que en los dispositivos
que se lancen en Android 12 o versiones posteriores, no se proporcionarán procesos no autorizados
acceso a DebugFs
.