إصدار Android

اتّبِع التعليمات الواردة في هذه الصفحة لإنشاء نظام التشغيل Android.

إعداد بيئة الإصدار

من داخل دليل العمل، استخدِم نص envsetup.sh لإعداد بيئة الإنشاء:

source build/envsetup.sh

يستورد هذا النص البرمجي العديد من الأوامر التي تتيح لك العمل مع ملف برمجي مفتوح المصدر لنظام Android، بما في ذلك الأوامر المستخدَمة في هذه الصفحة. لعرض مصدر النص البرمجي، يُرجى الرجوع إلى platform/build/envsetup.sh. لعرض المساعدة المضمّنة، اكتب hmm.

اختيار هدف

قبل إنشاء نظام التشغيل Android، عليك تحديد هدف للإنشاء. يعكس الهدف المنصة المستهدَفة التي تُنشئ التطبيق لها. لتحديد الهدف الذي تريد إنشاؤه، استخدِم الأمر lunch متبوعًا بسلسلة تمثّل الهدف. مثلاً:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

من المفترض أن يظهر لك ملخّص للبيئة المستهدفة وبيئة الإنشاء:

============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================

تكون السلسلة التي تمثّل الهدف بالشكل التالي:

lunch product_name-release_config-build_variant

مكونات هذه السلسلة هي:

  • product_name هو اسم المنتج الذي تريد إنشاءه، مثل aosp_cf_x86_64_phone أو aosp_husky. يمكن أن يتّبع product_name الخاص بك التنسيق الخاص بجهازك، ولكن التنسيق الذي تستخدمه Google لأجهزة Android يتضمّن المكوّنات التالية:

    • يشير الرمز aosp إلى نظام Android Open Source Platform.
    • (اختياري) يتم تضمين cf عندما يكون الهدف مخصّصًا للتشغيل داخل محاكي Cuttlefish.
    • البنية والأجهزة (الاسم الرمزي)، مثل x86_64_phone أو husky، وهو الاسم الرمزي لهاتف Pixel 8 Pro للحصول على قائمة بالأسماء الرمزية لأجهزة Google، يُرجى الاطّلاع على الأسماء الرمزية للأجهزة.
  • تم ضبط release_config على إعدادات الإصدار، مثل إعدادات إصدار التطوير المُسمّاة trunk_staging. تحدّد إعدادات الإصدار ميزات معيّنة و رمزًا معيّنًا مرتبطَين بعلامات إطلاق الميزات، وتكون إما مفعّلة أو غير مفعّلة في الإصدار. لمزيد من المعلومات عن إعدادات الإصدار، يُرجى الاطّلاع على مقالة ضبط قيم إطلاق علامة الميزة.

  • يمكن أن يكون الجزء build_variant من السلسلة إحدى القيم الثلاث الواردة في الجدول التالي:

    build_variant الوصف
    user يقدّم هذا الصيغة من الإصدار إمكانية وصول محدودة إلى الأمان وهو مناسب للإصدار العلني.
    userdebug يساعد هذا الصيغة من الإصدار مطوّري الأجهزة في فهم أداء الإصدارات قيد التطوير ومدى فعاليتها. عند التطوير باستخدام إصدار userdebug، اتّبِع إرشادات userdebug.
    eng يتميز هذا الصيغة من الإصدار بوقت إنشاء أسرع، وهو الأنسب للتطوير اليومي إذا لم تكن تهتم بالأداء واستهلاك الطاقة.

في حال تشغيل lunch بدون أيّ وسيطات، يتمّ توفير قائمة بالاستهدافات الشائعة. يمكنك أيضًا إنشاء سلاسل استهداف خاصة بك من خلال تجميع عناصر السلسلة المستهدَفة باستخدام المعلومات الواردة في هذه الصفحة والأسماء الرمزية التي تمثّل أجهزة Google معيّنة في الأسماء الرمزية للأجهزة.

عرض الاستهداف الحالي

للاطّلاع على إعدادات الغداء الحالية، نفِّذ ما يلي:

$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"

إنشاء الرمز

نفِّذ الأمر التالي لإنشاء استهدافك. استنادًا إلى مواصفات محطة العمل، يمكن أن تستغرق عملية الإنشاء الأولى أقل من ساعة وتصل إلى بضع ساعات. تستغرق عمليات الإنشاء اللاحقة وقتًا أقل بكثير.

m

تظهر نتيجة عملية الإنشاء في $OUT_DIR. إذا أنشأت استهدافات مختلفة، سيظهر كلّ تصميم استهداف في $OUT_DIR.

يتم إنشاء الأمر m من أعلى الشجرة، لذا يمكنك تشغيل m من داخل الأدلة الفرعية. إذا تم ضبط متغيّر البيئة TOP، يستخدمه الأمر m. إذا لم يتم ضبط TOP، يبحث الأمر m في الشجرة من الdirectory الحالي، محاولًا العثور على أعلى الشجرة.

يمكن للأمر m معالجة المهام الموازية باستخدام وسيطة -jN. إذا لم تقدِّم -j، يختار نظام الإنشاء تلقائيًا عدد المهام المتزامنة الذي يعتقد أنّه الأمثل لنظامك.

يمكنك إنشاء وحدات معيّنة بدلاً من صورة الجهاز الكاملة من خلال إدراج أسماء الوحدات في سطر أوامر m. بالإضافة إلى ذلك، يقدّم الأمر m بعض الاستهدافات الزائفة، والتي تُعرف باسم الأهداف. على سبيل المثال، لا ينشئ m nothing أيّ شيء، ولكنه يحلّل بنية التصميم ويتحقّق من صحتها. للحصول على قائمة بالهدف الصالحة، اكتب m help.

تحديد مشاكل أخطاء الإصدار وحلّها (الإصدار 8.0 أو الإصدارات الأقدم)

إذا كنت بصدد إنشاء AOSP 8 أو إصدار أقدم، قد يتم إيقاف m عند مواجهة مشكلة في إصدار Java. على سبيل المثال، قد تظهر لك هذه الرسالة:

************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.

Please follow the machine setup instructions at
    https://source.android.com/source/initializing.html
************************************************************

في ما يلي الأسباب المحتمَلة والحلول: