الإعداد لتطوير AOSP (الإصدار 9.0 أو إصدار أحدث)

قبل تنزيل وإنشاء فرع main لمصدر Android، تأكَّد من أنّ أجهزتك تستوفي المتطلبات اللازمة وأنّ البرامج المطلوبة قد تم تثبيتها بشكل صحيح. يجب أيضًا أن تكون على دراية بالمصطلحات التالية:

Git
Git هو نظام مجاني ومفتوح المصدر للتحكّم في الإصدارات الموزَّعة. يستخدم Android Git للعمليات المحلية مثل التشعّب والالتزامات والاختلافات والتعديلات. للحصول على مساعدة في تعلُّم لغة Git، يُرجى الاطّلاع على مستندات Git.
Repo
Repo عبارة عن برنامج تضمين في Python حول Git يعمل على تبسيط تنفيذ العمليات المعقدة في مستودعات Git المتعددة. لا يحل Repo محل Git لجميع عمليات التحكم في الإصدار، بل يجعل فقط عمليات Git المعقدة أسهل في التنفيذ. يستخدم Repo ملفات البيان لتجميع مشاريع Git في مشروع Android الفائق.
ملف البيان
ملف البيان هو ملف XML يحدد مكان وضع مشاريع Git المختلفة في مصدر Android داخل شجرة مصدر AOSP.

استيفاء متطلبات الأجهزة

ويجب أن تفي محطة عمل التطوير لديك بمتطلبات الأجهزة التالية أو تتجاوزها:

  • نظام 64 بت

  • يجب توفُّر ما لا يقل عن 400 غيغابايت من مساحة القرص المتوفرة للتحقق من الإصدار وإنشاء الرمز (250 غيغابايت للفحص بالإضافة إلى 150 غيغابايت للإنشاء).

  • ذاكرة وصول عشوائي (RAM) بسعة 64 غيغابايت على الأقل تستخدم Google أجهزة مزودة بـ 72 نواة مع ذاكرة وصول عشوائي (RAM) بسعة 64 غيغابايت لإصدار Android. تستغرق عملية إعداد Android هذه 40 دقيقة تقريبًا لإنشاء إصدار Android الكامل وبضع دقائق فقط للإصدار التزايدي لنظام التشغيل Android. وفي المقابل، يستغرق الأمر حوالي 6 ساعات للحصول على إصدار كامل مع جهاز سداسي النواة وذاكرة وصول عشوائي (RAM) بسعة 64 غيغابايت.

استيفاء متطلبات نظام التشغيل

يجب أن تعمل محطة التطوير لديك على تشغيل أي توزيعة من توزيعات Linux 64 بت مع GNU CLibrary (glibc) 2.17 أو الإصدارات الأحدث.

تثبيت الحِزم المطلوبة

لإنشاء نظام التشغيل Android 11 أو إصدار أحدث، عليك استخدام الإصدار 18.04 من نظام التشغيل Ubuntu أو إصدار أحدث. لتثبيت الحزم المطلوبة لنظام التشغيل Ubuntu 18.04 أو إصدار أحدث، شغّل الأمر التالي:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

من بين الحزم المثبتة، يقوم هذا الأمر بتثبيت Git، الذي يُستخدم لتنزيل مصدر AOSP.

تثبيت البرنامج المطلوب

قبل أن تتمكّن من العمل باستخدام AOSP، يجب أن يكون لديك برامج OpenJDK وMake وPython 3 وRepo. يأتي الفرع الرئيسي لنظام AOSP من Android مزودًا بإصدارات منشأة مسبقًا من OpenJDK وMake وPython 3، وبالتالي لا يلزم إجراء خطوات تثبيت إضافية. يوضِّح القسم التالي كيفية تثبيت Repo.

تثبيت Repo

اتّبِع الخطوات التالية لتثبيت Repo:

  1. تنزيل معلومات الحزمة الحالية:

    sudo apt-get update
    
  2. شغِّل الأمر التالي لتثبيت مشغّل Repo:

    sudo apt-get install repo
    

    يوفر مشغّل Repo نصًا برمجيًا في Python لإعداد عملية الدفع وتنزيل أداة Repo الكاملة.

    في حال نجاح هذا الإجراء، انتقِل إلى الخطوة 4.

  3. (اختياري) يمكنك تثبيت Repo يدويًا باستخدام سلسلة الأوامر التالية:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    تقوم الأوامر الثلاثة الأولى بإعداد ملف مؤقت، وتنزيل Repo إلى الملف، والتحقق من أن المفتاح المقدم يطابق المفتاح المطلوب. في حال نجاح هذه الأوامر، يثبّت الأمر النهائي مشغّل Repo.

  4. تأكَّد من إصدار مشغّل Repo:

    repo version
    

    ويجب أن تشير المخرجات إلى إصدار 2.5 أو إصدار أحدث، على سبيل المثال:

    repo launcher version 2.40

إعداد دليل إخراج بديل

يتم تلقائيًا تخزين ناتج كل إصدار في الدليل الفرعي out/ من شجرة المصدر المطابقة. يمكنك إلغاء هذا الدليل من خلال تصدير متغيّر بيئة OUT_DIR. على سبيل المثال، إذا أردت تخزين الناتج على محرك أقراص مختلف، يمكنك توجيه OUT_DIR إلى محرك الأقراص هذا:

export OUT_DIR=my_other_drive

ما هي الخطوات التالية؟

  • لتنزيل رمز المصدر، يمكنك المتابعة إلى تنزيل مصدر Android.
  • للحصول على مساعدة في تعلُّم استخدام Git، يمكنك الاطّلاع على مستندات Git.
  • للحصول على وثائق Repo إضافية، يُرجى الاطّلاع على دليل Repo.
  • للحصول على قائمة بجميع أوامر Repo، يمكنك الرجوع إلى مرجع أوامر Repo.