הורדת המקור

עץ המקור של אנדרואיד ממוקם במאגר Git המתארח על ידי Google. מאגר Git כולל מטא נתונים למקור אנדרואיד, כולל שינויים במקור ומתי בוצעו השינויים. דף זה מתאר כיצד להוריד את עץ המקור לשורת קוד ספציפית של Android.

כדי להתחיל עם תמונת יצרן עבור מכשיר מסוים במקום להוריד את המקור, ראה בחירה לבנות מכשיר .

אתחול לקוח ריפו

לאחר התקנת Launcher ריפו , להגדיר את הלקוח לגשת למאגר מקור אנדרואיד:

  1. צור ספרייה ריקה שתכיל את קבצי העבודה שלך. תן לזה כל שם שאתה אוהב:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. הגדר את Git עם שמך האמיתי וכתובת הדוא"ל שלך. כדי להשתמש בכלי קוד-סקירת גריט, אתה צריך כתובת דוא"ל מחוברת עם חשבון Google רשום . ודא שזוהי כתובת חיה בה תוכל לקבל הודעות. השם שאתה מספק כאן מופיע בייחוסים של הגשות הקוד שלך.

    git config --global user.name Your Name
    git config --global user.email you@example.com
    
  3. הפעלה repo init כדי לקבל את הגרסה העדכנית של ריפיתי עם תיקוני באגים האחרונים שלה. עליך לציין כתובת URL למניפסט, המציין היכן ממוקמים המאגרים השונים הכלולים במקור אנדרואיד בתוך ספריית העבודה שלך.

    repo init -u https://android.googlesource.com/platform/manifest
    

    לבדיקת ענף המאסטר:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    

    כדי לבדוק את סניף אחר מאשר המאסטר, לציין אותו עם -b . לקבלת רשימה של סניפים, לראות תגי קוד מקור ובונה .

    עבור פייתון 2

    עבור פייתון 3

    אם אתה מקבל " /usr/bin/env 'python' no such file or directory " הודעת שגיאה, שימוש אחד הפתרונות הבאים:

    אם LTS 20.04.2 אובונטו שלך הוא והותקנו (לעומת משודרגת) גרסת לינוקס:

    sudo ln -s /usr/bin/python3 /usr/bin/python

    אם באמצעות Git גרסה 2.19 או יותר, אתה יכול לציין --partial- clone בעת ביצוע repo init . עושה את זה לשימוש של Git שיבוט חלקי יכולת להוריד רק Git אובייקטים בעת הצורך, במקום להוריד הכל. מכיוון ששימוש בשיבוטים חלקיים פירושו שפעולות רבות חייבות לתקשר עם השרת, השתמש באפשרויות הבאות אם אתה מפתח ואתה משתמש ברשת עם חביון נמוך:

    repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M
    

    עבור מערכת ההפעלה Windows בלבד: אם אתה מקבל הודעת שגיאה לפיה קישורים סמליים לא יכול להיווצר, גרימת repo init להיכשל, להפנות את GitHub תיעוד קישורים סמלי כדי ליצור הללו, או כדי לאפשר את תמיכתם. למים שאינם מנהליים, לראות את הלא מנהלים המאפשרים ליצור קישורים סמלי סעיף.

אתחול מוצלח מסתיים בהודעה הקובעת כי Repo מאתחל בספריית העבודה שלך. מדריך הלקוח שלך עכשיו מכיל .repo ספרייה שבה קבצים כגון המניפסט נשמרים.

הורדת עץ המקור לאנדרואיד

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

repo sync

כדי מסנכרנת מהירות, להעביר את -c (הסניף הנוכחי) ו -j threadcount דגלים:

repo sync -c -j8

קבצי המקור של אנדרואיד יורדים לספריית העבודה שלך תחת שמות הפרויקטים שלהם.

כדי פלט עלם, להעביר את -q (השקט) הדגל. ראה הפניה פיקוד ריפו עבור כל האפשרויות.

שימוש באימות

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

בעת שיתוף כתובת IP עם משתמשים אחרים (למשל, כאשר ניגשים למאגרי המקורות מעבר לחומת אש NAT), המכסות יכולות להפעיל אפילו עבור דפוסי שימוש קבוע (לדוגמה, אם משתמשים רבים מסנכרנים לקוחות חדשים מאותה כתובת IP בתוך תקופה קצרה).

