הגדרה לפיתוח AOSP (9.0 ואילך)

לפני שמורידים את ההסתעפות main של המקור של Android ומפתחים אותה, צריך לוודא שהחומרה עומדת בדרישות הנדרשות ושהתוכנה הנדרשת מותקנת כראוי. מומלץ גם להכיר את המונחים הבאים:

Git
‏Git היא מערכת מבוזרת לניהול גרסאות בקוד פתוח וחינמית. מערכת Android משתמשת ב-Git לפעולות מקומיות כמו יצירת הסתעפויות, התחייבויות, השוואות ועריכות. לקבלת עזרה בשימוש ב-Git, אפשר לעיין במסמכי התיעוד של Git.
Repo
Repo הוא מעטפת של Python ל-Git שמפשטת את ביצוע הפעולות המורכבות במספר מאגרי Git. Repo לא מחליף את Git בכל פעולות בקרת הגרסאות, אלא רק מקל על ביצוע פעולות מורכבות ב-Git. מערכת Repo משתמשת בקובצי מניפסט כדי לצבור פרויקטים ב-Git לפרויקט העל של Android.
קובץ מניפסט
קובץ מניפסט הוא קובץ XML שמציין את המיקום של פרויקטי Git השונים במקור של Android בתוך עץ המקור של AOSP.

עמידה בדרישות החומרה

תחנת הפיתוח צריכה לעמוד בדרישות החומרה הבאות או לעלות עליהן:

  • מערכת x86 של 64 ביט.

  • שטח פנוי בכונן בנפח של לפחות 400GB כדי לבצע איסוף (checkout) של הקוד ולבנות אותו (250GB לאיסוף + 150GB לבנייה).

  • זיכרון RAM בנפח 64GB לפחות. Google משתמשת במכונות עם 72 ליבות ו-64GB של זיכרון RAM כדי לפתח את Android. עם הגדרת החומרה הזו, נדרשות כ-40 דקות כדי ליצור גרסה מלאה של Android, וכמה דקות בלבד כדי ליצור גרסה מצטברת של Android. לעומת זאת, תהליך build מלא נמשך כ-6 שעות במכונה עם 6 ליבות ו-64GB של RAM.

עמידה בדרישות של מערכת ההפעלה

בתחנת הפיתוח צריכה לפעול כל הפצה של Linux ל-64 ביט עם GNU C Library‏ (glibc) בגרסה 2.17 ואילך.

התקנת החבילות הנדרשות

כדי ליצור גרסה של Android מגרסה 11 ואילך, צריך להשתמש ב-Ubuntu 18.04 ואילך. כדי להתקין את החבילות הנדרשות ל-Ubuntu 18.04 ואילך, מריצים את הפקודה הבאה:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

בין החבילות שמותקנות, הפקודה הזו מתקינה את Git, שמשמשת להורדת המקור של AOSP.

התקנת התוכנה הנדרשת

כדי לעבוד עם AOSP, צריך להתקין את OpenJDK,‏ Make,‏ Python 3 ו-Repo. ההסתעפות הראשית של Android ב-AOSP מגיעה עם גרסאות מוכנות מראש של OpenJDK,‏ Make ו-Python 3, כך שאין צורך לבצע שלבי התקנה נוספים. בקטע הבא מוסבר איך להתקין את Repo.

התקנת המאגר

כדי להתקין את Repo:

  1. מורידים את פרטי החבילה הנוכחיים:

    sudo apt-get update
  2. מריצים את הפקודה הבאה כדי להתקין את מרכז האפליקציות של Repo:

    sudo apt-get install repo

    מרכז האפליקציות של Repo מספק סקריפט Python שמפעיל את תהליך ה-checkout ומוריד את כלי Repo המלא.

    אם הפעולה מסתיימת ללא שגיאות, מדלגים לשלב 4.

  3. (אופציונלי) מתקינים את Repo באופן ידני באמצעות סדרת הפקודות הבאה:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo

    שלוש הפקודות הראשונות מגדירות קובץ זמני, מורידות את Repo לקובץ ומאמתות שהמפתח שסופק תואם למפתח הנדרש. אם הפקודות האלה מסתיימות ללא שגיאות, הפקודה האחרונה תתקין את מרכז האפליקציות של Repo.

  4. בודקים את גרסת מרכז האפליקציות של Repo:

    repo version

    בפלט צריכה להופיע גרסה 2.4 ואילך, לדוגמה:

    repo launcher version 2.45

הגדרת ספריית פלט חלופית

כברירת מחדל, הפלט של כל build מאוחסן בספריית המשנה out/ של עץ המקור התואם. כדי לשנות את ספריית ברירת המחדל, אפשר לייצא את משתנה הסביבה OUT_DIR. לדוגמה, אם רוצים לשמור את הפלט בכונן אחר, אפשר להפנות את OUT_DIR לכונן הזה:

export OUT_DIR=my_other_drive

מה השלב הבא?