توجد شجرة مصدر Android في مستودع Git الذي تستضيفه Google. يتضمن مستودع Git البيانات التعريفية لمصدر Android، بما في ذلك التغييرات التي تم إجراؤها على المصدر ومتى تم إجراء التغييرات. توضح هذه الصفحة كيفية تنزيل الشجرة المصدر لسطر كود Android محدد.
للبدء بصورة المصنع لجهاز معين بدلاً من تنزيل المصدر، راجع تحديد إصدار الجهاز .
تهيئة عميل الريبو
بعد تثبيت Repo Launcher ، قم بإعداد العميل الخاص بك للوصول إلى مستودع مصدر Android:
قم بإنشاء دليل فارغ للاحتفاظ بملفات العمل الخاصة بك. أعطها أي اسم تريد:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
قم بتكوين Git باستخدام اسمك الحقيقي وعنوان بريدك الإلكتروني. لاستخدام أداة مراجعة كود Gerrit، تحتاج إلى عنوان بريد إلكتروني مرتبط بحساب Google مسجل . تأكد من أن هذا عنوان مباشر حيث يمكنك تلقي الرسائل. يظهر الاسم الذي تقدمه هنا في إسناد عمليات إرسال التعليمات البرمجية الخاصة بك.
git config --global user.name Your Name
git config --global user.email you@example.com
قم بتشغيل
repo init
للحصول على أحدث إصدار من Repo مع أحدث إصلاحات الأخطاء. يجب عليك تحديد عنوان URL للبيان، والذي يحدد مكان وضع المستودعات المتنوعة المضمنة في مصدر Android داخل دليل العمل الخاص بك.repo init -u https://android.googlesource.com/platform/manifest
للتعرف على الفرع الرئيسي:
repo init -u https://android.googlesource.com/platform/manifest -b main
للتحقق من فرع آخر غير main ، حدده باستخدام
-b
. للحصول على قائمة بالفروع، راجع علامات التعليمات البرمجية المصدرية والإصدارات .بالنسبة لبيثون 2
بالنسبة لبيثون 3
إذا تلقيت رسالة الخطأ "
/usr/bin/env 'python' no such file or directory
"، فاستخدم أحد الحلول التالية:إذا كان Ubuntu 20.04.2 LTS الخاص بك هو إصدار Linux مثبت حديثًا (مقابل ترقية):
sudo ln -s /usr/bin/python3 /usr/bin/python
إذا كنت تستخدم Git الإصدار 2.19 أو أحدث، فيمكنك تحديد
--partial-clone
عند تنفيذrepo init
. يستفيد هذا من إمكانية الاستنساخ الجزئي لـ Git لتنزيل كائنات Git عند الحاجة فقط، بدلاً من تنزيل كل شيء. نظرًا لأن استخدام النسخ الجزئية يعني أن العديد من العمليات يجب أن تتواصل مع الخادم، فاستخدم ما يلي إذا كنت مطورًا وتستخدم شبكة ذات زمن انتقال منخفض:repo init -u https://android.googlesource.com/platform/manifest -b main --partial-clone --clone-filter=blob:limit=10M
لنظام التشغيل Windows فقط: إذا تلقيت رسالة خطأ تفيد بأنه لا يمكن إنشاء الروابط الرمزية، مما يتسبب في فشل
repo init
، فارجع إلى وثائق GitHub Sympic Links لإنشاء هذه الارتباطات، أو لتمكين دعمها. بالنسبة لغير المسؤولين، راجع قسم السماح لغير المسؤولين بإنشاء روابط رمزية .
تنتهي التهيئة الناجحة برسالة تفيد بتهيئة Repo في دليل العمل الخاص بك. يحتوي دليل العميل الخاص بك الآن على دليل .repo
حيث يتم الاحتفاظ بملفات مثل البيان.
تنزيل شجرة مصدر Android
لتنزيل شجرة مصدر Android إلى دليل العمل الخاص بك من المستودعات كما هو محدد في البيان الافتراضي، قم بتشغيل:
repo sync
لتسريع المزامنة، قم بتمرير علامتي -c
(الفرع الحالي) و -j threadcount
:
repo sync -c -j8
يتم تنزيل ملفات مصدر Android في دليل العمل الخاص بك تحت أسماء المشروعات الخاصة بها.
لمنع الإخراج، قم بتمرير العلامة -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
استكشاف مشكلات الشبكة وإصلاحها
عند التنزيل من خلال وكيل (وهو أمر شائع في بعض بيئات الشركات)، قد تحتاج إلى تحديد الوكيل بشكل صريح لاستخدام 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>
وفي حالات نادرة، يواجه عملاء 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/main
cd /usr/local/aosp/main
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync
أخيرًا، لمزامنة العميل مع الخادم، قم بمزامنة المرآة مع الخادم، ثم العميل ضد المرآة:
cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/main
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 بدلاً من ذلك. عند إنشاء الفرع الرئيسي لجهاز ما، استخدم الثنائيات لأحدث إصدار مرقم أو بأحدث تاريخ.
استخراج الثنائيات الملكية
تأتي كل مجموعة من الثنائيات كبرنامج نصي ذاتي الاستخراج في أرشيف مضغوط. قم بفك ضغط كل أرشيف، وقم بتشغيل البرنامج النصي المضمن للاستخراج الذاتي من جذر الشجرة المصدر، ثم أكد موافقتك على شروط اتفاقية الترخيص المرفقة. يتم تثبيت الثنائيات وملفات makefiles المطابقة لها في vendor/
التسلسل الهرمي للشجرة المصدر.
تنظيف
لضمان أخذ الثنائيات المثبتة حديثًا في الاعتبار بشكل صحيح بعد استخراجها، احذف المخرجات الموجودة لأي إصدار سابق باستخدام:
make clobber