بارگیری منبع

درخت منبع Android در مخزن Git واقع شده توسط Google قرار دارد. مخزن Git شامل ابرداده برای منبع Android ، شامل تغییرات در منبع و زمان اعمال تغییرات است. این صفحه نحوه بارگیری درخت منبع برای یک خط کد خاص Android را توضیح می دهد.

برای شروع با یک تصویر کارخانه برای یک دستگاه خاص به جای دانلود منبع، و انتخاب یک ساخت دستگاه .

راه اندازی مشتری Repo

پس از نصب مخزن پرتاب ، راه اندازی مشتری خود را برای دسترسی به مخزن منبع آندروید:

  1. یک دایرکتوری خالی برای نگهداری فایل های کاری خود ایجاد کنید. هر اسمی که دوست دارید به آن بدهید:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Git را با نام و آدرس ایمیل واقعی خود پیکربندی کنید. برای استفاده از ابزار کد بررسی گریت، شما نیاز به یک آدرس ایمیل که با یک متصل حساب کاربری گوگل ثبت . اطمینان حاصل کنید که این آدرس زنده است و می توانید پیام ها را در آن دریافت کنید. نامی که در اینجا ارائه می کنید در نسبتهای ارسالی کد شما نشان داده می شود.

    git config --global user.name Your Name
    git config --global user.email you@example.com
    
  3. اجرای repo init برای دریافت آخرین نسخه از مخزن با رفع اشکال اخیر آن است. شما باید یک نشانی اینترنتی برای مانیفست تعیین کنید ، که مشخص می کند مخازن مختلف موجود در منبع Android در فهرست کار شما قرار دارند.

    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 " پیغام خطا، استفاده یکی از راه حل های زیر است:

    : اگر شما اوبونتو 20.04.2 LTS A (در مقابل به روز رسانی) به تازگی نصب شده نسخه لینوکس است

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

    اگر استفاده از Git نسخه 2.19 یا بیشتر، شما می توانید مشخص کنید --partial- clone هنگام انجام repo init . این باعث می شود استفاده از دستگاه گوارش کلون جزئی قابلیت تنها دانلود Git اشیاء در هنگام نیاز، به جای دانلود همه چیز. از آنجا که استفاده از کلون های جزئی به این معنی است که بسیاری از عملیات باید با سرور ارتباط برقرار کنند ، اگر توسعه دهنده هستید و از شبکه ای با تاخیر کم استفاده می کنید از موارد زیر استفاده کنید:

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

    برای سیستم عامل ویندوز تنها: اگر یک پیام خطا بیان کرد که لینک های نمادین را نمیتوان ایجاد کرد، باعث شما repo init به شکست، مرجع گیتهاب لینک های نمادین مستندات برای ایجاد این، یا برای فعال کردن حمایت خود را. برای غیر مدیران، نگاه کنید به اجازه دادن به غیر مدیران به ایجاد نمادین لینک بخش.

راه اندازی موفق با پیامی مبنی بر راه اندازی اولیه Repo در فهرست کار شما به پایان می رسد. دایرکتوری مشتری شما، شامل یک .repo دایرکتوری که در آن فایل های مانند آشکار نگهداری می شوند.

بارگیری درخت منبع Android

برای بارگیری درخت منبع Android از فهرست مخازن همانطور که در مانیفست پیش فرض مشخص شده است ، دستور زیر را اجرا کنید:

repo sync

برای همگام سازی سرعت، تصویب -c (شعبه فعلی) و -j threadcount پرچم:

repo sync -c -j8

فایلهای منبع Android در فهرست کار شما با نام پروژه آنها بارگیری می شوند.

به خروجی سرکوب، عبور -q (آرام) پرچم. را ببینید مخزن مرجع فرمان برای همه گزینه.

با استفاده از احراز هویت

به طور پیش فرض ، دسترسی به کد منبع Android ناشناس است. برای محافظت از سرورها در برابر استفاده بیش از حد ، هر آدرس IP با یک سهمیه مرتبط است.

هنگام به اشتراک گذاشتن یک آدرس IP با سایر کاربران (به عنوان مثال ، هنگام دسترسی به مخازن منبع از فراتر از یک فایروال NAT) ، سهمیه ها حتی برای الگوهای استفاده معمولی (برای مثال ، اگر بسیاری از کاربران کلاینت های جدید را از آدرس IP یکسان در یک دوره کوتاه).

در این حالت ، می توانید از دسترسی تأیید شده استفاده کنید ، که بدون در نظر گرفتن آدرس IP ، از سهمیه جداگانه برای هر کاربر استفاده می کند.

اول، ایجاد یک رمز عبور با ژنراتور رمز عبور و دستورالعمل های روی صفحه را دنبال ژنراتور رمز عبور.

بعد، نیروی دسترسی با استفاده از احراز هویت آشکار URI https://android.googlesource.com/a/platform/manifest . توجه کنید که چگونه /a/ دایرکتوری پیشوند محرک اجباری احراز هویت. با استفاده از دستور زیر می توانید یک سرویس گیرنده موجود را به استفاده از احراز هویت اجباری تبدیل کنید:

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

عیب یابی مشکلات شبکه

هنگام بارگیری از پشت یک پروکسی (که در برخی از محیط های شرکتی رایج است) ، ممکن است لازم باشد پروکسی را به طور صریح برای استفاده Repo مشخص کنید:

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 شاخه master، با استفاده از نسخه باینری پیش نمایش به جای. هنگامی که ساخت شاخه کارشناسی ارشد برای یک دستگاه، با استفاده از فایل های باینری برای انتشار شماره جدید ترین و یا با تاریخ جدید ترین.

باینری های اختصاصی را استخراج کنید

هر مجموعه باینری به عنوان یک اسکریپت خود استخراج شده در آرشیو فشرده ارائه می شود. هر فشرده سازی را از حالت فشرده خارج کنید ، اسکریپت شامل خود استخراج شده را از ریشه درخت منبع اجرا کنید ، سپس تأیید کنید که با شرایط قرارداد مجوز ضمیمه شده موافقت می کنید. فایل های باینری و Makefile ها تطبیق آنها در نصب vendor/ سلسله مراتب درخت منبع.

پاک کردن

برای اطمینان از اینکه باینری های تازه نصب شده پس از استخراج به درستی در نظر گرفته می شوند ، خروجی موجود هر بیلد قبلی را با استفاده از موارد زیر حذف کنید:

make clobber