سورس اندروید را دانلود کنید

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

کلاینت Repo را راه اندازی کنید

مشتری خود را برای دسترسی به مخزن منبع Android تنظیم کنید:

  1. یک پوشه کاری ایجاد کرده و به آن بروید:

    $ mkdir WORKING_DIRECTORY
    $ cd WORKING_DIRECTORY
    
  2. دایرکتوری کاری خود را برای کنترل منبع راه اندازی کنید:

    $ repo init -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 همگام سازی را در رشته ها برای تکمیل سریعتر تقسیم می کند.

این عمل باید کمی بیش از یک ساعت طول بکشد.

اگر در حین repo sync با مشکلی مواجه شدید، به عیب یابی و رفع مشکلات همگام سازی مراجعه کنید.

دانلود باینری های اختصاصی

AOSP می‌تواند مستقیماً روی شبیه‌سازهای Cuttlefish اجرا شود، اما AOSP را نمی‌توان روی سخت‌افزار بدون کتابخانه‌های اختصاصی دستگاه خاص استفاده کرد. در اینجا نحوه بدست آوردن باینری های دستگاه آورده شده است:

  • اگر در حال دانلود شعبه main و ساختمان برای دستگاه Nexus یا Pixel هستید، جدیدترین فایل های باینری را از سایت پیش نمایش Binaries دانلود کنید.
  • اگر در حال دانلود و ساختن شعبه و ساختمان main برای دستگاه خود هستید، باید باینری های مخصوص دستگاه خود را ارائه دهید.
  • اگر در حال دانلود و ساختن یک شعبه و ساختمان دارای برچسب، غیر اصلی، برای دستگاه Nexus یا Pixel هستید، باینری مخصوص دستگاه را از Binaries برای دستگاه‌های Nexus و Pixel دانلود کنید.

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

هر مجموعه ای از باینری ها به عنوان یک اسکریپت استخراج شونده در یک آرشیو فشرده ارائه می شود. برای استخراج و قرار دادن این باینری ها در محل صحیح درخت منبع خود:

  1. آرشیو را استخراج کنید
  2. اسکریپت پوسته خود استخراج کننده شامل ریشه درخت منبع AOSP خود را اجرا کنید.
  3. با شرایط قرارداد مجوز ضمیمه شده موافقت کنید. باینری ها و فایل های ساخت منطبق با آنها در vendor/ سلسله مراتب درخت منبع نصب می شوند.

(اختیاری) مشروعیت کد را تأیید کنید

اگر در مورد مشروعیت کد منبع نگران هستید، مانند اینکه آیا این کد از Google آمده است، می توانید تگ های git را برای شعبه تأیید کنید. برای تأیید تگ های Git:

  1. بلوک کلید زیر را کپی کرده و در یک فایل متنی مانند 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-----
    
  2. دستور زیر را برای وارد کردن یک کلید عمومی در پایگاه داده کلید GnuPG خود اجرا کنید. این کلید برای امضای برچسب های حاشیه نویسی که نشان دهنده انتشار هستند استفاده می شود.

    $ gpg --import keyfile.asc
    
  3. پس از وارد کردن کلیدها، با اجرای این دستور می توانید هر برچسبی را تأیید کنید:

    $ git tag -v TAG_NAME