Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

بارگیری منبع

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

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

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

پس از نصب Repo Launcher ، مشتری خود را برای دسترسی به مخزن منبع Android تنظیم کنید:

  1. یک دایرکتوری خالی برای نگهداری پرونده های فعال خود ایجاد کنید. اگر از macOS استفاده می کنید ، این باید در سیستم پرونده حساس به حروف کوچک باشد. هر اسمی که دوست دارید به آن بگذارید:

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

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

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

    توجه: اگر repo init در macOS به دلیل خطای گواهی ناموفق باشد ، ممکن است لازم باشد ابتدا اجرا کنید:

    # macOS only
    open /Applications/Python\ 3.6/Install\ Certificates.command
    

    برای بررسی شاخه ای غیر از master ، آن را با -b مشخص کنید. برای لیست شاخه ها ، به برچسب ها و ساختهای کد منبع مراجعه کنید .

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

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

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

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

در حال بارگیری درخت منبع آندروید

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

repo sync

پرونده های منبع Android با نام پروژه در فهرست راهنمای شما قرار دارند. برای سرعت بخشیدن به همگام سازی ، از پرچم -j threadcount استفاده کنید. همچنین افزودن -qc برای انجام همگام سازی شاخه های آرام و فعلی در نظر بگیرید. برای جزئیات بیشتر به مرجع دستور Repo مراجعه کنید.

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

به طور پیش فرض ، دسترسی به کد منبع 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 با برچسب هستند از درایورهای Google بارگیری کنید. این باینری ها با کد منبع غیر باز دسترسی به قابلیت های سخت افزاری اضافی را اضافه می کنند. برای ساخت شاخه اصلی AOSP ، به جای آن از Binaries Preview استفاده کنید. هنگام ساخت شاخه اصلی برای دستگاه ، از باینری ها برای جدیدترین نسخه شماره گذاری شده یا با جدیدترین تاریخ استفاده کنید.

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

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

پاک کردن

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

make clobber