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

Implementación de reserva de fuentes personalizadas

En Android 11 y bajan, la actualización de ficheros de dispositivos instalados en AOSP (en el /system/fonts partición) o las particiones del vendedor (en el /product/fonts o /system/fonts particiones) requiere una actualización del sistema de la OEM. Este requisito tiene un impacto significativo en la compatibilidad de emoji. En androide 12 se puede utilizar el FontManager servicio del sistema para gestionar los archivos de fuentes instaladas y archivos de fuente de dispositivo instalado de actualización sin una actualización del sistema.

Android 12 presenta tres interacciones de proceso; FontManagerService , Font Updater , y Application .

El FontManagerService es el sistema de gestión central en el servidor del sistema. FontManagerService almacena los últimos ajustes de fuentes del sistema para el usuario por.

El FontUpdater es un actualizador de fuente conectable que sea de confianza por una signature|privileged comprobación de permisos. Los FontUpdater se comunica con el FontManagerService para obtener, instalar, eliminar o actualizar la configuración actual de fuentes del sistema. El FontUpdater puede pasar a nuevos contenidos de los archivos fuente de los mecanismos de comunicación entre procesos (IPC). El FontManagerService guarda el contenido a una ubicación de almacenamiento legible por todos, como en los /data/fonts archivos. Este almacenamiento está protegido. Puede ser escrito por el FontManagerService únicamente, por la política de SELinux.

Cuando los Application lanzamientos de clase, que pasa a la configuración de fuente sistema como argumentos de la bindApplication método; luego, inicializa la configuración de fuente para que la utilice el proceso de aplicación.

Implementar fuentes personalizadas

Algunos OEM instalan o reemplazan archivos de fuentes en AOSP para mostrar sus marcas. Android 12 admite esta funcionalidad, pero agrega requisitos para mantener las fuentes emoji actualizadas en los dispositivos. Los OEM que no modifican ni actualizan los archivos de fuentes emoji no necesitan usar esta función.

Google actualiza los archivos de fuentes, especialmente los NotoColorEmoji archivos a través de GMS Core, así que no modificar o eliminar la NotoColorEmoji.ttf archivo de la /system partición, y no sacarlo de /system/etc/fonts.xml . Tenga en cuenta las siguientes tres maneras que se pueden personalizar sus fuentes:

  1. Vuelva a colocar la NotoColorEmoji.ttf archivo con una fuente emoji de marca de fabricante.
  2. Modificar el NotoColorEmoji.ttf de archivo para las necesidades del mercado local.
  3. Reemplazar o modificar otros archivos de fuentes.

Si no está modificando las fuentes emoji en AOSP, no es necesario que realice ninguna acción. Si desea personalizar las fuentes de emoji, siga las instrucciones de las siguientes secciones.

Reemplazo de NotoColorEmoji.ttf con fuentes emoji de marca OEM

Para reemplazar la NotoColorEmoji.ttf archivo con el archivo de fuentes emoji de marca de fabricante, poner la fuente emoji justo antes de la cadena de fuente de reserva:

  1. Coloque su propia fuente, llamada OEMCustomEmoji.ttf , en el /system partición.
  2. Modificar /system/etc/fonts.xml como en el código siguiente:

    <family lang="ko">
    <font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font>
    </family>
    <!-- ADD FOLLOWING LINE -->
    <family lang="und-Zsye">
       <font weight="400" style="normal">OEMCustomEmoji.ttf</font>
    </family>
    <!-- END OF MODIFICATION -->
    <family lang="und-Zsye">
       <font weight="400" style="normal">NotoColorEmoji.ttf</font>
    </family>
    <family lang="und-Zsym">
       <font weight="400" style="normal">NotoSansSymbols-Regular-Subsetted2.ttf</font>
    </family>
    

Modificación de NotoColorEmoji.ttf para las necesidades del mercado local

Siga estos pasos para personalizar según las necesidades de su mercado local:

  1. Crear su propio NotoColorEmoji archivo con un nombre diferente; por ejemplo, el nombre Modified\_NotoColorEmoji.ttf .
  2. Colocarlo antes de que el original de NotoColorEmoji.ttf archivo.

Después de realizar el paso 2, el glifo modificado apoyado por Modified\NotoColorEmoji.ttf muestra en lugar del original NotoColorEmoji.ttf . Google recomienda lo siguiente:

  • Solo tenga el glifo necesario en esta fuente.
  • Delegar glifos sin modificar a la original NotoColorEmoji.ttf archivo para que sus dispositivos reciben las correcciones de diseño realizados en futuras versiones de emoji.

Retire glifos: Para eliminar glifos de la NotoColorEmoji.ttf archivo, siga los pasos 1 y 2, y especificar glyph ID = 0 en su CMAP.

Use una bandera regional: Si el objetivo es un glifo bandera regional, especifique el ID de glifo como un código de país desconocido. (Usar country code = "ZZ" .)

Hacer un glifo tofu: Puede especificar explícitamente un ID de tofu glifo si quiere utilizar uno. Cuando se especifica glyphID = 0 , las aplicaciones relacionadas interpreta que como “glifo no está disponible”. Por ejemplo, cuando se utiliza este atributo, la Paint#hasGlyph aplicación vuelve false .

Reemplazar o modificar otros archivos de fuentes

Para reemplazar o modificar otras fuentes, la personalización es similar a la de la modificación de las tff archivos para las necesidades del mercado local. Los archivos de fuentes desconocidos que se actualizan en el AOSP en tiempo de ejecución se ignoran y no se actualizan. Google ignora las fuentes desconocidas en su dispositivo. Esto incluye archivos de fuentes que se modificaron a partir de las fuentes originales en AOSP.

Aunque Google realiza las actualizaciones de fuentes en GMS Core, el mecanismo general de actualización de fuentes está abierto a todos los OEM. OEM pueden instalar actualizadores de fuentes adicionales siguiendo los pasos de requisitos previos de reuniones , firma de ficheros , y Haciendo tiempo de ejecución de la fuente actualizaciones .

Requisitos previos de la reunión

El mecanismo de actualización de fuente utiliza el fs-verity característica del kernel de Linux. Compruebe que el dispositivo es fs-verity compatible e incluir el certificado en su dispositivo.

Firma de archivos de fuentes

Dado que los archivos de fuentes son recursos riesgosos, deben verificarse con claves confiables. Revise cuidadosamente todos los archivos de fuentes que se van a actualizar y firme con su clave privada. La firma debe ser fs-verity compatibles.

Realizar actualizaciones de fuentes en tiempo de ejecución

Los FontManger realiza app sistema de fuentes actualizaciones. El FontManager aplicación proporciona el estado más reciente de fuentes del sistema instalado y la capacidad de ficheros de actualización con firmas. Para llamar a actualizar aplicaciones, agregar la UPDATE_FONT signature|privileged permiso para su AllowList aplicación , y a su manifiesta .

Proporcionar la UPDATE_FONT signature|privileged permiso para la función de actualización de su aplicación.