অ্যান্ড্রয়েড 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
ফাইলগুলিতে। এই স্টোরেজ পাহারা দেওয়া হয়. এটি SELinux নীতি দ্বারা শুধুমাত্র FontManagerService
দ্বারা লেখা যেতে পারে।
যখন Application
ক্লাস চালু হয়, এটি bindApplication
পদ্ধতির আর্গুমেন্ট হিসাবে সিস্টেম ফন্ট সেটিংস পাস করে; তারপর এটি অ্যাপ্লিকেশন প্রক্রিয়া দ্বারা ব্যবহারের জন্য ফন্ট সেটিংস শুরু করে।
কাস্টম ফন্ট বাস্তবায়ন
কিছু OEM তাদের ব্র্যান্ড দেখানোর জন্য AOSP-এ ফন্ট ফাইল ইনস্টল বা প্রতিস্থাপন করে। অ্যান্ড্রয়েড 12 এই কার্যকারিতা সমর্থন করে, তবে ডিভাইসগুলিতে ইমোজি ফন্ট আপডেট রাখতে প্রয়োজনীয়তা যুক্ত করে। যে OEMগুলি ইমোজি ফন্ট ফাইলগুলি সংশোধন বা আপডেট করে না তাদের এই বৈশিষ্ট্যটি ব্যবহার করার প্রয়োজন নেই৷
Google ফন্ট ফাইলগুলি, বিশেষ করে NotoColorEmoji
ফাইলগুলিকে GMS Core-এর মাধ্যমে আপডেট করে, তাই /system
পার্টিশন থেকে NotoColorEmoji.ttf
ফাইলটিকে পরিবর্তন বা অপসারণ করবেন না এবং এটিকে /system/etc/fonts.xml
থেকে সরিয়ে দেবেন না। নিম্নলিখিত তিনটি উপায়ে নোট করুন যে আপনি আপনার ফন্টগুলি কাস্টমাইজ করতে পারেন :
-
NotoColorEmoji.ttf
ফাইলটিকে একটি OEM-ব্র্যান্ডেড ইমোজি ফন্ট দিয়ে প্রতিস্থাপন করুন। - আপনার স্থানীয় বাজারের প্রয়োজনের জন্য
NotoColorEmoji.ttf
ফাইলটি পরিবর্তন করুন। - অন্যান্য ফন্ট ফাইলগুলি প্রতিস্থাপন বা পরিবর্তন করুন।
আপনি যদি AOSP-এ ইমোজি ফন্ট পরিবর্তন না করেন, তাহলে আপনাকে পদক্ষেপ নেওয়ার দরকার নেই। আপনি যদি ইমোজি ফন্টগুলি কাস্টমাইজ করতে চান তবে নিম্নলিখিত বিভাগে নির্দেশাবলী ব্যবহার করুন৷
NotoColorEmoji.ttf কে OEM-ব্র্যান্ডেড ইমোজি ফন্ট দিয়ে প্রতিস্থাপন করা হচ্ছে
আপনার OEM-ব্র্যান্ডেড ইমোজি ফন্ট ফাইলের সাথে NotoColorEmoji.ttf
ফাইলটি প্রতিস্থাপন করতে, ফন্ট ফলব্যাক চেইনের ঠিক আগে ইমোজি ফন্ট রাখুন:
-
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 অনুসরণ করুন এবং আপনার cmap এ glyph ID = 0
উল্লেখ করুন৷
একটি আঞ্চলিক পতাকা ব্যবহার করুন: লক্ষ্য গ্লিফ একটি আঞ্চলিক পতাকা হলে, একটি অজানা দেশের কোড হিসাবে গ্লিফ আইডি উল্লেখ করুন। ( country code = "ZZ"
ব্যবহার করুন।)
একটি টোফু গ্লাইফ তৈরি করুন: আপনি যদি একটি ব্যবহার করতে চান তবে আপনি স্পষ্টভাবে একটি টফু গ্লাইফ আইডি নির্দিষ্ট করতে পারেন। আপনি যখন glyphID = 0
উল্লেখ করেন, তখন সংশ্লিষ্ট অ্যাপটি ব্যাখ্যা করে যে "গ্লাইফ উপলব্ধ নয়"। উদাহরণস্বরূপ, যখন আপনি এই বৈশিষ্ট্যটি ব্যবহার করেন, Paint#hasGlyph
অ্যাপটি false
রিটার্ন করে।
অন্যান্য ফন্ট ফাইলগুলি প্রতিস্থাপন বা পরিবর্তন করুন
অন্যান্য ফন্ট প্রতিস্থাপন বা পরিবর্তন করার জন্য, কাস্টমাইজেশন স্থানীয় বাজারের প্রয়োজনের জন্য tff
ফাইলগুলি পরিবর্তন করার মতই। রানটাইমে AOSP-এ আপডেট করা অজানা ফন্ট ফাইলগুলি উপেক্ষা করা হয়, এবং আপডেট করা হয় না। Google আপনার ডিভাইসে অজানা ফন্ট উপেক্ষা করে। এর মধ্যে ফন্ট ফাইলগুলি রয়েছে যা AOSP-এর মূল ফন্টগুলি থেকে পরিবর্তিত হয়েছে৷
যদিও ফন্ট আপডেটগুলি জিএমএস কোরে Google দ্বারা করা হয়, সাধারণ ফন্ট আপডেট প্রক্রিয়া সমস্ত OEM-এর জন্য উন্মুক্ত। OEMs মিটিং পূর্বশর্ত , ফন্ট ফাইল সাইন ইন করা এবং রানটাইম ফন্ট আপডেট করার ধাপগুলি ব্যবহার করে অতিরিক্ত ফন্ট আপডেটার ইনস্টল করতে পারে।
সভা পূর্বশর্ত
ফন্ট আপডেট প্রক্রিয়া fs-verity
Linux কার্নেল বৈশিষ্ট্য ব্যবহার করে। আপনার ডিভাইস fs-verity
সম্মত কিনা যাচাই করুন এবং আপনার ডিভাইসে সার্টিফিকেট অন্তর্ভুক্ত করুন।
ফন্ট ফাইল সাইন ইন
যেহেতু ফন্ট ফাইলগুলি ঝুঁকিপূর্ণ সংস্থান, সেগুলিকে বিশ্বস্ত কী দিয়ে যাচাই করতে হবে৷ আপডেট করা হবে এমন সমস্ত ফন্ট ফাইল সাবধানে পর্যালোচনা করুন এবং আপনার ব্যক্তিগত কী দিয়ে সাইন ইন করুন। স্বাক্ষর অবশ্যই fs-verity
সামঞ্জস্যপূর্ণ হতে হবে।
রানটাইম ফন্ট আপডেট করা
FontManger
সিস্টেম অ্যাপটি ফন্ট আপডেট করে। FontManager
অ্যাপটি সর্বশেষ ইনস্টল করা সিস্টেম ফন্ট স্ট্যাটাস এবং স্বাক্ষর সহ ফন্ট ফাইল আপডেট করার ক্ষমতা প্রদান করে। আপডেট অ্যাপ্লিকেশানগুলিকে কল করতে, UPDATE_FONT signature|privileged
অনুমতি আপনার অ্যাপ অনুমোদন তালিকায় এবং আপনার ম্যানিফেস্টে যোগ করুন৷
আপনার অ্যাপের আপডেটার ফাংশনে UPDATE_FONT signature|privileged
অনুমতি প্রদান করুন৷