اتّبِع التعليمات الواردة في هذه الصفحة لإنشاء نظام التشغيل 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
************************************************************
في ما يلي الأسباب المحتمَلة والحلول:
- تعذّر عليك تثبيت حزمة JDK الصحيحة كما هو محدّد في أقسام JDK ضمن مقالة الإعداد لتطوير AOSP (من الإصدار 2.3 إلى الإصدار 8.0) .
- هناك حزمة JDK أخرى تم تثبيتها سابقًا تظهر في المسار. أضِفJDK الصحيح في بداية المسار أو أزِل حزمة JDK التي تتضمّن مشكلة.