অ্যান্ড্রয়েড সাধারণ কার্নেল

AOSP কমন কার্নেল (এটি অ্যান্ড্রয়েড কমন কার্নেল বা ACKs নামেও পরিচিত) হল kernel.org কার্নেলের ডাউনস্ট্রীম এবং এতে Android সম্প্রদায়ের আগ্রহের প্যাচগুলি অন্তর্ভুক্ত রয়েছে যা মেইনলাইন বা দীর্ঘমেয়াদী সমর্থিত (LTS) কার্নেলে একত্রিত হয়নি। এই প্যাচগুলি অন্তর্ভুক্ত করতে পারে:

  • অ্যান্ড্রয়েড বৈশিষ্ট্যগুলির জন্য প্রয়োজনীয় আপস্ট্রিম কার্যকারিতার ব্যাকপোর্ট এবং চেরি-পিক
  • অ্যান্ড্রয়েড ডিভাইসের জন্য ফিচার প্রস্তুত কিন্তু এখনও আপস্ট্রিম ডেভেলপমেন্টের অধীনে (উদাহরণস্বরূপ, এনার্জি অ্যাওয়ার শিডিউলার টাস্ক প্লেসমেন্ট অপ্টিমাইজেশান)।
  • বিক্রেতা/OEM বৈশিষ্ট্য যা অন্যান্য ইকোসিস্টেম অংশীদারদের জন্য উপযোগী (উদাহরণস্বরূপ, sdcardfs)।

android-mainline হল Android বৈশিষ্ট্যগুলির জন্য প্রাথমিক বিকাশ শাখা। যখনই লিনাস টরভাল্ডস একটি রিলিজ বা রিলিজ প্রার্থী পোস্ট করেন তখনই লিনাক্স মেইনলাইন android-mainline একত্রিত হয়। 2019 সালের আগে, সম্প্রতি ঘোষিত এলটিএস কার্নেল ক্লোন করে এবং অ্যান্ড্রয়েড-নির্দিষ্ট প্যাচ যোগ করে অ্যান্ড্রয়েড সাধারণ কার্নেলগুলি তৈরি করা হয়েছিল। এই প্রক্রিয়াটি 2019 সালে পরিবর্তিত হয়ে android-mainline থেকে নতুন অ্যান্ড্রয়েড কমন কার্নেলের শাখায় পরিণত হয়েছে। এই নতুন মডেলটি পোর্ট ফরওয়ার্ড করার উল্লেখযোগ্য প্রচেষ্টা এড়িয়ে যায় এবং একই ফলাফল ক্রমবর্ধমানভাবে সম্পন্ন করে Android প্যাচ পরীক্ষা করে। android-mainline উল্লেখযোগ্য ক্রমাগত পরীক্ষার মধ্য দিয়ে যায়, এই মডেলটি প্রকাশিত হওয়ার দিন থেকে একটি উচ্চ-মানের কার্নেল নিশ্চিত করে৷

যখন একটি নতুন LTS আপস্ট্রিম ঘোষণা করা হয়, তখন সংশ্লিষ্ট সাধারণ কার্নেলটি android-mainline থেকে ব্রাঞ্চ করা হয়। এটি অংশীদারদের android-mainline থেকে মার্জ করে LTS সংস্করণের ঘোষণার আগে একটি প্রকল্প শুরু করতে দেয়৷ নতুন সাধারণ কার্নেল শাখা তৈরি হওয়ার পরে, অংশীদাররা নির্বিঘ্নে নতুন শাখায় মার্জ উৎস পরিবর্তন করতে পারে।

অন্যান্য সাধারণ কার্নেল শাখাগুলি তাদের যুক্ত LTS কার্নেল থেকে নিয়মিত মার্জ গ্রহণ করে। এই মার্জগুলি সাধারণত LTS রিলিজ পোস্ট করার পরপরই করা হয়। উদাহরণস্বরূপ, যখন Linux 4.19.64 পোস্ট করা হয়েছিল, তখন এটি 4.19 সাধারণ কার্নেলে একত্রিত হয়েছিল (উদাহরণস্বরূপ, android-4.19-q )। LTS এবং Android-নির্দিষ্ট বাগ ফিক্সের সাথে আপ-টু-ডেট থাকার জন্য অংশীদারদের নিয়মিতভাবে সাধারণ কার্নেল থেকে তাদের পণ্য কার্নেলে একত্রিত করার জন্য জোরালোভাবে উৎসাহিত করা হয়।

ACK KMI কার্নেল শাখা

GKI কার্নেলের একটি স্থিতিশীল কার্নেল মডিউল ইন্টারফেস আছে। KMI অনন্যভাবে কার্নেল সংস্করণ এবং অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ দ্বারা চিহ্নিত করা হয়, তাই শাখাগুলির নাম <androidRelease>-<kernel version> । উদাহরণস্বরূপ, Android 11-এর জন্য 5.4 GKI কার্নেলের নাম android11-5.4. Android 12-এর জন্য দুটি অতিরিক্ত GKI কার্নেল রয়েছে, android12-5.4 এবং android12-5.10

উত্তরাধিকার ডেজার্ট কার্নেল শাখা

লিগ্যাসি ডেজার্ট কার্নেলগুলি গ্যারান্টি দেওয়ার জন্য তৈরি করা হয়েছিল যে নতুন বৈশিষ্ট্য বিকাশ অ্যান্ড্রয়েড সাধারণ কার্নেল থেকে একত্রিত হওয়ার ক্ষেত্রে হস্তক্ষেপ করবে না। শাখাগুলি যুক্ত ডেজার্ট প্রকাশের আগে তৈরি করা হয়েছিল এবং এলটিএস থেকে নিয়মিত একীভূত হয়, তবে কোনও নতুন বৈশিষ্ট্য নেই। উদাহরণস্বরূপ, android-4.9-q LTS 4.9.y শাখা থেকে মার্জ গ্রহণ করে।

যদি একটি কার্নেল সংস্করণ একটি লঞ্চ কার্নেল না হয়, কোন ডেজার্ট কার্নেল তৈরি করা হয়নি, তবে সাম্প্রতিক প্ল্যাটফর্ম রিলিজের সাথে যুক্ত কার্নেল ভবিষ্যতের Android প্ল্যাটফর্ম রিলিজে আপগ্রেড করার জন্য বৈধ। উদাহরণস্বরূপ, android-4.9-q ছিল android-4.9* ডেজার্ট শাখাগুলির মধ্যে সর্বশেষ, তাই এটি এর আসল প্ল্যাটফর্ম রিলিজ, Android 10 এর সাথে সমর্থিত এবং পরীক্ষিত। এটি 4.9 চালিত ডিভাইসগুলির আপগ্রেড সমর্থনকারী প্ল্যাটফর্ম রিলিজের সাথেও সমর্থিত এবং পরীক্ষিত। কার্নেল: অ্যান্ড্রয়েড 11 এবং অ্যান্ড্রয়েড 12।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজের জন্য ডেজার্ট নামকরণ স্কিম অ্যান্ড্রয়েড 10 এর সাথে বাদ দেওয়া হয়েছিল, শেষ ডেজার্ট রিলিজগুলিকে android-4.14-r এবং android-4.19-r বলা হত এর পরিবর্তে android-4.14-stable এবং android-4.19-stable বলা হত।

অ্যান্ড্রয়েড 11 দিয়ে শুরু হওয়া GKI কার্নেল দ্বারা ডেজার্ট কার্নেলগুলিকে স্থানান্তর করা হয়েছে, তাই সমর্থিত ডেজার্ট কার্নেলের সম্পূর্ণ তালিকা এই টেবিলে রয়েছে।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ কার্নেল পর্যন্ত সমর্থিত
অ্যান্ড্রয়েড 10 android-4.9-q
android-4.14-q
android-4.19-q
জানুয়ারী 2023
অ্যান্ড্রয়েড 11 android-4.14-stable
android-4.19-stable
জানুয়ারী 2024
ডিসেম্বর 2024

উত্তরাধিকার রিলিজ কার্নেল শাখা

মাসিক অ্যান্ড্রয়েড সিকিউরিটি বুলেটিনে উদ্ধৃত প্যাচগুলির ব্যাকপোর্ট প্রদানের জন্য রিলিজ কার্নেলগুলি বজায় রাখা হয়৷ এগুলি প্রতিটি লঞ্চ কার্নেলের জন্য তৈরি করা হয়েছিল যখন একটি নতুন অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ ছিল৷ সাপোর্ট লাইফটাইম এবং সিকিউরিটি প্যাচে বর্ণিত হিসাবে সংশ্লিষ্ট কার্নেল বা প্ল্যাটফর্ম রিলিজ অবচয় হলে সেগুলিকে অবমূল্যায়ন করা হয়।

