منبع Android در مجموعهای از مخازن Git که Google میزبان آنها است قرار دارد. مخزن Git شامل کل سابقه منبع Android، ازجمله تغییرات منبع و زمان ایجاد تغییرات است. این صفحه نحوه بارگیری منبع را شرح میدهد.
مقداردهی اولیه کارخواه Repo
کلاینت خود را برای دسترسی به مخزن منبع Android راهاندازی کنید:
فهرست راهنمای کاری ایجاد کنید و به آن پیمایش کنید:
mkdir WORKING_DIRECTORYcd WORKING_DIRECTORYفهرست راهنمای کارتان را برای کنترل منبع مقداردهی اولیه کنید:
repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifestاز گزینه
-bبرای شناسایی شاخهای که درحال مقداردهی اولیه آن هستید استفاده میشود. برای فهرست شاخهها و نام برچسبها، برچسبها و ساختهای کد منبع را ببینید. از نامهای برچسب یا نامهای شاخه با گزینه-bاستفاده کنید.گزینه
-uالزامی است و برای مشخص کردن فایل مانیفست استفاده میشود، که یک فایل XML است که مشخص میکند پروژههای مختلف Git در منبع Android در کجای دایرکتوری کاری شما قرار دارند. در این مثال، نام فایل مانیفست مشخص نشده است، بنابراین فرمان از فایل مانیفست پیشفرض (default.xml) استفاده میکند.برونداد باید حاوی این پیام باشد:
repo has been initialized in path_to_working_directory
برای اطلاعات درباره قالب فایل مانیفست، به قالب مانیفست repo مراجعه کنید.
برای مشاهده فهرست همه فرمانهای Repo، به مرجع فرمان Repo مراجعه کنید.
بارگیری منبع Android
فرمان زیر را اجرا کنید تا درخت منبع Android را در فهرست راهنمای کاریتان بارگیری کنید:
repo sync -c -j8آرگومان -c به Repo دستور میدهد تا شاخه مانیفست فعلی را از سرور واکشی کند. فرمان -j8 همگامسازی را در رشتهها تقسیم میکند تا سریعتر تکمیل شود.
این عملیات باید کمی بیشتر از یک ساعت طول بکشد.
اگر درطول بارگیری با مشکلی مواجه شدید، به عیبیابی و رفع مشکلات همگامسازی مراجعه کنید.
بارگیری دودوییهای اختصاصی
AOSP میتواند مستقیماً روی شبیهسازهای Cuttlefish اجرا شود، اما نمیتوان از AOSP روی سختافزار بدون کتابخانههای اختصاصی اضافی مختص دستگاه استفاده کرد. در اینجا نحوه دریافت آن دودوییهای دستگاه آورده شده است:
- اگر درحال بارگیری شاخه
mainو ساختن برای دستگاه Nexus یا Pixel هستید، جدیدترین دودوییها را از سایت پیشنمایش دودوییها بارگیری کنید. - اگر درحال بارگیری و ساختن شاخه
mainو ساختن برای دستگاه خودتان هستید، باید باینریهای مختص دستگاهتان را ارائه دهید. - اگر درحال بارگیری و ساختن یک شاخه برچسبگذاریشده و غیرشاخه اصلی هستید و برای دستگاه Nexus یا Pixel میسازید، کد دودویی مختص دستگاه را از کدهای دودویی درایور برای دستگاههای 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