עיין בסקר השימושיות שלנו כדי לשפר את האתר הזה.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

תצורת ליבה

השתמש בהגדרות התצורה הבאות כבסיס לתצורת ליבת אנדרואיד. ההגדרות מאורגנות בקבצי .cfg עבור android-base , android-base- ARCH android-recommended :

  • אפשרויות android-base מאפשרות תכונות ליבה של Android ויש להגדירן כפי שצוין על ידי כל המכשירים.
  • android-base- ARCH אפשרויות android-base- ARCH מאפשרות תכונות ליבה של Android ויש להגדירן כפי שצוין על ידי כל מכשירי ה- ARCH בארכיטקטורה. לא לכל הארכיטקטורות יש קובץ מתאים של אפשרויות נדרשות ספציפיות לאדריכלות. אם לארכיטקטורה שלך אין קובץ, אין לה דרישות נוספות לתצורת ליבות ספציפיות לארכיטקטורה עבור Android.
  • android-recommended . אפשרויות אלה מאפשרות תכונות מתקדמות של Android והן אופציונליות למכשירים.

קבצי תצורה אלה ממוקמים ב- repo kernel/configs . השתמש בערכת קבצי התצורה המתאימה לגרסת הליבה בה אתה משתמש.

לפרטים אודות בקרות שכבר בוצעו לחיזוק הליבה במכשירים שלך, עיין באבטחת מערכת וליבה . לפרטים על ההגדרות הדרושות, עיין במסמך הגדרת תאימות אנדרואיד (CDD) .

יצירת תצורת ליבות

עבור מכשירים בעלי פורמט defconfig מינימליסטי, השתמש בתסריט merge_config.sh בעץ הליבה כדי לאפשר אפשרויות:

ARCH=ARCH scripts/kconfig/merge_config.sh <...>/device_defconfig <...>/android-base.cfg <...>/android-base-ARCH.cfg <...>/android-recommended.cfg

זה יוצר קובץ .config שבו אתה יכול להשתמש כדי לשמור קובץ defconfig חדש או לקמפל גרעין חדש עם תכונות אנדרואיד מופעלות.

דרישות תצורת ליבות נוספות

במקרים מסוימים, מתחזק הפלטפורמה יכול לבחור בין מספר תכונות ליבה כדי לספק תלות באנדרואיד. לא ניתן לבטא תלות כאלה בקבצי קטעי תצורת הליבה (שתוארו לעיל) מכיוון שהפורמט של קבצים אלה אינו תומך בביטויים לוגיים. ב- Android 9 ומעלה, בדיקת תאימות תאימות (CTS) וסוויטת בדיקת ספק (VTS) מאמתות כי הדרישות הבאות מתואמות:

  • CONFIG_OF=y או CONFIG_ACPI=y
  • CONFIG_ANDROID_LOW_MEMORY_KILLER=y 4.4 ו- 4.9 יש CONFIG_ANDROID_LOW_MEMORY_KILLER=y או שיש להם גם CONFIG_MEMCG=y וגם CONFIG_MEMCG_SWAP=y
  • CONFIG_DEBUG_RODATA=y או CONFIG_STRICT_KERNEL_RWX=y
  • CONFIG_DEBUG_SET_MODULE_RONX=y או CONFIG_STRICT_MODULE_RWX=y
  • עבור ARM64 בלבד: CONFIG_ARM64_SW_TTBR0_PAN=y או CONFIG_ARM64_PAN=y

בנוסף, יש להגדיר את האפשרות CONFIG_INET_UDP_DIAG ל- y עבור 4.9 גרעינים באנדרואיד 9 ומעלה.

הפעלת אפשרויות מצב מארח USB

עבור שמע במצב מארח USB, הפעל את האפשרויות הבאות:

CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=y
# CONFIG_USB_AUDIO is for a peripheral mode (gadget) driver

עבור MIDI במצב מארח USB, הפעל את האפשרות הבאה:

CONFIG_SND_USB_MIDI=y

Seccomp BPF עם TSYNC

Secure Computing Berkeley Packet Filter (Seccomp BPF) היא טכנולוגיית אבטחת גרעינים המאפשרת ליצור ארגזי חול המגדירים את ההקשר שבו תהליך עשוי לבצע שיחות מערכת. תכונת סנכרון החוטים (TSYNC) מאפשרת שימוש ב- Seccomp BPF מתוכניות רב-הברגה. יכולת זו מוגבלת לארכיטקטורות בהן תומכת Seccomp במעלה הזרם (ARM, ARM64, x86 ו- x86_64).

Android Live-Lock Daemon

אנדרואיד 10 כולל את Android Live-Lock Daemon ( llkd ), אשר נועד לתפוס ולהפחית את llkd הליבה. לפרטים על השימוש ב- llkd , עיין ב- Android Live-Lock Daemon .

שימוש ב- vDSO32 ב- ARM64

אובייקט משותף דינמי וירטואלי (vDSO) הוא אלטרנטיבה לשיחות מערכת שכאשר משתמשים בהן ומוגדרות כראוי יכולות להפחית את עלויות המחזור. אנדרואיד 10 מוסיף תמיכה ב- vDSO32 בגרעיני 64 סיביות (אנדרואיד כבר תומכת ב- vDSO64 בגרעיני 64 סיביות ו- vDSO32 בגרעיני 32 סיביות). השימוש ב- vDSO32 ( CONFIG_VDSO_COMPAT ) בארכיטקטורת ARM64 מספק עלייה של 0.4 אחוזים בחיי הסוללה ובשיפור ביצועים אחרים.

קהילת לינוקס עובדת באופן פעיל על איחוד vDSO בין ארכיטקטורות . אתה יכול להגדיר vDSO בליבת הלינוקס שלך על ידי הפעלת vDSO32 באמצעות CONFIG_COMPAT ו- CONFIG_CROSS_COMPILE_COMPAT_VDSO עם שלישיית המהדר arm32. צוות אנדרואיד ליבה תיעד מחדש גרסאות ישנות יותר של סדרות התיקונים vDSO למכשירי פיקסל, כך שתוכלו למצוא דוגמאות בבניית גרעיני פיקסל ( LINUX_FCC_CROSS_COMPILE_ARM32_PREBUILTS_BIN path, CROSS_COMPILE_ARM32 reference ו- CONFIG_CROSS_COMPILE_ARM32 ).