প্রতি মাসে যখন অ্যান্ড্রয়েড সিকিউরিটি বুলেটিন প্রকাশিত হয়, এই কার্নেলগুলি বুলেটিনে উদ্ধৃত প্যাচগুলির ব্যাকপোর্টগুলির সাথে আপডেট করা হয় যা আপস্ট্রিম কার্নেল এবং অ্যান্ড্রয়েড সাধারণ কার্নেলের সাথে প্রাসঙ্গিক৷ তারা LTS প্যাচগুলি গ্রহণ করে না, তাই ছোট সংস্করণ নম্বর কখনও পরিবর্তন হয় না। এগুলিতে বিক্রেতা-নির্দিষ্ট প্যাচগুলির জন্য ব্যাকপোর্ট থাকে না।

Android 11 এবং পরবর্তী প্ল্যাটফর্ম রিলিজে, অংশীদারদের অবশ্যই ডেজার্ট বা GKI কার্নেল থেকে একত্রিত হতে হবে যাতে Android নিরাপত্তা বুলেটিনে উদ্ধৃত প্যাচগুলি প্রয়োগ করা হয়। Android 11 বা পরবর্তী প্ল্যাটফর্ম রিলিজের জন্য কোনো রিলিজ কার্নেল তৈরি করা হবে না।

তাই, 14টি রিলিজ কার্নেলের সম্পূর্ণ তালিকা এই টেবিলে দেখানো হয়েছে, এবং কোনটি যোগ করা হবে না।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ কার্নেল পর্যন্ত সমর্থিত
অ্যান্ড্রয়েড 10 android-4.9-q-release
android-4.14-q-release
android-4.19-q-release
জানুয়ারী 2023

বৈশিষ্ট্য এবং লঞ্চ কার্নেল

প্রতিটি অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ তিনটি লিনাক্স কার্নেল সংস্করণের উপর ভিত্তি করে নতুন ডিভাইস চালু করা সমর্থন করে। নীচের সারণীতে দেখানো হয়েছে, Android 11-এর জন্য লঞ্চ কার্নেলগুলি হল android-4.14-stable , android-4.19-stable , এবং android11-5.4

যেহেতু প্ল্যাটফর্ম রিলিজ আপডেট করার সময় কার্নেল আপগ্রেডের সাধারণত প্রয়োজন হয় না, প্ল্যাটফর্ম রিলিজের জন্য সর্বশেষ বৈশিষ্ট্যগুলি অনুপস্থিত কার্নেলগুলি এখনও ডিভাইস চালু করতে ব্যবহার করা যেতে পারে। তাই Android 10-এর জন্য ডিজাইন করা কার্নেল, যেমন android-4.19-q , প্ল্যাটফর্ম রিলিজটিকে Android 11-এ আপগ্রেড করার পরেও ডিভাইসগুলিতে ব্যবহার করা যেতে পারে। Android 12 দিয়ে শুরু করে, লঞ্চ কার্নেলের তুলনায় কম বৈশিষ্ট্য কার্নেল থাকবে স্থিতিশীল KMI যা অবশ্যই সমর্থিত হবে।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ কার্নেল চালু করুন বৈশিষ্ট্য কার্নেল
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10 1
android14-6.1
android14-5.15
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10 1
android12-5.4 1
android11-5.4 1
android13-5.15
android13-5.10
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4 1
android-4.19-stable
android12-5.10
android12-5.4
Android 11 (2020) android11-5.4
android-4.19-stable
android-4.14-stable
android11-5.4
android-4.19-stable
android-4.14-stable
Android 10 (2019) android-4.19-q
android-4.14-q
android-4.9-q

android-4.19-q
android-4.14-q
android-4.9-q

1 অতিরিক্ত বিধিনিষেধ প্রযোজ্য হতে পারে যদি সংশ্লিষ্ট BSP প্ল্যাটফর্ম প্রকাশের জন্য আপডেট করা হয়। আরও সাধারণ পরিভাষায়, কার্নেলের Android রিলিজ সংখ্যা অবশ্যই লক্ষ্য FCM সংস্করণের চেয়ে বেশি বা সমান হতে হবে। ভেন্ডর ইন্টারফেস অবজেক্ট দেখুন - বিস্তারিত জানার জন্য কার্নেল শাখার সাথে মিল করুন

সাধারণ কার্নেল অনুক্রম

অ্যান্ড্রয়েড-মেইনলাইন থেকে শাখা

সাধারণ কার্নেল অনুক্রমের শীর্ষ স্তর চিত্র 1 এ দেখানো হয়েছে।

অ্যান্ড্রয়েড-মেইনলাইন কার্নেল থেকে সাধারণ কার্নেল তৈরি করা

চিত্র 1. অ্যান্ড্রয়েড-মেইনলাইন কার্নেল থেকে সাধারণ কার্নেল তৈরি করা

লক্ষ্য করুন যে নতুন অ্যান্ড্রয়েড কমন কার্নেল android12-5.10 2020 সালে android-mainline থেকে ব্রাঞ্চ করা হয়েছিল। 2021 সালে, যখন পরবর্তী LTS ঘোষণা করা হয়েছিল, তখন android13-5.15 android-mainline থেকে ব্রাঞ্চ করা হয়েছিল।

চিত্র 1 এ দেখানো হয়েছে, প্রতিটি কার্নেল সংস্করণ দুটি GKI কার্নেলের ভিত্তি। উদাহরণস্বরূপ, দুটি v5.4 কার্নেল হল android11-5.4 এবং android12-5.4 , উভয়ই তাদের নিজ নিজ প্ল্যাটফর্ম রিলিজের জন্য বৈশিষ্ট্য কার্নেল। এটি 5.10 এর ক্ষেত্রেও হবে; android12-5.10 তৈরি করা হয়েছিল যখন LTS ঘোষণা করা হয়েছিল এবং Android 13-এর জন্য বৈশিষ্ট্যগুলির বিকাশের অনুমতি দেওয়ার জন্য 2021 সালের বসন্তে কার্নেল বৈশিষ্ট্য সম্পূর্ণ মাইলফলক এ android13-5.10 android12-5.10 থেকে ব্রাঞ্চ করবে।

ACK KMI শাখা জীবনচক্র

একটি ACK KMI শাখার জীবনচক্র চিত্র 2-এ নীচে দেখানো হয়েছে।

5.10 ACK KMI শাখা জীবনচক্র

চিত্র 2. 5.10 ACK KMI শাখা জীবনচক্র

উন্নয়ন প্রক্রিয়া এবং শাখা জীবনচক্রকে স্পষ্ট করার জন্য, চিত্র 2 5.10-এর জন্য ACK KMI শাখাগুলিতে ফোকাস করে।

প্রতিটি ACK KMI শাখা তিনটি ধাপের মধ্যে দিয়ে চিত্র 2-এ নির্দেশিত প্রতিটি শাখায় বিভিন্ন রঙের মাধ্যমে। যেমন দেখানো হয়েছে, ফেজ নির্বিশেষে LTS নিয়মিতভাবে একত্রিত হয়।

উন্নয়ন পর্যায়

এটি তৈরি হয়ে গেলে, একটি ACK KMI শাখা উন্নয়ন পর্যায়ে প্রবেশ করে (চিত্র 2-এ dev ), এবং পরবর্তী অ্যান্ড্রয়েড প্ল্যাটফর্ম প্রকাশের জন্য বৈশিষ্ট্য অবদানের জন্য উন্মুক্ত। চিত্র 2-এ, android12-5.10 তৈরি করা হয়েছিল যখন 5.10 কে নতুন আপস্ট্রিম LTS কার্নেল হিসাবে ঘোষণা করা হয়েছিল। একটি কার্নেল সংস্করণের জন্য দ্বিতীয় ACK KMI শাখাটি পরবর্তী প্রকাশের বিকাশের অনুমতি দেওয়ার জন্য আগে তৈরি করা হতে পারে। চিত্র 2-এ, android13-5.10 তৈরি হয় যখন android12-5.10 বিকাশের পর্যায় থেকে বেরিয়ে আসে।

স্থিতিশীলতার পর্যায়

