منبع اندروید در مجموعه ای از مخازن Git که توسط گوگل میزبانی شده است قرار دارد. مخزن Git شامل کل تاریخچه منبع اندروید، از جمله تغییرات در منبع و زمان انجام تغییرات است. در این صفحه نحوه دانلود منبع توضیح داده شده است.
کلاینت Repo را راه اندازی کنید
مشتری خود را برای دسترسی به مخزن منبع Android تنظیم کنید:
یک پوشه کاری ایجاد کرده و به آن بروید:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
دایرکتوری کاری خود را برای کنترل منبع راه اندازی کنید:
repo init --partial-clone -b main -u https://android.googlesource.com/platform/manifest
گزینه
-b
برای شناسایی شاخه ای که در حال تنظیم اولیه هستید استفاده می شود. اگر -b ارائه نشده است،repo init
به طور پیشفرض در شاخه اصلی قرار میگیرد. برای فهرستی از شاخه ها و نام تگ ها، تگ ها و ساخت های کد منبع را ببینید.گزینه
-u
مورد نیاز است و برای تعیین یک فایل مانیفست استفاده میشود، که یک فایل XML است که مشخص میکند پروژههای مختلف Git در منبع Android کجا در فهرست کاری شما قرار میگیرند. در این مثال، نام فایل مانیفست مشخص نشده است، بنابراین دستور از فایل مانیفست پیشفرض (default.xml
) استفاده میکند.خروجی باید حاوی این پیام باشد:
repo has been initialized in path_to_working_directory
برای اطلاعات در مورد فرمت فایل مانیفست، Repo Manifest Format را ببینید.
برای فهرستی از تمام دستورات Repo، به مرجع دستور Repo مراجعه کنید.
سورس اندروید را دانلود کنید
دستور زیر را برای دانلود درخت منبع اندروید در دایرکتوری کاری خود اجرا کنید:
$ repo sync -c -j8
آرگومان -c
به Repo دستور می دهد تا شاخه مانیفست فعلی را از سرور واکشی کند. دستور -j8
همگام سازی را در رشته ها برای تکمیل سریعتر تقسیم می کند.
این عمل باید کمی بیش از یک ساعت طول بکشد.
اگر در حین دانلود با مشکلی مواجه شدید، به عیبیابی و رفع مشکلات همگامسازی مراجعه کنید.
دانلود باینری های اختصاصی
AOSP میتواند مستقیماً روی شبیهسازهای Cuttlefish اجرا شود، اما AOSP را نمیتوان روی سختافزار بدون کتابخانههای اختصاصی دستگاه خاص استفاده کرد. در اینجا نحوه بدست آوردن باینری های دستگاه آورده شده است:
- اگر در حال دانلود شعبه
main
و ساختمان برای دستگاه Nexus یا Pixel هستید، جدیدترین فایل های باینری را از سایت پیش نمایش Binaries دانلود کنید. - اگر در حال دانلود و ساختن شعبه و ساختمان
main
برای دستگاه خود هستید، باید باینری های مخصوص دستگاه خود را ارائه دهید. - اگر در حال دانلود و ساختن یک شعبه و ساختمان دارای برچسب، غیر اصلی، برای دستگاه Nexus یا Pixel هستید، باینری مخصوص دستگاه را از Binaries برای دستگاههای Nexus و Pixel دانلود کنید.
استخراج باینری های اختصاصی
هر مجموعه ای از باینری ها به عنوان یک اسکریپت استخراج شونده در یک آرشیو فشرده ارائه می شود. برای استخراج و قرار دادن این باینری ها در محل صحیح درخت منبع خود:
- آرشیو را استخراج کنید
- اسکریپت پوسته خود استخراج کننده شامل ریشه درخت منبع AOSP خود را اجرا کنید.
- با شرایط قرارداد مجوز ضمیمه شده موافقت کنید. باینری ها و فایل های ساخت منطبق با آنها در
vendor/
سلسله مراتب درخت منبع نصب می شوند.
(اختیاری) مشروعیت کد را تأیید کنید
اگر در مورد مشروعیت کد منبع نگران هستید، مانند اینکه آیا این کد از Google آمده است، می توانید تگ های git را برای شعبه تأیید کنید. برای تأیید تگ های Git:
بلوک کلید زیر را کپی کرده و در یک فایل متنی مانند
keyfile.asc
قرار دهید.-----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-----
دستور زیر را برای وارد کردن یک کلید عمومی در پایگاه داده کلید GnuPG خود اجرا کنید. این کلید برای امضای برچسب های حاشیه نویسی که نشان دهنده انتشار هستند استفاده می شود.
$ gpg --import keyfile.asc
پس از وارد کردن کلیدها، با اجرای این دستور می توانید هر برچسبی را تأیید کنید:
$ git tag -v TAG_NAME