במקרה זה, תוכל להשתמש בגישה מאומתת, אשר לאחר מכן משתמשת במכסה נפרדת לכל משתמש, ללא קשר לכתובת ה- IP.

ראשית, ליצור סיסמה עם מחולל סיסמה ופעל בהתאם להוראות בדף מחולל סיסמאות.

הבא, כוח גישה מאומתת באמצעות המניפסט URI https://android.googlesource.com/a/platform/manifest . שימו לב איך /a/ ספרייה קידומת טריגרים אימות חובה. תוכל להמיר לקוח קיים לשימוש באימות חובה באמצעות הפקודה הבאה:

repo init -u https://android.googlesource.com/a/platform/manifest

פתרון בעיות ברשת

בעת הורדה מאחורי פרוקסי (המקובל בסביבות ארגוניות מסוימות), ייתכן שיהיה עליך לציין במפורש את שרת ה- proxy לשימושו של ריפו:

export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

לעתים רחוקות יותר, בעיות קישוריות ניסיון לקוחות לינוקס, להיתקע באמצע הורדות (בדרך כלל במהלך חפצים וקבלה). התאמת ההגדרות של מחסנית TCP/IP ושימוש בפקודות לא מקבילות יכולות לשפר את המצב. עליך להיות בעל גישה לשורש כדי לשנות את הגדרת TCP:

sudo sysctl -w net.ipv4.tcp_window_scaling=0
repo sync -j1

שימוש במראה מקומית

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

הוראות אלה מניחות במראה נוצר ב /usr/local/aosp/mirror . ראשית, צור וסנכרן את המראה עצמה. שימו לב --mirror הדגל, אשר ניתן לציין רק בעת יצירת לקוח חדש:

mkdir -p /usr/local/aosp/mirror
cd /usr/local/aosp/mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync

כאשר המראה מסונכרנת, תוכל ליצור ממנה לקוחות חדשים. שים לב שעליך לציין נתיב מוחלט:

mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync

לבסוף, כדי לסנכרן לקוח מול השרת, סנכרן את המראה מול השרת, ולאחר מכן את הלקוח מול המראה:

cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/master
repo sync

אפשר לאחסן את המראה בשרת LAN ולגשת אליה באמצעות NFS, SSH או Git. אפשר גם לאחסן אותו בכונן נשלף ולהעביר אותו בין משתמשים או מכונות.

אימות תגי Git

טען את המפתח הציבורי הבא למסד הנתונים של מפתחות GnuPG שלך. המפתח משמש לחתימת תגים המבוארים המייצגים גרסאות.

gpg --import

העתק והדבק את המפתח מתחת, ולאחר מכן הקלד EOF (Ctrl-D) כדי לסיים את הקלט ולעבד את המפתחות.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END PGP PUBLIC KEY BLOCK-----

לאחר ייבוא ​​המפתחות, תוכל לאמת כל תג באמצעות:

git tag -v TAG_NAME

להשיג בינאריות קנייניות

לא ניתן להשתמש ב- AOSP מקוד מקור טהור בלבד ודורש הפעלה של ספריות קנייניות נוספות הקשורות לחומרה, כגון האצת גרפיקה בחומרה. ראה את הקטעים הבאים לקבלת קישורים להורדות קבצים בינאריים התקן עבור משאבים נוספים.

הורד בינאריות קנייניות

ניתן להוריד קבצים בינאריים רשמיים של מכשירים הנתמכים פועלים סניפי שחרור AOSP מתויג מן הנהגים של גוגל . קבצים בינאריים אלה מוסיפים גישה ליכולות חומרה נוספות עם קוד מקור שאינו פתוח. כדי לבנות את הסניף מאסטר AOSP, להשתמש מקדימה Binaries במקום. כאשר בונים סניף אב מכשיר, להשתמש הבינאריים עבור שחרורו הממוספר האחרון או עם התאריך האחרון.

חלץ בינאריות קנייניות

כל קבוצה של קבצים בינאריים מגיעה כתסריט שחולץ בעצמו בארכיון דחוס. ביטול הדחיסה של כל ארכיון, הפעל את הסקריפט החילוץ העצמי הכלול משורש עץ המקור, ולאחר מכן אשר שאתה מסכים לתנאי הסכם הרישיון המצורף. הבינאריים makefiles ההתאמה שלהם מותקנים vendor/ ההיררכיה של עץ המקור.

לנקות

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

make clobber