যখন ACK KMI শাখাটিকে বৈশিষ্ট্য সম্পূর্ণরূপে ঘোষণা করা হয়, তখন এটি স্ট্যাবিলাইজেশন পর্বে প্রবেশ করে, চিত্র 2-এ স্টাব হিসাবে লেবেল করা হয়েছে৷ অংশীদার বৈশিষ্ট্য এবং বাগ সংশোধনগুলি এখনও গৃহীত হয়, তবে ইন্টারফেসকে প্রভাবিত করে এমন কোনও পরিবর্তন সনাক্ত করতে KMI ট্র্যাকিং সক্ষম করা হয়েছে৷ এই পর্যায়ে, KMI-ব্রেকিং পরিবর্তনগুলি গৃহীত হয়, তবে KMI সংজ্ঞাটি প্রয়োজনীয় হিসাবে আপডেট করা আবশ্যক। KMI পর্যবেক্ষণের বিস্তারিত জানার জন্য GKI ওভারভিউ দেখুন।

KMI হিমায়িত ফেজ

একটি নতুন প্ল্যাটফর্ম রিলিজ AOSP-এ পুশ করার আগে, ACK KMI শাখা হিমায়িত করা হয় এবং শাখার আজীবনের জন্য হিমায়িত থাকে। এর মানে হল যে কোনও KMI-ব্রেকিং পরিবর্তনগুলি গ্রহণ করা হয় না যদি না একটি গুরুতর নিরাপত্তা সমস্যা চিহ্নিত করা হয় যা স্থিতিশীল KMI-কে প্রভাবিত না করে প্রশমিত করা যায় না। KMI ভাঙ্গন এড়াতে, LTS থেকে একত্রিত কিছু প্যাচ সংশোধন করা হতে পারে বা বাদ দেওয়া হতে পারে যদি অ্যান্ড্রয়েড ডিভাইসের জন্য ফিক্সের প্রয়োজন না হয়।

যখন একটি ACK KMI শাখা হিমায়িত করা হয়, তখন বাগ সংশোধন এবং অংশীদার বৈশিষ্ট্যগুলি গ্রহণ করা যেতে পারে যতক্ষণ না বিদ্যমান KMI সাধারণ কার্নেলটি ভাঙা না হয়। KMI নতুন রপ্তানি চিহ্নের সাথে প্রসারিত করা যেতে পারে যতক্ষণ না বর্তমান KMI গঠিত ইন্টারফেসগুলি প্রভাবিত না হয়। যখন নতুন ইন্টারফেসগুলি KMI-তে যোগ করা হয়, তখন সেগুলি অবিলম্বে স্থিতিশীল হয়ে যায় এবং ভবিষ্যতের পরিবর্তনগুলির দ্বারা ভাঙা যায় না।

উদাহরণ স্বরূপ, KMI ইন্টারফেস সাধারণ কার্নেল দ্বারা ব্যবহৃত কাঠামোতে একটি ক্ষেত্র যোগ করে এমন একটি পরিবর্তন অনুমোদিত নয় কারণ এটি ইন্টারফেসের সংজ্ঞা পরিবর্তন করে:

struct foo {
  int original_field1;
  int original_field2;
  int new_field;  // Not allowed
};

int do_foo(struct foo &myarg)
{
  do_stuff(myarg);
}
EXPORT_SYMBOL_GPL(do_foo);

যাইহোক, একটি নতুন ফাংশন যোগ করা ঠিক আছে:

struct foo2 {
  struct foo orig_foo;
  int new_field;
};

int do_foo2(struct foo2 &myarg)
{
  do_stuff2(myarg);
}
EXPORT_SYMBOL_GPL(do_foo2);

GKI কার্নেলের আজীবনের জন্য, ইউজারস্পেসের সাথে পশ্চাদগামী সামঞ্জস্য বজায় রাখা হয় যাতে ডিভাইসটি চালু করা Android প্ল্যাটফর্ম রিলিজের জন্য কার্নেল নিরাপদে ব্যবহার করা যায়। পূর্ববর্তী রিলিজের সাথে ক্রমাগত পরীক্ষা নিশ্চিত করে যে সামঞ্জস্য বজায় রাখা হয়েছে। সুতরাং চিত্র 2-এ, android12-5.10 কার্নেলটি Android 12 ডিভাইস এবং Android 13 ডিভাইসের জন্য ব্যবহার করা যেতে পারে। যেহেতু অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজটি পূর্ববর্তী সংস্করণগুলির সাথেও সামঞ্জস্যপূর্ণ, তাই android12-5.4 কার্নেলটি অ্যান্ড্রয়েড 13 ডিভাইসের জন্য লঞ্চ বা আপগ্রেডের জন্য ব্যবহার করা যেতে পারে।

হিমায়িত পর্বে প্রবেশ করার সময়, শাখাটি কেএমআই সংস্করণ স্ট্রিং সহ গিট-ট্যাগ করা হয় যাতে KMI প্রজন্ম নম্বর থাকে। উদাহরণস্বরূপ, যখন android11-5.4 হিমায়িত করা হয়েছিল, তখন এটি KMI সংস্করণ স্ট্রিং 5.4-android11-0 এর সাথে ট্যাগ করা হয়েছিল যেখানে ট্রেলিং 0 হল KMI প্রজন্মের নম্বর। যদি কোনো নিরাপত্তা সমস্যা বা অন্য কোনো ইভেন্ট থাকে যার জন্য একটি KMI-পরিবর্তন প্যাচ গ্রহণ করা প্রয়োজন, KMI জেনারেশন নম্বর বৃদ্ধি করা হয় এবং শাখাটিকে পুনরায় ট্যাগ করা হয়। উদাহরণস্বরূপ, যদি এই ধরনের পরিবর্তন android11-5.4 এ গৃহীত হয়, তাহলে শাখাটিকে নতুন KMI সংস্করণ, 5.4-android11-1 দিয়ে ট্যাগ করা হবে। বর্তমান KMI প্রজন্মটি uname কমান্ড ব্যবহার করে পাওয়া যাবে:

$ uname -r
5.4.61-android11-0-00153-ga972f59040e4

প্ল্যাটফর্ম প্রকাশের পরের সংখ্যাটি হল KMI প্রজন্ম (এই ক্ষেত্রে 0)।

KMI জেনারেশন পরিবর্তন হলে, কার্নেল আগের KMI জেনারেশনের সাথে মানানসই বিক্রেতা মডিউলগুলির সাথে সামঞ্জস্যপূর্ণ নয়, তাই মডিউলগুলিকে অবশ্যই কার্নেলের সাথে সিঙ্ক্রোনাসভাবে পুনর্নির্মাণ এবং আপডেট করতে হবে। KMI প্রজন্মের পরিবর্তনগুলি খুব বিরল হবে বলে আশা করা হচ্ছে।

কার্নেলের মধ্যে সামঞ্জস্য

একই LTS পরিবারের কার্নেলের মধ্যে সামঞ্জস্যের প্রয়োজনীয়তা নতুন GKI কার্নেলের সাথে শুরু করে পরিবর্তিত হচ্ছে।

GKI কার্নেল

GKI কার্নেলগুলি সমস্ত অ্যান্ড্রয়েড প্ল্যাটফর্মের রিলিজের সাথে পিছনের সামঞ্জস্য বজায় রাখে যা কার্নেল সংস্করণকে সমর্থন করে। অতিরিক্তভাবে, অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজগুলি পূর্ববর্তী রিলিজগুলির GKI কার্নেলের সাথে পশ্চাদমুখী-সামঞ্জস্যপূর্ণ। তাই আপনি Android 13 চালিত ডিভাইসগুলিতে Android 12-এর জন্য তৈরি করা android12-5.4 কার্নেল নিরাপদে ব্যবহার করতে পারেন। সমস্ত সমর্থিত রিলিজ সহ GKI কার্নেলের ক্রমাগত VTS এবং CTS পরীক্ষার মাধ্যমে সামঞ্জস্যতা যাচাই করা হয়।

KMI স্থিতিশীল যাতে ভেন্ডর ইমেজে কার্নেল মডিউলের পুনর্নির্মাণের প্রয়োজন ছাড়াই কার্নেল আপডেট করা যায়।

বিভিন্ন GKI কার্নেলের মধ্যে KMI সামঞ্জস্য বজায় রাখা হয় না। সুতরাং, উদাহরণস্বরূপ, সমস্ত মডিউল পুনর্নির্মাণ না করে একটি android12-5.10 একটি android13-5.10 কার্নেল দিয়ে প্রতিস্থাপন করা যাবে না।

GKI কার্নেল শুধুমাত্র প্রাথমিক এবং পরবর্তী রিলিজের জন্য সমর্থিত। সেগুলি পুরানো রিলিজের জন্য সমর্থিত নয়। তাই একটি android13-5.10 কার্নেল Android 12 ডিভাইসে সমর্থিত নয়।

উত্তরাধিকার কার্নেল

