Benutzerdefinierte Schriftarten implementieren

In Android 11 und niedriger wird das Aktualisieren der auf dem Gerät installierten Schriftartdateien in AOSP (in der /system/fonts) oder die Anbieterpartitionen (in der /product/fonts- oder /system/fonts Partitionen) erfordert ein Systemupdate des OEMs. Dieses hat großen Einfluss auf die Kompatibilität von Emojis. In Mit Android 12 können Sie das FontManager-System verwenden Dienst zum Verwalten installierter Schriftartdateien und zum Aktualisieren von auf dem Gerät installierten Schriftartdateien ohne Systemupdate.

Android 12 umfasst drei Prozessinteraktionen: FontManagerService, Font Updater und Application.

FontManagerService ist das zentrale Verwaltungssystem auf dem Systemserver. FontManagerService speichert die neuesten nutzerspezifischen Systemschrifteinstellungen.

FontUpdater ist ein austauschbarer Schriftart-Updater, dem ein Berechtigungsprüfung für signature|privileged. FontUpdater kommuniziert mit dem FontManagerService, um die aktuelle Systemschriftart abzurufen, zu installieren, zu entfernen oder zu aktualisieren Einstellungen. Das FontUpdater kann neue Inhalte der Schriftartdatei durch Interprozess übergeben. Kommunikationsmechanismen (IPC). Der FontManagerService speichert den Inhalt unter an einem weltweit lesbaren Speicherort, z. B. in den /data/fonts-Dateien. Dieses dass der Speicher geschützt ist. Sie kann nur vom FontManagerService geschrieben werden, indem SELinux-Richtlinie.

Wenn die Application-Klasse gestartet wird, übergibt sie die Systemschrifteinstellungen als der bindApplication-Methode; werden die Schriftarteinstellungen App-Prozess genutzt werden kann.

Schriftarten anpassen

Einige OEMs installieren oder ersetzen Schriftartdateien in AOSP, um ihre Marken zu präsentieren. Android 12 unterstützt diese Funktion, Anforderungen, damit die Emoji-Schriftarten auf den Geräten immer aktuell sind. OEMs, die keine Änderungen oder Emoji-Schriftartdateien aktualisieren, müssen Sie diese Funktion nicht verwenden.

Google aktualisiert die Schriftartdateien, insbesondere die NotoColorEmoji-Dateien über GMS Hauptinhalte. Ändern oder entfernen Sie die Datei NotoColorEmoji.ttf daher nicht aus dem /system-Partition an und entfernen Sie sie nicht aus /system/etc/fonts.xml. Beachten Sie die Es gibt drei Möglichkeiten, Ihre Schriftarten anpassen zu können:

  1. Ersetzen Sie die Datei NotoColorEmoji.ttf durch eine Emoji-Schriftart des OEMs.
  2. Passen Sie die Datei NotoColorEmoji.ttf an Ihre lokalen Marktanforderungen an.
  3. Ersetzen oder ändern Sie andere Schriftartdateien.

Wenn Sie keine Emoji-Schriftarten in AOSP ändern, müssen Sie nichts unternehmen. Wenn Emoji-Schriftarten anpassen möchten, folgen Sie der Anleitung unten .

Ersetzen Sie „NotoColorEmoji.ttf“ durch Emoji-Schriftarten des OEMs.

So ersetzen Sie die NotoColorEmoji.ttf-Datei durch die Emoji-Schriftartdatei Ihres OEMs: Platzieren Sie die Emoji-Schriftart direkt vor der Fallback-Kette:

  1. Fügen Sie Ihre eigene Schriftart mit dem Namen OEMCustomEmoji.ttf in die Partition /system ein.
  2. Ändern Sie /system/etc/fonts.xml wie im folgenden Code:

    <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>
    

NotoColorEmoji.ttf für lokale Märkte anpassen

