توجد شجرة مصدر 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 master
للتحقق من فرع آخر غير الرئيسي ، حدده بـ
-b
. للحصول على قائمة بالفروع ، راجع علامات التعليمات البرمجية المصدر والبنيات .بالنسبة إلى Python 2
بالنسبة إلى Python 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
إذا كنت تستخدم الإصدار 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
(صامت). راجع مرجع أوامر الريبو لجميع الخيارات.
باستخدام المصادقة
بشكل افتراضي ، يكون الوصول إلى رمز مصدر 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