پرسشگان هسته Android

این سند حاوی پرسشگان درباره هسته Android است که به‌عنوان هسته تصویر هسته عمومی (GKI) نیز شناخته می‌شود. اگر با اصطلاحات GKI و هسته GKI آشنا نیستید، به نمای کلی هسته مراجعه کنید.

آیا فهرست نمادهای «میانای واحدپذیر هسته» (KMI) را می‌توان در هسته پایدار تغییر داد؟

تغییراتی که بر KMI موجود تأثیر نمی‌گذارند می‌توانند به هسته‌هایی که منجمد شده‌اند اضافه شوند. این تغییرات شامل عملکردهای برون‌برد جدید و ورودی‌های فهرست نماد می‌شود. برای جزئیات بیشتر، مدیریت فهرست‌های نماد را ببینید.

آیا می‌توانم ساختارهای استفاده‌شده توسط واحدهای فروشنده در هسته پایدار را تغییر دهم؟

ساختارهایی که بخشی از میانای KMI هستند را نمی‌توان در هسته‌های دارای KMI منجمد تغییر داد. پیش‌از ثابت شدن KMI، این ساختارها می‌توانند تغییر کنند.

آیا می‌توانم هسته را تغییر دهم، به شرطی که سازگاری باینری یا منبع را ازبین نبرم؟

تغییراتی که بر KMI تأثیر نمی‌گذارند را می‌توان همان‌طور که در وصله‌های مختص Android توضیح داده شده است اعمال کرد.

GKI چگونه پیکربندی هسته را مدیریت می‌کند؟

برای کسب اطلاعات درباره پیکربندی هسته، به تغییرات gki_defconfig مراجعه کنید.

چگونه اصلاحات اشکال بالادستی را برای بازنویسی‌های واحدهای GKI موجود مدیریت کنم؟

اگر واحد فروشنده‌ای براساس درایوری در هسته مشترک Android (ACK) ایجاد کنید، این وظیفه شما است که مطمئن شوید اصلاحات اشکال از بالادست و ACK به واحد شما منتقل شود. به‌طورکلی، بهتر است از هسته GKI و واحد‌های GKI بدون تغییر استفاده کنید تا این به‌روزرسانی‌ها به‌طور مداوم توسط Google ارائه شوند.

آیا آزمایش‌های خاص GKI وجود دارد؟

آزمایش‌های مجموعه آزمایشی فروشنده (VTS) وجود دارد که تأیید می‌کند ساخت GKI گواهی‌شده نصب شده است و همچنین الزامات GKI را برای هر نسخه پخش در دسته هدف اجرا می‌کند. برای مثال، آزمایش‌های VTS در Android 12 برای سرصفحه راه‌اندازی v3 و برای درستی‌سنجی وجود پارتیشن‌های موردنیاز در دستگاهی که از هسته 5.10 استفاده می‌کند وجود دارد.

چگونه فایل قطعه defconfig پروژه را برای ساخت‌های دستگاه ایجاد کنم؟

بسیاری از دستگاه‌های سازگار با GKI از یک تکه پیکربندی برای توصیف گزینه‌های پیکربندی موردنیاز، علاوه‌بر gki_defconfig، برای ساختن واحدهای فروشنده استفاده می‌کنند. نمونه‌هایی که بخشی از پایگاه کد ACK هستند شامل Cuttlefish و DB845c می‌شود. برای بهینه‌سازی قطعه، راهی برای اجتناب از بررسی دستی برخی‌از گزینه‌های پیکربندی وجود ندارد، اما scripts/diffconfig از منابع هسته برای مقایسه نتایج gki_defconfig و gki_defconfig+device.fragment مفید است.

آیا راه حلی برای modprobe وجود دارد که - و _ را معادل درنظر بگیرد؟

این شرح در صفحه راهنمای modprobe آمده است: «modprobe به‌طور هوشمند واحدی را به هسته Linux اضافه می‌کند یا از آن حذف می‌کند: توجه داشته باشید که برای راحتی، تفاوتی بین _ و - در نام واحدها وجود ندارد (تبدیل خودکار خط زیرین انجام می‌شود).» تیم GKI از قرارداد بالادستی استاندارد پیروی می‌کند، بنابراین ابزارهای فروشنده یا قراردادهای نام‌گذاری واحد باید این پیروی را درنظر بگیرند.

چگونه debugfs را برای استفاده داخلی فعال کنم؟

برای جزئیات مربوط به فعال کردن debugfs، به ویژگی‌های اشکال‌زدایی پایین‌دست مزاحم مراجعه کنید.

چگونه می‌توانم ناسازگاری‌های ABI بین هسته GKI با پیکربندی واحد خاص فعال را برطرف کنم؟

عدم تطابق ABI بین هسته GKI و پیکربندی واحد نشان‌دهنده وابستگی پیکربندی واحد ضمنی است، جایی که فعال کردن واحد باعث می‌شود پیکربندی باینری در تصویر هسته حاصل ساخته شود. برای تعیین مسیر پیش رو، با تیم هسته Android (kernel-team@android.com) تماس بگیرید. پس‌از تعیین فهرست نمادها، اشکالی در Issue Tracker ایجاد کنید و تغییری در فهرست نمادها بارگذاری کنید.