تنزيل المصدر

توجد شجرة مصدر Android في مستودع Git الذي تستضيفه Google. يتضمن مستودع Git البيانات الوصفية لمصدر Android ، بما في ذلك التغييرات على المصدر ووقت إجراء التغييرات. توضح هذه الصفحة كيفية تنزيل شجرة المصدر لخط كود Android محدد.

للبدء بصورة المصنع لجهاز معين بدلاً من تنزيل المصدر ، راجع تحديد بنية الجهاز .

جارٍ بدء عميل الريبو

بعد تثبيت Repo Launcher ، قم بإعداد عميلك للوصول إلى مستودع مصدر Android:

  1. قم بإنشاء دليل فارغ للاحتفاظ بملفات العمل الخاصة بك. أعطها أي اسم تريده:

    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 -u https://android.googlesource.com/platform/manifest -b master
    

    للتحقق من فرع آخر غير الرئيسي ، -b بـ -b . للحصول على قائمة بالفروع ، راجع علامات التعليمات البرمجية المصدر والبنيات .

    إذا تلقيت رسالة الخطأ " /usr/bin/env 'python' no such file or directory " ، فاستخدم أحد الحلول التالية:

    بالنسبة إلى Python2

    تأكد من أن نظامك يحتوي على Python 2.7.

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

    بالنسبة إلى Python3

    إذا كان Ubuntu 20.04.2 LTS هو إصدار Linux مثبت حديثًا (مقابل تمت ترقيته):

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

    إذا كنت تستخدم الإصدار 2.19 من Git أو إصدارًا أحدث ، فيمكنك تحديد --partial- clone عند تنفيذ عملية repo init . يستفيد هذا من إمكانية الاستنساخ الجزئي لـ Git لتنزيل كائنات Git فقط عند الحاجة ، بدلاً من تنزيل كل شيء. نظرًا لأن استخدام النسخ الجزئية يعني أن العديد من العمليات يجب أن تتواصل مع الخادم ، فاستخدم ما يلي إذا كنت مطورًا وكنت تستخدم شبكة ذات زمن انتقال منخفض:

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

    لنظام التشغيل Windows فقط: إذا تلقيت رسالة خطأ تفيد بأنه لا يمكن إنشاء روابط رمزية ، مما تسبب في فشل repo init ، فارجع إلى وثائق GitHub Symbolic Links لإنشاء هذه الروابط أو لتمكين دعمها. بالنسبة لغير المسؤولين ، راجع قسم السماح لغير المسؤولين بإنشاء روابط رمزية .

تنتهي عملية التهيئة الناجحة برسالة تفيد بأنه قد تم تهيئة الريبو في دليل العمل الخاص بك. يحتوي دليل العميل الآن على دليل .repo حيث يتم الاحتفاظ بالملفات مثل البيان.

تنزيل شجرة مصدر Android

لتنزيل شجرة مصدر Android إلى دليل العمل الخاص بك من المستودعات كما هو محدد في البيان الافتراضي ، قم بتشغيل:

repo sync

لتسريع عمليات المزامنة ، قم بتمرير -c (الفرع الحالي) و -j threadcount :

repo sync -c -j8

يتم تنزيل ملفات مصدر Android في دليل العمل الخاص بك تحت أسماء مشاريعهم.

لمنع الإخراج ، قم بتمرير العلامة -q ( -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

استكشاف مشكلات الشبكة وإصلاحها

عند التنزيل من خلف وكيل (وهو أمر شائع في بعض بيئات الشركات) ، قد تحتاج إلى تحديد الوكيل بشكل صريح لاستخدام ريبو:

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>

نادرًا ما يواجه عملاء Linux مشكلات في الاتصال ، ويتعثرون في منتصف التنزيلات (عادةً أثناء تلقي الكائنات ). يمكن أن يؤدي ضبط إعدادات مكدس 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 ، استخدم معاينة الثنائيات بدلاً من ذلك. عند إنشاء الفرع الرئيسي لجهاز ، استخدم الثنائيات لآخر إصدار مرقم أو بأحدث تاريخ.

استخراج الثنائيات الملكية

تأتي كل مجموعة من الثنائيات كبرنامج نصي يتم استخراجه ذاتيًا في أرشيف مضغوط. قم بإلغاء ضغط كل أرشيف ، وقم بتشغيل البرنامج النصي المضمن ذاتي الاستخراج من جذر شجرة المصدر ، ثم أكد موافقتك على شروط اتفاقية الترخيص المرفقة. يتم تثبيت الثنائيات وملفات makefiles المطابقة لها في vendor/ التسلسل الهرمي لشجرة المصدر.

نظف

لضمان أخذ الثنائيات المثبتة حديثًا في الاعتبار بشكل صحيح بعد استخراجها ، احذف المخرجات الحالية لأي بناء سابق باستخدام:

make clobber