লিগ্যাসি ডেজার্ট কার্নেল ( *-q এবং *-stable ) অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ জুড়ে পশ্চাদমুখী সামঞ্জস্যপূর্ণ নয়, তবে পূর্ববর্তী দুটি অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজের কার্নেলগুলি আপগ্রেডের জন্য সমর্থিত। অতএব, android-4.19-q এর উপর ভিত্তি করে একটি কার্নেল ব্যবহার করে Android 10-এর সাথে চালু করা একটি ডিভাইস Android 2020-এ আপগ্রেড করার সময় হয় android-4.19-q কার্নেল ব্যবহার করা চালিয়ে যেতে পারে, অথবা android-4.19-stable সমর্থন করার জন্য বিক্রেতা-নির্দিষ্ট কোড আপডেট করতে পারে। .

সামঞ্জস্য ম্যাট্রিক্স

এই টেবিলটি প্রতিটি Android প্ল্যাটফর্ম রিলিজের সাথে সমর্থিত এবং পরীক্ষিত কার্নেল সংস্করণগুলি দেখায়।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ আপগ্রেডের জন্য সমর্থিত কার্নেল লঞ্চের জন্য সমর্থিত কার্নেল
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.9-q (EOL)
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.14-p (EOL)
android-4.9-q (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.19-stable
android11-5.4
android12-5.4
android12-5.10
Android 11 (2020) android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.14-p (EOL)
android-4.9-q (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.4-p (EOL)
android-4.4-o (EOL)
android11-5.4
android-4.19-stable
android-4.14-stable
Android 10 (2019) android-4.14-stable
android-4.14-p (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.4-p (EOL)
android-4.4-o (EOL)
android-3.18 (EOL)
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.9-q (EOL)

জীবনকাল এবং নিরাপত্তা প্যাচ সমর্থন

অ্যানড্রয়েড সাধারণ কার্নেলগুলি সমর্থিত হয় যতক্ষণ না সংশ্লিষ্ট LTS কার্নেল বা Android প্ল্যাটফর্ম রিলিজ আর সমর্থিত না হয়। একটি কার্নেল সমর্থিত থাকাকালীন, এটি আপস্ট্রিম থেকে এলটিএস মার্জ এবং অ্যান্ড্রয়েড-নির্দিষ্ট কোডের জন্য বাগ ফিক্সগুলি পেতে থাকে। এই সংশোধনগুলির মধ্যে মাসিক অ্যান্ড্রয়েড সিকিউরিটি বুলেটিনগুলিতে উদ্ধৃত সমস্ত কার্নেল সুরক্ষা প্যাচ অন্তর্ভুক্ত রয়েছে যা অ্যান্ড্রয়েড সাধারণ কার্নেলের সাথে প্রাসঙ্গিক৷

অংশীদাররা নিশ্চিত হতে পারে যে নিয়মিতভাবে অ্যান্ড্রয়েড সাধারণ কার্নেলগুলি থেকে একত্রিত করার মাধ্যমে, তারা সম্ভাব্য সমস্ত কার্নেল সুরক্ষা প্যাচ পাচ্ছে।

সাধারণ কার্নেল পরীক্ষা

সাধারণ কার্নেলগুলি বিক্রেতাদের দ্বারা ডাউনস্ট্রিম পরীক্ষার পাশাপাশি বেশ কয়েকটি CI সিস্টেমের সাথে পরীক্ষা করা হয়।

লিনাক্স কার্নেল কার্যকরী পরীক্ষা

লিনাক্স কার্নেল ফাংশনাল টেস্ট (LKFT) পরীক্ষাগুলি শারীরিক arm32 এবং arm64 ডিভাইসের সেটে kselftest, LTP, VTS, এবং CTS সহ বিভিন্ন টেস্ট স্যুট শুরু করে। সাম্প্রতিক পরীক্ষার ফলাফল এখানে পাওয়া যাবে.

কার্নেলসিআই পরীক্ষা

যখনই একটি সাধারণ কার্নেল শাখায় একটি নতুন প্যাচ প্রতিশ্রুতিবদ্ধ হয় তখনই KernelCI বিল্ড-এন্ড-বুট পরীক্ষা শুরু করা হয়। বিভিন্ন বোর্ডে কয়েকশো বিল্ড কনফিগারেশন পরীক্ষা করা হয় এবং বুট করা হয়। অ্যান্ড্রয়েড কার্নেলের সাম্প্রতিক ফলাফল এখানে পাওয়া যাবে।

অ্যান্ড্রয়েড প্রি-সাবমিট এবং পোস্ট সাবমিট টেস্টিং

প্রি-সাবমিট পরীক্ষাগুলি অ্যান্ড্রয়েড সাধারণ কার্নেলগুলিতে প্রবর্তিত হওয়া থেকে ব্যর্থতা প্রতিরোধ করতে ব্যবহৃত হয়। পরীক্ষার ফলাফলের সারাংশ অ্যান্ড্রয়েড সাধারণ কার্নেল গেরিটে কোড পরিবর্তনের 'চেকস' ট্যাবে পাওয়া যাবে।

যখন নতুন প্যাচ ci.android.com- এ একটি Android সাধারণ কার্নেল শাখায় প্রতিশ্রুতিবদ্ধ হয় তখন Android সাধারণ কার্নেল শাখায় নতুন প্রকাশিত বিল্ডগুলিতে Android পোস্টসাবমিট পরীক্ষা করা হয়৷ ci.android.com- এ একটি আংশিক শাখার নাম হিসাবে aosp_kernel প্রবেশ করার মাধ্যমে, আপনি উপলব্ধ ফলাফল সহ কার্নেল শাখাগুলির একটি তালিকা দেখতে পাবেন। উদাহরণস্বরূপ, android-mainline এর ফলাফল এখানে পাওয়া যাবে। একটি নির্দিষ্ট বিল্ডে ক্লিক করার সময়, আপনি Test Results ট্যাবে পরীক্ষার স্থিতি দেখতে পাবেন।

অ্যান্ড্রয়েড প্ল্যাটফর্ম সোর্স ট্রি-তে টেস্ট গ্রুপ kernel-presubmit সহ টেস্ট-ম্যাপিং দ্বারা সংজ্ঞায়িত পরীক্ষাগুলি অ্যান্ড্রয়েড কার্নেল শাখাগুলির জন্য প্রিসাবমিট হিসাবে চালানো হবে। উদাহরণ স্বরূপ test/vts/tests/kernel_proc_file_api_test/TEST_MAPPING- এ নিম্নলিখিত কনফিগারেশনটি Android সাধারণ কার্নেল কোড চেক-ইন-এ প্রিসবুমিট পরীক্ষা হিসাবে vts_kernel_proc_file_api_test সক্ষম করবে।

{
  "kernel-presubmit": [
    {
      "name": "vts_kernel_proc_file_api_test"
    }
  ]
}

0-দিনের পরীক্ষা

0-দিনের পরীক্ষা যখন নতুন প্যাচগুলি প্রতিশ্রুতিবদ্ধ হয় তখন সমস্ত Android সাধারণ কার্নেল শাখাগুলিতে প্যাচ-বাই-প্যাচ পরীক্ষা করে। বিভিন্ন বুট, কার্যকরী এবং কর্মক্ষমতা পরীক্ষা চালানো হয়। পাবলিক গ্রুপ ক্রস-কারনেল-বিল্ড রিপোর্টে যোগ দিন

টেস্ট ম্যাট্রিক্স

অ্যান্ড্রয়েড সাধারণ কার্নেল অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ টেস্ট স্যুট
প্রধান 14 13 12 11 10 এলকেএফটি কার্নেলসিআই প্রি জমা দিন পোস্ট জমা দিন 0-দিন
android-mainline
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.19-stable
android-4.14-stable

Android সাধারণ কার্নেলগুলিতে অবদান রাখুন

সাধারণত, বৈশিষ্ট্য বিকাশ মেইনলাইন লিনাক্সে করা উচিত এবং অ্যান্ড্রয়েড সাধারণ কার্নেলে নয়। আপস্ট্রিম ডেভেলপমেন্টকে জোরালোভাবে উৎসাহিত করা হয়, এবং সেখানে ডেভেলপমেন্ট গৃহীত হওয়ার পরে, প্রয়োজন অনুসারে এটি সহজেই নির্দিষ্ট ACK শাখায় ব্যাকপোর্ট করা যেতে পারে। অ্যান্ড্রয়েড কার্নেল টিম অ্যান্ড্রয়েড ইকোসিস্টেমের সুবিধার জন্য আপস্ট্রিমিং প্রচেষ্টাকে সমর্থন করতে পেরে খুশি৷

Gerrit- এ প্যাচ জমা দিন এবং এই অবদান নির্দেশিকা মেনে চলুন।

,

AOSP কমন কার্নেল (এটি অ্যান্ড্রয়েড কমন কার্নেল বা ACKs নামেও পরিচিত) হল kernel.org কার্নেলের ডাউনস্ট্রীম এবং এতে Android সম্প্রদায়ের আগ্রহের প্যাচগুলি অন্তর্ভুক্ত রয়েছে যা মেইনলাইন বা দীর্ঘমেয়াদী সমর্থিত (LTS) কার্নেলে একত্রিত হয়নি। এই প্যাচগুলি অন্তর্ভুক্ত করতে পারে:

  • অ্যান্ড্রয়েড বৈশিষ্ট্যগুলির জন্য প্রয়োজনীয় আপস্ট্রিম কার্যকারিতার ব্যাকপোর্ট এবং চেরি-পিক
  • অ্যান্ড্রয়েড ডিভাইসের জন্য ফিচার প্রস্তুত কিন্তু এখনও আপস্ট্রিম ডেভেলপমেন্টের অধীনে (উদাহরণস্বরূপ, এনার্জি অ্যাওয়ার শিডিউলার টাস্ক প্লেসমেন্ট অপ্টিমাইজেশান)।
  • বিক্রেতা/OEM বৈশিষ্ট্য যা অন্যান্য ইকোসিস্টেম অংশীদারদের জন্য উপযোগী (উদাহরণস্বরূপ, sdcardfs)।

android-mainline হল Android বৈশিষ্ট্যগুলির জন্য প্রাথমিক বিকাশ শাখা। যখনই লিনাস টরভাল্ডস একটি রিলিজ বা রিলিজ প্রার্থী পোস্ট করেন তখনই লিনাক্স মেইনলাইন android-mainline একত্রিত হয়। 2019 সালের আগে, সম্প্রতি ঘোষিত এলটিএস কার্নেল ক্লোন করে এবং অ্যান্ড্রয়েড-নির্দিষ্ট প্যাচ যোগ করে অ্যান্ড্রয়েড সাধারণ কার্নেলগুলি তৈরি করা হয়েছিল। এই প্রক্রিয়াটি 2019 সালে পরিবর্তিত হয়ে android-mainline থেকে নতুন অ্যান্ড্রয়েড কমন কার্নেলের শাখায় পরিণত হয়েছে। এই নতুন মডেলটি পোর্ট ফরওয়ার্ড করার উল্লেখযোগ্য প্রচেষ্টা এড়িয়ে যায় এবং একই ফলাফল ক্রমবর্ধমানভাবে সম্পন্ন করে Android প্যাচ পরীক্ষা করে। android-mainline উল্লেখযোগ্য ক্রমাগত পরীক্ষার মধ্য দিয়ে যায়, এই মডেলটি প্রকাশিত হওয়ার দিন থেকে একটি উচ্চ-মানের কার্নেল নিশ্চিত করে৷

যখন একটি নতুন LTS আপস্ট্রিম ঘোষণা করা হয়, তখন সংশ্লিষ্ট সাধারণ কার্নেলটি android-mainline থেকে ব্রাঞ্চ করা হয়। এটি অংশীদারদের android-mainline থেকে মার্জ করে LTS সংস্করণের ঘোষণার আগে একটি প্রকল্প শুরু করতে দেয়৷ নতুন সাধারণ কার্নেল শাখা তৈরি হওয়ার পরে, অংশীদাররা নির্বিঘ্নে নতুন শাখায় মার্জ উৎস পরিবর্তন করতে পারে।

অন্যান্য সাধারণ কার্নেল শাখাগুলি তাদের যুক্ত LTS কার্নেল থেকে নিয়মিত মার্জ গ্রহণ করে। এই মার্জগুলি সাধারণত LTS রিলিজ পোস্ট করার পরপরই করা হয়। উদাহরণস্বরূপ, যখন Linux 4.19.64 পোস্ট করা হয়েছিল, তখন এটি 4.19 সাধারণ কার্নেলে একত্রিত হয়েছিল (উদাহরণস্বরূপ, android-4.19-q )। LTS এবং Android-নির্দিষ্ট বাগ ফিক্সের সাথে আপ-টু-ডেট থাকার জন্য অংশীদারদের নিয়মিতভাবে সাধারণ কার্নেল থেকে তাদের পণ্য কার্নেলে একত্রিত করার জন্য জোরালোভাবে উৎসাহিত করা হয়।

ACK KMI কার্নেল শাখা

GKI কার্নেলের একটি স্থিতিশীল কার্নেল মডিউল ইন্টারফেস আছে। KMI অনন্যভাবে কার্নেল সংস্করণ এবং অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ দ্বারা চিহ্নিত করা হয়, তাই শাখাগুলির নাম <androidRelease>-<kernel version> । উদাহরণস্বরূপ, Android 11-এর জন্য 5.4 GKI কার্নেলের নাম android11-5.4. Android 12-এর জন্য দুটি অতিরিক্ত GKI কার্নেল রয়েছে, android12-5.4 এবং android12-5.10

উত্তরাধিকার ডেজার্ট কার্নেল শাখা

লিগ্যাসি ডেজার্ট কার্নেলগুলি গ্যারান্টি দেওয়ার জন্য তৈরি করা হয়েছিল যে নতুন বৈশিষ্ট্য বিকাশ অ্যান্ড্রয়েড সাধারণ কার্নেল থেকে একত্রিত হওয়ার ক্ষেত্রে হস্তক্ষেপ করবে না। শাখাগুলি যুক্ত ডেজার্ট প্রকাশের আগে তৈরি করা হয়েছিল এবং এলটিএস থেকে নিয়মিত একীভূত হয়, তবে কোনও নতুন বৈশিষ্ট্য নেই। উদাহরণস্বরূপ, android-4.9-q LTS 4.9.y শাখা থেকে মার্জ গ্রহণ করে।

যদি একটি কার্নেল সংস্করণ একটি লঞ্চ কার্নেল না হয়, কোন ডেজার্ট কার্নেল তৈরি করা হয়নি, তবে সাম্প্রতিক প্ল্যাটফর্ম রিলিজের সাথে যুক্ত কার্নেল ভবিষ্যতের Android প্ল্যাটফর্ম রিলিজে আপগ্রেড করার জন্য বৈধ। উদাহরণস্বরূপ, android-4.9-q ছিল android-4.9* ডেজার্ট শাখাগুলির মধ্যে সর্বশেষ, তাই এটি এর আসল প্ল্যাটফর্ম রিলিজ, Android 10 এর সাথে সমর্থিত এবং পরীক্ষিত। এটি 4.9 চালিত ডিভাইসগুলির আপগ্রেড সমর্থনকারী প্ল্যাটফর্ম রিলিজের সাথেও সমর্থিত এবং পরীক্ষিত। কার্নেল: অ্যান্ড্রয়েড 11 এবং অ্যান্ড্রয়েড 12।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজের জন্য ডেজার্ট নামকরণ স্কিম অ্যান্ড্রয়েড 10 এর সাথে বাদ দেওয়া হয়েছিল, শেষ ডেজার্ট রিলিজগুলিকে android-4.14-r এবং android-4.19-r বলা হত এর পরিবর্তে android-4.14-stable এবং android-4.19-stable বলা হত।

অ্যান্ড্রয়েড 11 দিয়ে শুরু হওয়া GKI কার্নেল দ্বারা ডেজার্ট কার্নেলগুলিকে স্থানান্তর করা হয়েছে, তাই সমর্থিত ডেজার্ট কার্নেলের সম্পূর্ণ তালিকা এই টেবিলে রয়েছে।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ কার্নেল পর্যন্ত সমর্থিত
অ্যান্ড্রয়েড 10 android-4.9-q
android-4.14-q
android-4.19-q
জানুয়ারী 2023
অ্যান্ড্রয়েড 11 android-4.14-stable
android-4.19-stable
জানুয়ারী 2024
ডিসেম্বর 2024

উত্তরাধিকার রিলিজ কার্নেল শাখা

মাসিক অ্যান্ড্রয়েড সিকিউরিটি বুলেটিনে উদ্ধৃত প্যাচগুলির ব্যাকপোর্ট প্রদানের জন্য রিলিজ কার্নেলগুলি বজায় রাখা হয়৷ এগুলি প্রতিটি লঞ্চ কার্নেলের জন্য তৈরি করা হয়েছিল যখন একটি নতুন অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ ছিল৷ সাপোর্ট লাইফটাইম এবং সিকিউরিটি প্যাচে বর্ণিত হিসাবে সংশ্লিষ্ট কার্নেল বা প্ল্যাটফর্ম রিলিজ অবচয় হলে সেগুলিকে অবমূল্যায়ন করা হয়।

প্রতি মাসে যখন অ্যান্ড্রয়েড সিকিউরিটি বুলেটিন প্রকাশিত হয়, এই কার্নেলগুলি বুলেটিনে উদ্ধৃত প্যাচগুলির ব্যাকপোর্টগুলির সাথে আপডেট করা হয় যা আপস্ট্রিম কার্নেল এবং অ্যান্ড্রয়েড সাধারণ কার্নেলের সাথে প্রাসঙ্গিক৷ তারা LTS প্যাচগুলি গ্রহণ করে না, তাই ছোট সংস্করণ নম্বর কখনও পরিবর্তন হয় না। এগুলিতে বিক্রেতা-নির্দিষ্ট প্যাচগুলির জন্য ব্যাকপোর্ট থাকে না।

Android 11 এবং পরবর্তী প্ল্যাটফর্ম রিলিজে, অংশীদারদের অবশ্যই ডেজার্ট বা GKI কার্নেল থেকে একত্রিত হতে হবে যাতে Android নিরাপত্তা বুলেটিনে উদ্ধৃত প্যাচগুলি প্রয়োগ করা হয়। Android 11 বা পরবর্তী প্ল্যাটফর্ম রিলিজের জন্য কোনো রিলিজ কার্নেল তৈরি করা হবে না।

তাই, 14টি রিলিজ কার্নেলের সম্পূর্ণ তালিকা এই টেবিলে দেখানো হয়েছে, এবং কোনটি যোগ করা হবে না।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ কার্নেল পর্যন্ত সমর্থিত
অ্যান্ড্রয়েড 10 android-4.9-q-release
android-4.14-q-release
android-4.19-q-release
জানুয়ারী 2023

বৈশিষ্ট্য এবং লঞ্চ কার্নেল

প্রতিটি অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ তিনটি লিনাক্স কার্নেল সংস্করণের উপর ভিত্তি করে নতুন ডিভাইস চালু করা সমর্থন করে। নীচের সারণীতে দেখানো হয়েছে, Android 11-এর জন্য লঞ্চ কার্নেলগুলি হল android-4.14-stable , android-4.19-stable , এবং android11-5.4

যেহেতু প্ল্যাটফর্ম রিলিজ আপডেট করার সময় কার্নেল আপগ্রেডের সাধারণত প্রয়োজন হয় না, প্ল্যাটফর্ম রিলিজের জন্য সর্বশেষ বৈশিষ্ট্যগুলি অনুপস্থিত কার্নেলগুলি এখনও ডিভাইস চালু করতে ব্যবহার করা যেতে পারে। তাই Android 10-এর জন্য ডিজাইন করা কার্নেল, যেমন android-4.19-q , প্ল্যাটফর্ম রিলিজটিকে Android 11-এ আপগ্রেড করার পরেও ডিভাইসগুলিতে ব্যবহার করা যেতে পারে। Android 12 দিয়ে শুরু করে, লঞ্চ কার্নেলের তুলনায় কম বৈশিষ্ট্য কার্নেল থাকবে স্থিতিশীল KMI যা অবশ্যই সমর্থিত হবে।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ কার্নেল চালু করুন বৈশিষ্ট্য কার্নেল
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10 1
android14-6.1
android14-5.15
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10 1
android12-5.4 1
android11-5.4 1
android13-5.15
android13-5.10
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4 1
android-4.19-stable
android12-5.10
android12-5.4
Android 11 (2020) android11-5.4
android-4.19-stable
android-4.14-stable
android11-5.4
android-4.19-stable
android-4.14-stable
Android 10 (2019) android-4.19-q
android-4.14-q
android-4.9-q

android-4.19-q
android-4.14-q
android-4.9-q

1 অতিরিক্ত বিধিনিষেধ প্রযোজ্য হতে পারে যদি সংশ্লিষ্ট BSP প্ল্যাটফর্ম প্রকাশের জন্য আপডেট করা হয়। আরও সাধারণ পরিভাষায়, কার্নেলের Android রিলিজ সংখ্যা অবশ্যই লক্ষ্য FCM সংস্করণের চেয়ে বেশি বা সমান হতে হবে। ভেন্ডর ইন্টারফেস অবজেক্ট দেখুন - বিস্তারিত জানার জন্য কার্নেল শাখার সাথে মিল করুন

সাধারণ কার্নেল অনুক্রম

অ্যান্ড্রয়েড-মেইনলাইন থেকে শাখা

সাধারণ কার্নেল অনুক্রমের শীর্ষ স্তর চিত্র 1 এ দেখানো হয়েছে।

অ্যান্ড্রয়েড-মেইনলাইন কার্নেল থেকে সাধারণ কার্নেল তৈরি করা

চিত্র 1. অ্যান্ড্রয়েড-মেইনলাইন কার্নেল থেকে সাধারণ কার্নেল তৈরি করা

লক্ষ্য করুন যে নতুন অ্যান্ড্রয়েড কমন কার্নেল android12-5.10 2020 সালে android-mainline থেকে ব্রাঞ্চ করা হয়েছিল। 2021 সালে, যখন পরবর্তী LTS ঘোষণা করা হয়েছিল, তখন android13-5.15 android-mainline থেকে ব্রাঞ্চ করা হয়েছিল।

চিত্র 1 এ দেখানো হয়েছে, প্রতিটি কার্নেল সংস্করণ দুটি GKI কার্নেলের ভিত্তি। উদাহরণস্বরূপ, দুটি v5.4 কার্নেল হল android11-5.4 এবং android12-5.4 , উভয়ই তাদের নিজ নিজ প্ল্যাটফর্ম রিলিজের জন্য বৈশিষ্ট্য কার্নেল। এটি 5.10 এর ক্ষেত্রেও হবে; android12-5.10 তৈরি করা হয়েছিল যখন LTS ঘোষণা করা হয়েছিল এবং Android 13-এর জন্য বৈশিষ্ট্যগুলির বিকাশের অনুমতি দেওয়ার জন্য 2021 সালের বসন্তে কার্নেল বৈশিষ্ট্য সম্পূর্ণ মাইলফলক এ android13-5.10 android12-5.10 থেকে ব্রাঞ্চ করবে।

ACK KMI শাখা জীবনচক্র

একটি ACK KMI শাখার জীবনচক্র চিত্র 2-এ নীচে দেখানো হয়েছে।

5.10 ACK KMI শাখা জীবনচক্র

চিত্র 2. 5.10 ACK KMI শাখা জীবনচক্র

উন্নয়ন প্রক্রিয়া এবং শাখা জীবনচক্রকে স্পষ্ট করার জন্য, চিত্র 2 5.10-এর জন্য ACK KMI শাখাগুলিতে ফোকাস করে।

প্রতিটি ACK KMI শাখা তিনটি ধাপের মধ্যে দিয়ে চিত্র 2-এ নির্দেশিত প্রতিটি শাখায় বিভিন্ন রঙের মাধ্যমে। যেমন দেখানো হয়েছে, ফেজ নির্বিশেষে LTS নিয়মিতভাবে একত্রিত হয়।

উন্নয়ন পর্যায়

এটি তৈরি হয়ে গেলে, একটি ACK KMI শাখা উন্নয়ন পর্যায়ে প্রবেশ করে (চিত্র 2-এ dev ), এবং পরবর্তী অ্যান্ড্রয়েড প্ল্যাটফর্ম প্রকাশের জন্য বৈশিষ্ট্য অবদানের জন্য উন্মুক্ত। চিত্র 2-এ, android12-5.10 তৈরি করা হয়েছিল যখন 5.10 কে নতুন আপস্ট্রিম LTS কার্নেল হিসাবে ঘোষণা করা হয়েছিল। একটি কার্নেল সংস্করণের জন্য দ্বিতীয় ACK KMI শাখাটি পরবর্তী প্রকাশের বিকাশের অনুমতি দেওয়ার জন্য আগে তৈরি করা হতে পারে। চিত্র 2-এ, android13-5.10 তৈরি হয় যখন android12-5.10 বিকাশের পর্যায় থেকে বেরিয়ে আসে।

স্থিতিশীলতার পর্যায়

যখন ACK KMI শাখাটিকে বৈশিষ্ট্য সম্পূর্ণরূপে ঘোষণা করা হয়, তখন এটি স্ট্যাবিলাইজেশন পর্বে প্রবেশ করে, চিত্র 2-এ স্টাব হিসাবে লেবেল করা হয়েছে৷ অংশীদার বৈশিষ্ট্য এবং বাগ সংশোধনগুলি এখনও গৃহীত হয়, তবে ইন্টারফেসকে প্রভাবিত করে এমন কোনও পরিবর্তন সনাক্ত করতে KMI ট্র্যাকিং সক্ষম করা হয়েছে৷ এই পর্যায়ে, KMI-ব্রেকিং পরিবর্তনগুলি গৃহীত হয়, তবে KMI সংজ্ঞাটি প্রয়োজনীয় হিসাবে আপডেট করা আবশ্যক। KMI পর্যবেক্ষণের বিস্তারিত জানার জন্য GKI ওভারভিউ দেখুন।

KMI হিমায়িত ফেজ

একটি নতুন প্ল্যাটফর্ম রিলিজ AOSP-এ পুশ করার আগে, ACK KMI শাখা হিমায়িত করা হয় এবং শাখার আজীবনের জন্য হিমায়িত থাকে। এর মানে হল যে কোনও KMI-ব্রেকিং পরিবর্তনগুলি গ্রহণ করা হয় না যদি না একটি গুরুতর নিরাপত্তা সমস্যা চিহ্নিত করা হয় যা স্থিতিশীল KMI-কে প্রভাবিত না করে প্রশমিত করা যায় না। KMI ভাঙ্গন এড়াতে, LTS থেকে একত্রিত কিছু প্যাচ সংশোধন করা হতে পারে বা বাদ দেওয়া হতে পারে যদি অ্যান্ড্রয়েড ডিভাইসের জন্য ফিক্সের প্রয়োজন না হয়।

যখন একটি ACK KMI শাখা হিমায়িত করা হয়, তখন বাগ সংশোধন এবং অংশীদার বৈশিষ্ট্যগুলি গ্রহণ করা যেতে পারে যতক্ষণ না বিদ্যমান KMI সাধারণ কার্নেলটি ভাঙা না হয়। KMI নতুন রপ্তানি চিহ্নের সাথে প্রসারিত করা যেতে পারে যতক্ষণ না বর্তমান KMI গঠিত ইন্টারফেসগুলি প্রভাবিত না হয়। যখন নতুন ইন্টারফেসগুলি KMI-তে যোগ করা হয়, তখন সেগুলি অবিলম্বে স্থিতিশীল হয়ে যায় এবং ভবিষ্যতের পরিবর্তনগুলির দ্বারা ভাঙা যায় না।

উদাহরণ স্বরূপ, KMI ইন্টারফেস সাধারণ কার্নেল দ্বারা ব্যবহৃত কাঠামোতে একটি ক্ষেত্র যোগ করে এমন একটি পরিবর্তন অনুমোদিত নয় কারণ এটি ইন্টারফেসের সংজ্ঞা পরিবর্তন করে:

struct foo {
  int original_field1;
  int original_field2;
  int new_field;  // Not allowed
};

int do_foo(struct foo &myarg)
{
  do_stuff(myarg);
}
EXPORT_SYMBOL_GPL(do_foo);

যাইহোক, একটি নতুন ফাংশন যোগ করা ঠিক আছে:

struct foo2 {
  struct foo orig_foo;
  int new_field;
};

int do_foo2(struct foo2 &myarg)
{
  do_stuff2(myarg);
}
EXPORT_SYMBOL_GPL(do_foo2);

GKI কার্নেলের আজীবনের জন্য, ইউজারস্পেসের সাথে পশ্চাদগামী সামঞ্জস্য বজায় রাখা হয় যাতে ডিভাইসটি চালু করা Android প্ল্যাটফর্ম রিলিজের জন্য কার্নেল নিরাপদে ব্যবহার করা যায়। পূর্ববর্তী রিলিজের সাথে ক্রমাগত পরীক্ষা নিশ্চিত করে যে সামঞ্জস্য বজায় রাখা হয়েছে। সুতরাং চিত্র 2-এ, android12-5.10 কার্নেলটি Android 12 ডিভাইস এবং Android 13 ডিভাইসের জন্য ব্যবহার করা যেতে পারে। যেহেতু অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজটি পূর্ববর্তী সংস্করণগুলির সাথেও সামঞ্জস্যপূর্ণ, তাই android12-5.4 কার্নেলটি অ্যান্ড্রয়েড 13 ডিভাইসের জন্য লঞ্চ বা আপগ্রেডের জন্য ব্যবহার করা যেতে পারে।

হিমায়িত পর্বে প্রবেশ করার সময়, শাখাটি কেএমআই সংস্করণ স্ট্রিং সহ গিট-ট্যাগ করা হয় যাতে KMI প্রজন্ম নম্বর থাকে। উদাহরণস্বরূপ, যখন android11-5.4 হিমায়িত করা হয়েছিল, তখন এটি KMI সংস্করণ স্ট্রিং 5.4-android11-0 এর সাথে ট্যাগ করা হয়েছিল যেখানে ট্রেলিং 0 হল KMI প্রজন্মের নম্বর। যদি কোনো নিরাপত্তা সমস্যা বা অন্য কোনো ইভেন্ট থাকে যার জন্য একটি KMI-পরিবর্তন প্যাচ গ্রহণ করা প্রয়োজন, KMI জেনারেশন নম্বর বৃদ্ধি করা হয় এবং শাখাটিকে পুনরায় ট্যাগ করা হয়। উদাহরণস্বরূপ, যদি এই ধরনের পরিবর্তন android11-5.4 এ গৃহীত হয়, তাহলে শাখাটিকে নতুন KMI সংস্করণ, 5.4-android11-1 দিয়ে ট্যাগ করা হবে। বর্তমান KMI প্রজন্মটি uname কমান্ড ব্যবহার করে পাওয়া যাবে:

$ uname -r
5.4.61-android11-0-00153-ga972f59040e4

প্ল্যাটফর্ম প্রকাশের পরের সংখ্যাটি হল KMI প্রজন্ম (এই ক্ষেত্রে 0)।

KMI জেনারেশন পরিবর্তন হলে, কার্নেল আগের KMI জেনারেশনের সাথে মানানসই বিক্রেতা মডিউলগুলির সাথে সামঞ্জস্যপূর্ণ নয়, তাই মডিউলগুলিকে অবশ্যই কার্নেলের সাথে সিঙ্ক্রোনাসভাবে পুনর্নির্মাণ এবং আপডেট করতে হবে। KMI প্রজন্মের পরিবর্তনগুলি খুব বিরল হবে বলে আশা করা হচ্ছে।

কার্নেলের মধ্যে সামঞ্জস্য

একই LTS পরিবারের কার্নেলের মধ্যে সামঞ্জস্যের প্রয়োজনীয়তা নতুন GKI কার্নেলের সাথে শুরু করে পরিবর্তিত হচ্ছে।

GKI কার্নেল

GKI কার্নেলগুলি সমস্ত অ্যান্ড্রয়েড প্ল্যাটফর্মের রিলিজের সাথে পিছনের সামঞ্জস্য বজায় রাখে যা কার্নেল সংস্করণকে সমর্থন করে। অতিরিক্তভাবে, অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজগুলি পূর্ববর্তী রিলিজগুলির GKI কার্নেলের সাথে পশ্চাদমুখী-সামঞ্জস্যপূর্ণ। তাই আপনি Android 13 চালিত ডিভাইসগুলিতে Android 12-এর জন্য তৈরি করা android12-5.4 কার্নেল নিরাপদে ব্যবহার করতে পারেন। সমস্ত সমর্থিত রিলিজ সহ GKI কার্নেলের ক্রমাগত VTS এবং CTS পরীক্ষার মাধ্যমে সামঞ্জস্যতা যাচাই করা হয়।

KMI স্থিতিশীল যাতে ভেন্ডর ইমেজে কার্নেল মডিউলের পুনর্নির্মাণের প্রয়োজন ছাড়াই কার্নেল আপডেট করা যায়।

বিভিন্ন GKI কার্নেলের মধ্যে KMI সামঞ্জস্য বজায় রাখা হয় না। সুতরাং, উদাহরণস্বরূপ, সমস্ত মডিউল পুনর্নির্মাণ না করে একটি android12-5.10 একটি android13-5.10 কার্নেল দিয়ে প্রতিস্থাপন করা যাবে না।

GKI কার্নেল শুধুমাত্র প্রাথমিক এবং পরবর্তী রিলিজের জন্য সমর্থিত। সেগুলি পুরানো রিলিজের জন্য সমর্থিত নয়। তাই একটি android13-5.10 কার্নেল Android 12 ডিভাইসে সমর্থিত নয়।

উত্তরাধিকার কার্নেল

লিগ্যাসি ডেজার্ট কার্নেল ( *-q এবং *-stable ) অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ জুড়ে পশ্চাদমুখী সামঞ্জস্যপূর্ণ নয়, তবে পূর্ববর্তী দুটি অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজের কার্নেলগুলি আপগ্রেডের জন্য সমর্থিত। অতএব, android-4.19-q এর উপর ভিত্তি করে একটি কার্নেল ব্যবহার করে Android 10-এর সাথে চালু করা একটি ডিভাইস Android 2020-এ আপগ্রেড করার সময় হয় android-4.19-q কার্নেল ব্যবহার করা চালিয়ে যেতে পারে, অথবা android-4.19-stable সমর্থন করার জন্য বিক্রেতা-নির্দিষ্ট কোড আপডেট করতে পারে। .

সামঞ্জস্য ম্যাট্রিক্স

এই টেবিলটি প্রতিটি Android প্ল্যাটফর্ম রিলিজের সাথে সমর্থিত এবং পরীক্ষিত কার্নেল সংস্করণগুলি দেখায়।

অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ আপগ্রেডের জন্য সমর্থিত কার্নেল লঞ্চের জন্য সমর্থিত কার্নেল
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.9-q (EOL)
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.14-p (EOL)
android-4.9-q (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.19-stable
android11-5.4
android12-5.4
android12-5.10
Android 11 (2020) android11-5.4
android-4.19-stable
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.14-p (EOL)
android-4.9-q (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.4-p (EOL)
android-4.4-o (EOL)
android11-5.4
android-4.19-stable
android-4.14-stable
Android 10 (2019) android-4.14-stable
android-4.14-p (EOL)
android-4.9-p (EOL)
android-4.9-o (EOL)
android-4.4-p (EOL)
android-4.4-o (EOL)
android-3.18 (EOL)
android-4.14-stable
android-4.19-q (EOL)
android-4.14-q (EOL)
android-4.9-q (EOL)

জীবনকাল এবং নিরাপত্তা প্যাচ সমর্থন

অ্যানড্রয়েড সাধারণ কার্নেলগুলি সমর্থিত হয় যতক্ষণ না সংশ্লিষ্ট LTS কার্নেল বা Android প্ল্যাটফর্ম রিলিজ আর সমর্থিত না হয়। একটি কার্নেল সমর্থিত থাকাকালীন, এটি আপস্ট্রিম থেকে এলটিএস মার্জ এবং অ্যান্ড্রয়েড-নির্দিষ্ট কোডের জন্য বাগ ফিক্সগুলি পেতে থাকে। এই সংশোধনগুলির মধ্যে মাসিক অ্যান্ড্রয়েড সিকিউরিটি বুলেটিনগুলিতে উদ্ধৃত সমস্ত কার্নেল সুরক্ষা প্যাচ অন্তর্ভুক্ত রয়েছে যা অ্যান্ড্রয়েড সাধারণ কার্নেলের সাথে প্রাসঙ্গিক৷

অংশীদাররা নিশ্চিত হতে পারে যে নিয়মিতভাবে অ্যান্ড্রয়েড সাধারণ কার্নেলগুলি থেকে একত্রিত করার মাধ্যমে, তারা সম্ভাব্য সমস্ত কার্নেল সুরক্ষা প্যাচ পাচ্ছে।

সাধারণ কার্নেল পরীক্ষা

সাধারণ কার্নেলগুলি বিক্রেতাদের দ্বারা ডাউনস্ট্রিম পরীক্ষার পাশাপাশি বেশ কয়েকটি CI সিস্টেমের সাথে পরীক্ষা করা হয়।

লিনাক্স কার্নেল কার্যকরী পরীক্ষা

লিনাক্স কার্নেল ফাংশনাল টেস্ট (LKFT) পরীক্ষাগুলি শারীরিক arm32 এবং arm64 ডিভাইসের সেটে kselftest, LTP, VTS, এবং CTS সহ বিভিন্ন টেস্ট স্যুট শুরু করে। সাম্প্রতিক পরীক্ষার ফলাফল এখানে পাওয়া যাবে.

কার্নেলসিআই পরীক্ষা

যখনই একটি সাধারণ কার্নেল শাখায় একটি নতুন প্যাচ প্রতিশ্রুতিবদ্ধ হয় তখনই KernelCI বিল্ড-এন্ড-বুট পরীক্ষা শুরু করা হয়। বিভিন্ন বোর্ডে কয়েকশো বিল্ড কনফিগারেশন পরীক্ষা করা হয় এবং বুট করা হয়। অ্যান্ড্রয়েড কার্নেলের সাম্প্রতিক ফলাফল এখানে পাওয়া যাবে।

অ্যান্ড্রয়েড প্রি-সাবমিট এবং পোস্ট সাবমিট টেস্টিং

প্রি-সাবমিট পরীক্ষাগুলি অ্যান্ড্রয়েড সাধারণ কার্নেলগুলিতে প্রবর্তিত হওয়া থেকে ব্যর্থতা প্রতিরোধ করতে ব্যবহৃত হয়। পরীক্ষার ফলাফলের সারাংশ অ্যান্ড্রয়েড সাধারণ কার্নেল গেরিটে কোড পরিবর্তনের 'চেকস' ট্যাবে পাওয়া যাবে।

যখন নতুন প্যাচ ci.android.com- এ একটি Android সাধারণ কার্নেল শাখায় প্রতিশ্রুতিবদ্ধ হয় তখন Android সাধারণ কার্নেল শাখায় নতুন প্রকাশিত বিল্ডগুলিতে Android পোস্টসাবমিট পরীক্ষা করা হয়৷ ci.android.com- এ একটি আংশিক শাখার নাম হিসাবে aosp_kernel প্রবেশ করার মাধ্যমে, আপনি উপলব্ধ ফলাফল সহ কার্নেল শাখাগুলির একটি তালিকা দেখতে পাবেন। উদাহরণস্বরূপ, android-mainline এর ফলাফল এখানে পাওয়া যাবে। একটি নির্দিষ্ট বিল্ডে ক্লিক করার সময়, আপনি Test Results ট্যাবে পরীক্ষার স্থিতি দেখতে পাবেন।

অ্যান্ড্রয়েড প্ল্যাটফর্ম সোর্স ট্রি-তে টেস্ট গ্রুপ kernel-presubmit সহ টেস্ট-ম্যাপিং দ্বারা সংজ্ঞায়িত পরীক্ষাগুলি অ্যান্ড্রয়েড কার্নেল শাখাগুলির জন্য প্রিসাবমিট হিসাবে চালানো হবে। উদাহরণ স্বরূপ test/vts/tests/kernel_proc_file_api_test/TEST_MAPPING- এ নিম্নলিখিত কনফিগারেশনটি Android সাধারণ কার্নেল কোড চেক-ইন-এ প্রিসবুমিট পরীক্ষা হিসাবে vts_kernel_proc_file_api_test সক্ষম করবে।

{
  "kernel-presubmit": [
    {
      "name": "vts_kernel_proc_file_api_test"
    }
  ]
}

0-দিনের পরীক্ষা

0-দিনের পরীক্ষা যখন নতুন প্যাচগুলি প্রতিশ্রুতিবদ্ধ হয় তখন সমস্ত Android সাধারণ কার্নেল শাখাগুলিতে প্যাচ-বাই-প্যাচ পরীক্ষা করে। বিভিন্ন বুট, কার্যকরী এবং কর্মক্ষমতা পরীক্ষা চালানো হয়। পাবলিক গ্রুপ ক্রস-কারনেল-বিল্ড রিপোর্টে যোগ দিন

টেস্ট ম্যাট্রিক্স

অ্যান্ড্রয়েড সাধারণ কার্নেল অ্যান্ড্রয়েড প্ল্যাটফর্ম রিলিজ টেস্ট স্যুট
প্রধান 14 13 12 11 10 এলকেএফটি কার্নেলসিআই প্রি জমা দিন পোস্ট জমা দিন 0-দিন
android-mainline
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.19-stable
android-4.14-stable

Android সাধারণ কার্নেলগুলিতে অবদান রাখুন

সাধারণত, বৈশিষ্ট্য বিকাশ মেইনলাইন লিনাক্সে করা উচিত এবং অ্যান্ড্রয়েড সাধারণ কার্নেলে নয়। আপস্ট্রিম ডেভেলপমেন্টকে জোরালোভাবে উৎসাহিত করা হয়, এবং সেখানে ডেভেলপমেন্ট গৃহীত হওয়ার পরে, প্রয়োজন অনুসারে এটি সহজেই নির্দিষ্ট ACK শাখায় ব্যাকপোর্ট করা যেতে পারে। অ্যান্ড্রয়েড কার্নেল টিম অ্যান্ড্রয়েড ইকোসিস্টেমের সুবিধার জন্য আপস্ট্রিমিং প্রচেষ্টাকে সমর্থন করতে পেরে খুশি৷

Gerrit- এ প্যাচ জমা দিন এবং এই অবদান নির্দেশিকা মেনে চলুন।