Führen Sie die folgenden Schritte aus, um sie an Ihre lokalen Märkte anzupassen:

  1. Erstellen Sie eine eigene NotoColorEmoji-Datei mit einem anderen Namen. zum Beispiel und nennen Sie sie Modified\_NotoColorEmoji.ttf.
  2. Platzieren Sie es vor der ursprünglichen NotoColorEmoji.ttf-Datei.

Nachdem Sie Schritt 2 ausgeführt haben, wird das geänderte Symbol Modified\NotoColorEmoji.ttf wird anstelle des ursprünglichen NotoColorEmoji.ttf-Elements angezeigt. Google empfiehlt Folgendes:

  • Nur die erforderliche Glyphe in dieser Schriftart verwenden.
  • Delegieren Sie unveränderte Glyphen an die ursprüngliche NotoColorEmoji.ttf-Datei, sodass erhalten deine Geräte alle Designkorrekturen, die in zukünftigen Emoji-Versionen vorgenommen werden.

Bildzeichen entfernen:Wenn Sie Bildzeichen aus der Datei NotoColorEmoji.ttf entfernen möchten, folgen Sie Schritt 1 und 2 und geben Sie glyph ID = 0 in Ihrer cmap an.

Flag mit „regional“ verwenden:Wenn das Zielsymbol ein regionales Flag ist, geben Sie das Flag „Regional“ an. Glyphen-ID als unbekannter Ländercode angezeigt. (country code = "ZZ" verwenden.)

Tofu-Glyphe erstellen:Sie können bei Bedarf explizit eine Tofu-Glyphen-ID angeben. um eine zu verwenden. Wenn du glyphID = 0 angibst, interpretiert die zugehörige App dies als „Glyphe ist nicht verfügbar“. Wenn Sie beispielsweise dieses Attribut verwenden, Die App „Paint#hasGlyph“ gibt false zurück.

Andere Schriftartdateien ersetzen oder ändern

Um andere Schriftarten zu ersetzen oder zu ändern, erfolgt die Anpassung ähnlich wie bei die TTF-Dateien an die lokalen Marktanforderungen angepasst. Unbekannte Schriftartdateien, die während der Laufzeit im AOSP aktualisiert werden, werden ignoriert und nicht aktualisiert. Google ignoriert unbekannte Schriftarten auf Ihrem Gerät. Dazu gehören auch Schriftartdateien, Originalschriftarten in AOSP.

Obwohl die Schriftart in GMS Core von Google aktualisiert wird, führt die allgemeine für alle OEMs zur Verfügung. OEMs können zusätzliche Schriftart-Updater installieren, indem sie die Schritte unter Voraussetzungen für Videokonferenzen, Schriftartdateien signieren und Schriftarten für die Laufzeit aktualisieren.

Voraussetzungen für Meet

Der Mechanismus zur Aktualisierung von Schriftarten verwendet die Linux-Kernelfunktion fs-verity. Prüfen Sie, ob Ihr Gerät ist fs-verity-konform und das Zertifikat muss mit Ihrem Gerät verknüpft sein.

Schriftartdateien signieren

Da Schriftartdateien riskante Ressourcen sind, müssen sie mit vertrauenswürdigen Schlüsseln verifiziert werden. Überprüfen Sie sorgfältig alle Schriftartdateien, die aktualisiert werden sollen, und unterschreiben Sie mit Ihrem privaten Schlüssel enthält. Die Signatur muss mitfs-verity kompatibel sein.

Schriftart für Laufzeit aktualisieren

Die FontManger-System-App aktualisiert Schriftarten. Die FontManager App bietet den aktuellen Schriftstatus des installierten Systems und die Möglichkeit, Schriftartdateien zu aktualisieren, mit Signaturen. Wenn du Update-Apps aufrufen möchtest, füge die UPDATE_FONT signature|privileged hinzu die Berechtigung für Ihre App-Zulassungsliste zu erteilen, und an dein Manifest.

Dem Updater deiner App die Berechtigung „UPDATE_FONT signature|privileged“ erteilen .