يتوافق Android 11 مع إنشاء لقطات VNDK
العناصر
ولقطات البائعين، التي يمكنك استخدامها لإنشاء vendor.img
بغض النظر عن
إصدار Android في شجرة المصدر يؤدي هذا إلى تمكين نسخ مختلطة من الصور، مثل
كبائع قديم وصورة نظام أحدث.
لا يمكن استخدام نُسخ الصور المختلطة لما يلي.
Android.mk.
بما أنّ تطبيق Sayg ينشئ نبذة عن المورّدين، يتم تحديد الوحدات في لا يتم تسجيلAndroid.mk
كنبذة عن المورّد (الوحدات المملوكة لشركة SoC في لا يمكن ضمان عملAndroid.mk
).مادة التنظيف: لا يدعم البائع ولقطات VNDK المعقّم يجب إنشاء المتغيرات بشكل منفصل.
لمحة عن لقطات المورّدين
نبذة عن المورّد هي لقطة يملكها المصنّع الأصلي للجهاز. وهو عبارة عن مجموعة من وحدات C++ المصممة مسبقًا
تم تثبيته في /vendor
ولكن تم الحفاظ عليه على AOSP. بدون الاستعانة بمورّد
لقطة من إصدار Android السابق، الترقية إلى إصدار Android جديد
قد يؤدي إلى تعطُّل قسم البائع لأنّه يمكن إزالة وحدات لقطات المورّد.
أو تغييرها بدون التوافق مع واجهة برمجة التطبيقات أو واجهة التطبيق الثنائية (ABI).
تحتوي لقطة المورِّد على الوحدات التالية على AOSP.
- المكتبات المشتركة والثابتة والعناوين مع
vendor: true
أوvendor_available: true
- مكتبات VNDK الثابتة باستخدام
vendor_available: true
- الملفات التنفيذية وملفات الكائنات باستخدام
vendor: true
أوvendor_available: true
تعتبر الوحدات المتوفرة ضمن الأدلة التالية رمز أجهزة مملوكة للمنظومة على الرقاقة (SoC) ويتم تجاهلها.
device/
vendor/
hardware/
، باستثناءhardware/interfaces
hardware/libhardware
hardware/libhardware_legacy
وقد تتوفّر أيضًا رموز الأجهزة المملوكة للمنظومة على رقاقة (SoC) في الأدلة الأخرى. في هذا الوقت، لا تدعم لقطات البائعين هذه التهيئات.
إنشاء لقطات البائعين
قم بإنشاء لقطة بائع باستخدام الأوامر التالية.
. build/envsetup.sh
lunch target
m dist vendor-snapshot
تنشئ هذه الأوامر ملف vendor-$(TARGET_DEVICE).zip
في
$DIST_DIR
يوضّح المثال التالي ملف ZIP للقطة المورّد:
vendor-$(TARGET_DEVICE).zip
├── arch-arm64-armv8-a
│ ├── binary -> binary files, *.json files
│ ├── header -> *.json files
│ ├── object -> *.o files, *.json files
│ ├── shared -> *.so files, *.json files
│ └── static -> *.a files, *.json files
├── arch-arm-armv8-a -> (arch-arm64-armv8-a)
├── configs -> *.rc files, *.xml files
├── include -> exported header files (*.h, *.hh, etc.)
└── NOTICE_FILES -> license txt files
- تحتوي ملفات JSON على علامات مثل اسم الوحدة والأدلة التي تم تصديرها
init_rc
ملف،vintf_fragments
ملف - يحتوي الدليل
configs
على.rc
و.xml
ملف من العلامتينinit_rc
وvintf_fragments
.
تثبيت لقطات المورّدين
لتثبيت لقطة مورّد، انتقِل إلى دليل الوجهة واستخدِم الأوامر التالية.
python3 development/vendor_snapshot/update.py --local $DIST_DIR --install-dir \
vendor/vendor name/vendor_snapshot VER
ينشئ هذا الأمر
/vendor/vendor name/vendor_snapshot/vVER/$(TARGET_ARCH)/Android.bp
يوضح المثال التالي بنية الدليل لنبذة عن المورّد:
vendor/vendor name/vendor_snapshot/
├── v30
│ ├── arm64
│ │ ├── arch-arm64-armv8-a
│ │ │ ├── binary -> (prebuilt libs)
│ │ │ ├── object -> (prebuilt libs)
│ │ │ ├── shared -> (prebuilt libs)
│ │ │ └── static -> (prebuilt libs)
│ │ ├── arch-arm-armv8-a -> (same as above)
│ │ ├── configs -> (config files)
│ │ ├── include -> (exported header files)
│ │ ├── NOTICE_FILES -> (license files)
│ │ └── Android.bp -> (snapshot modules)
│ ├── arm -> (same as above)
│ ├── x86_64 -> (same as above)
│ └── x86 -> (same as above)
└── (other vendor versions) -> (same as above)
إنشاء صور البائعين
استخدام إنشاء لقطة VNDK
العناصر
ونبذة عن المورّد، يمكنك إنشاء vendor.img
بغض النظر عن
على شجرة المصدر، مما يتيح إنشاء إصدارات مختلطة من
الصور. بعد تثبيت كل من لقطة VNDK ولقطة البائع، اضبط
BOARD_VNDK_VERSION
إلى إصدار المورّد. مثلاً:
# BoardConfig.mk
BOARD_VNDK_VERSION := 29
عند ضبط BOARD_VNDK_VERSION
على قيمة أخرى غير current
، فإن التصميم
النظام:
- تفعيل وحدات لقطات VNDK ووحدات لقطة البائعين
BOARD_VNDK_VERSION
تلغي كل وحدة لقطة وحدة مصدر C++ تحمل نفس الاسم. - يتم ضبط السمة
ro.vndk.version
علىBOARD_VNDK_VERSION
. - تثبيت وحدات لقطات VNDK من
BOARD_VNDK_VERSION
إلىsystem_ext
.