ב-Android 11 ומטה, עדכון קבצי גופנים המותקנים במכשיר ב-AOSP (במחיצת /system/fonts
) או במחיצות הספק (במחיצות /product/fonts
או /system/fonts
) דורש עדכון מערכת מה-OEM. לדרישה הזו יש השפעה משמעותית על תאימות האמוג'י. באנדרואיד 12 אתה יכול להשתמש בשירות המערכת FontManager
כדי לנהל קבצי גופנים מותקנים ולעדכן קבצי גופנים מותקנים במכשיר ללא עדכון מערכת.
אנדרואיד 12 כולל שלוש אינטראקציות תהליך; FontManagerService
, Font Updater
Application
.
FontManagerService
היא מערכת הניהול המרכזית בשרת המערכת. FontManagerService
מאחסן את הגדרות הגופן העדכניות ביותר של מערכת לכל משתמש.
ה- FontUpdater
הוא עדכון גופנים הניתן לחיבור שניתן לסמוך עליו באמצעות בדיקת הרשאות signature|privileged
FontUpdater
מתקשר עם FontManagerService
כדי לקבל, להתקין, להסיר או לעדכן את הגדרות גופני המערכת הנוכחיות. ה- FontUpdater
יכול להעביר תוכן קובץ גופן חדש על ידי מנגנוני תקשורת בין-תהליכים (IPC). ה- FontManagerService
שומר את התוכן למקום אחסון הניתן לקריאה בעולם, כגון בקבצי /data/fonts
. האחסון הזה שמור. זה יכול להיכתב על ידי FontManagerService
בלבד , על ידי מדיניות SELinux.
כאשר מחלקת Application
מופעלת, היא מעבירה את הגדרות גופני המערכת כארגומנטים של שיטת bindApplication
; לאחר מכן הוא מאתחל את הגדרות הגופן לשימוש על ידי תהליך האפליקציה.
התאם אישית גופנים
חלק מיצרני OEM מתקינים או מחליפים קובצי גופן ב-AOSP כדי להציג את המותגים שלהם. אנדרואיד 12 תומך בפונקציונליות זו, אך מוסיף דרישות לשמירה על עדכון גופני האמוג'י במכשירים. יצרני OEM שאינם משנים או מעדכנים קובצי גופן אמוג'י אינם צריכים להשתמש בתכונה זו.
גוגל מעדכנת את קובצי הגופן, במיוחד את קובצי NotoColorEmoji
דרך GMS Core, אז אל תשנה או תסיר את הקובץ NotoColorEmoji.ttf
ממחיצת /system
, ואל תסיר אותו מ-/system/ /system/etc/fonts.xml
. שים לב לשלושת הדרכים הבאות שבהן תוכל להתאים אישית את הגופנים שלך:
- החלף את הקובץ
NotoColorEmoji.ttf
בגופן אמוג'י ממותג OEM. - שנה את הקובץ
NotoColorEmoji.ttf
לצרכי השוק המקומי שלך. - החלף או שנה קובצי גופן אחרים.
אם אינך משנה גופני אמוג'י ב-AOSP, אינך צריך לנקוט בפעולה. אם ברצונך להתאים אישית גופני אמוג'י, השתמש בהוראות בסעיפים הבאים.
החלף את NotoColorEmoji.ttf בגופני אמוג'י ממותגי OEM
כדי להחליף את הקובץ NotoColorEmoji.ttf
בקובץ גופני האמוג'י של מותג OEM שלך, הצב את גופן האימוג'י ממש לפני שרשרת הגופן הנסוג:
- מקם גופן משלך, הנקרא
OEMCustomEmoji.ttf
, במחיצת/system
. שנה
/system/etc/fonts.xml
כמו בקוד הבא:<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 לצרכי השוק המקומי
בצע את השלבים הבאים כדי להתאים אישית לצרכי השוק המקומי שלך:
- צור קובץ
NotoColorEmoji
משלך עם שם אחר; לדוגמה, שם אותוModified\_NotoColorEmoji.ttf
. - הנח אותו לפני הקובץ המקורי
NotoColorEmoji.ttf
.
לאחר ביצוע שלב 2, הגליף המשונה הנתמך על ידי Modified\NotoColorEmoji.ttf
מופיע במקום ה- NotoColorEmoji.ttf
המקורי. גוגל ממליצה על הדברים הבאים:
- יש רק את הגליף הדרוש בגופן הזה.
- האצל גליפים ללא שינוי לקובץ
NotoColorEmoji.ttf
המקורי כך שהמכשירים שלך יקבלו כל תיקוני עיצוב שנעשו במהדורות אמוג'י עתידיות.
הסרת גליפים: כדי להסיר גליפים מקובץ NotoColorEmoji.ttf
, בצע את שלבים 1 ו-2, וציין glyph ID = 0
ב-cmap שלך.
השתמש בדגל אזורי: אם גליף היעד הוא דגל אזורי, ציין את מזהה הגליף כקוד מדינה לא ידוע. (השתמש country code = "ZZ"
.)
צור גליף טופו: אתה יכול לציין במפורש מזהה גליף טופו אם אתה רוצה להשתמש באחד. כאשר אתה מציין glyphID = 0
, האפליקציה הקשורה מפרשת את זה כ"גליף אינו זמין". לדוגמה, כאשר אתה משתמש בתכונה זו, אפליקציית Paint#hasGlyph
מחזירה false
.
החלף או שנה קובצי גופן אחרים
כדי להחליף או לשנות גופנים אחרים, ההתאמה האישית דומה לזו של שינוי קבצי ה-TTF לצרכי השוק המקומי. מתעלמים מקובצי גופן לא ידועים שמתעדכנים ב-AOSP בזמן ריצה ואינם מתעדכנים. Google מתעלמת מגופנים לא ידועים במכשיר שלך. זה כולל קבצי גופנים ששונו מהגופנים המקוריים ב-AOSP.
למרות שעדכוני גופנים נעשים על ידי גוגל ב-GMS Core, מנגנון עדכון הגופנים הכללי פתוח לכל יצרני ה-OEM. יצרני OEM יכולים להתקין עדכוני גופנים נוספים באמצעות השלבים בדרישות מוקדמות לפגישה , חתימה על קובצי גופן וביצוע עדכוני גופנים בזמן ריצה .
עמידה בדרישות הקדם
מנגנון עדכון הגופנים משתמש בתכונת ליבת fs-verity
Linux. ודא שהמכשיר שלך תואם fs-verity
וכלול את האישור במכשיר שלך.
חתום על קבצי גופנים
מכיוון שקובצי גופן הם משאבים מסוכנים, יש לאמת אותם באמצעות מפתחות מהימנים. סקור בזהירות את כל קבצי הגופנים שיש לעדכן, וחתום עם המפתח הפרטי שלך. החתימה חייבת להיות תואמת fs-verity
.
בצע עדכוני גופנים בזמן ריצה
אפליקציית FontManger
System מבצעת עדכוני גופנים. אפליקציית FontManager
מספקת את מצב גופן המערכת המותקן העדכני ביותר ואת היכולת לעדכן קבצי גופנים עם חתימות. כדי להתקשר לאפליקציות עדכון, הוסף את UPDATE_FONT signature|privileged
לרשימת ההיתרים של האפליקציה שלך ולמניפסט שלך .
ספק את UPDATE_FONT signature|privileged
לפונקציית העדכון של האפליקציה שלך.