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

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

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

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

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

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

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

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

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

בתחנת הפיתוח צריכה לפעול כל הפצה של 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, Maker, 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 שמפעיל תהליך תשלום ומוריד את כלי ה-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 לקובץ ומאמתות שהמפתח שסופק תואם למפתח הנדרש. אם הפקודות האלה מצליחות, הפקודה הסופית מתקינה את מרכז האפליקציות של המאגר.

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

    repo version

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

    repo launcher version 2.45

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

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

export OUT_DIR=my_other_drive

מה השלב הבא?