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