الزامات هسته اصلی

Android 8.0 و بالاتر، حداقل نسخه هسته و پیکربندی هسته را اجباری می‌کند که توسط مجموعه تست فروشنده (VTS) و به‌روزرسانی‌های خارج از هوا (OTA) تأیید می‌شوند. هسته‌های دستگاه Android باید پشتیبانی از .config و گزینه خواندن پیکربندی هسته را در زمان اجرا از طریق سیستم فایل procfs فعال کنند.

پشتیبانی از هسته پیکربندی

همه هسته‌های دستگاه باید کل android-base.cfg را فعال کنند، که باید گزینه‌های پیکربندی هسته (یا معادل نسخه هسته آنها) را شامل شود:

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

نسخه کرنل

برای اندروید 9، حداقل مورد نیاز نسخه هسته پشتیبانی طولانی مدت (LTS) 4.4.107، 4.9.84 و 4.14.42 است.

  • همه SoC های تولید شده در سال 2018 باید با هسته 4.9.84 یا بالاتر راه اندازی شوند.
  • همه SoC های دیگری که دستگاه های اندرویدی دارای Android 9 را راه اندازی می کنند باید از هسته 4.4.107 یا بالاتر استفاده کنند.
  • هسته های دستگاه بر اساس 4.14 باید شامل نسخه 4.14.42 یا بالاتر LTS باشد.
  • صرف‌نظر از تاریخ راه‌اندازی، همه SoC‌های دارای راه‌اندازی دستگاه در اندروید 8.0 و بالاتر مشمول تغییرات هسته مورد نیاز برای فعال کردن Treble هستند.
  • دستگاه‌های Android قدیمی‌تر که به Android 8.0 یا بالاتر ارتقا می‌یابند، می‌توانند همچنان از نسخه اصلی هسته اصلی خود استفاده کنند.

برای جزئیات بیشتر در مورد هسته های LTS، به هسته های پایدار طولانی مدت و هسته های مشترک اندروید مراجعه کنید.

پشتیبانی Devicetree

اگر پلتفرم از مشخصات تنظیمات پیشرفته و رابط نیرو (ACPI) پشتیبانی نمی‌کند، پشتیبانی درخت دستگاه در هسته باید فعال شود و بوت‌لودرها باید توضیحات سخت‌افزار را به شکل درخت دستگاه به هسته ارسال کنند. درخت دستگاه همچنین باید برای خواندن اندروید در دسترس باشد و باید بتواند پارامترهای خاص فروشنده و ODM را به اندروید منتقل کند. CONFIG_OF همراه با سایر گزینه های پیکربندی هسته CONFIG_OF_* خاص دستگاه و زیرسیستم اجباری است.

با استفاده از DebugFS

پیاده سازی رابط فروشنده نمی تواند به سیستم فایل DebugFS برای دسترسی به اطلاعات اشکال زدایی تکیه کند. دلیلش این است که در اندروید 7.0 تا 10، DebugFS می توان فعال کرد، اما آزمایش VTS ممکن است با DebugFS خارج شده انجام شود.

در اندروید 11، DebugFS قابل دسترسی نیست یا روی دستگاه های تولیدی نصب می شود، بنابراین سازندگان دستگاه باید آن را حذف کنند. قبل از Android 11، dumpstate به آمار binder از DebugFS دسترسی داشت. از آنجایی که بیلدهای کاربری که با Android 11 یا بالاتر راه اندازی می شوند نمی توانند به DebugFS دسترسی داشته باشند، dumpstate به آمار binder از binderfs دسترسی پیدا می کند. برای فعال کردن Binderfs ، پیکربندی هسته CONFIG_ANDROID_BINDERFS را فعال کنید.

در اندروید 11، VTS این دو الزام را اعمال می کند:

  • CONFIG_DEBUG_FS در پیکربندی هسته دستگاه فعال نیست.
  • DebugFS در /proc/filesystems فهرست نشده است.

DebugFS در اندروید 11

جدول زیر نحوه پشتیبانی از هر یک از این سه دسته را در اندروید 11 توضیح می‌دهد. توجه داشته باشید که موارد زیر فقط برای ساخت‌های userdebug اعمال می‌شود، زیرا DebugFS نمی‌تواند در ساخت‌های کاربر نصب شود. هرگز DebugFS در ساخت‌های کاربر برای دستگاه‌هایی که در Android 11 راه‌اندازی می‌شوند، نصب نکنید .

مورد استفاده ساخت اشکال زدایی کاربر اندروید 11
یکبار راه‌اندازی فایل‌های DebugFS ، در حین راه‌اندازی . این دسترسی تنها یک بار در زمان بوت اتفاق می افتد . فروشنده init این کار را انجام می دهد.
ایجاد گزارش اشکال : HAL dumpstate فایل‌های DebugFS را می‌خواند، که بخشی از گزارش اشکال می‌شوند. توسط dumpstate HAL در DumpstateBoard() هنگامی که توسط ابزار dumpstate فراخوانی می شود انجام می شود.
تست و اعتبارسنجی دستگاه خاص ریشه و پوسته Adb