يمكنك إنشاء تصميمات لأجهزة Nexus و Pixel باستخدام إصدارات Android Open Source Project (AOSP) والثنائيات الخاصة بالأجهزة ذات الصلة. للحصول على إصدارات Android والأجهزة المستهدفة المتاحة ، راجع علامات وإصدارات التعليمات البرمجية المصدر .
يمكنك أيضًا إنشاء تصميمات للوحات مرجعية لـ DragonBoard 845c و HiKey 960 و Khadas VIM3 و Qualcomm Robotics Board RB5 Android ، والتي تم تصميمها لمساعدة بائعي المكونات غير المتنقلة على تطوير برامج تشغيل وإخراجها إلى إصدارات Android. يمكن أن يؤدي استخدام لوحة مرجعية إلى تسهيل جهود الترقية ، وتقليل الوقت اللازم لتسويق أجهزة Android الجديدة ، وخفض تكاليف الجهاز من خلال تمكين ODM / OEMs من الاختيار من بين مجموعة واسعة من المكونات المتوافقة ، وزيادة سرعة الابتكار بين موردي المكونات.
تدعم Google لوحات DragonBoard 845c و HiKey 960 و Khadas VIM3 و Qualcomm Robotics Board RB5 Android. يوفر AOSP مصدر kernel ودعم اللوحة لهذه اللوحات ، بحيث يمكن للمطورين إنشاء وتصحيح برامج التشغيل الطرفية بسهولة ، وتطوير النواة ، وتنفيذ مهام أخرى مع عدد أقل من أعباء OEM.
دراغون بورد 845 ج
تعد DragonBoard 845c جزءًا من منصة RB3 ومتاحة من موقع 96boards.org .
الشكل 1. DragonBoard 845c
تجميع مساحة المستخدمين
استخدم الأوامر التالية لتنزيل Android وإنشائه على DragonBoard 845c.
قم بتنزيل شجرة مصدر Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
قم بتنزيل حزمة المورّد الحالية:
./device/linaro/dragonboard/fetch-vendor-package.sh
بناء AOSP:
. ./build/envsetup.sh
lunch db845c-userdebug
make -j24
تركيب الصور المحلية
قم بتشغيل db845c في وضع Fastboot.
قم بتشغيل الأمر التالي:
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
إذا لزم الأمر ، يمكنك إجراء استرداد لوحة QDL عن طريق تشغيل البرنامج النصي التالي بعد تمهيد db845c في وضع وميض USB (انظر DragonBoard Recovery ):
./device/linaro/dragonboard/installer/db845c/recovery.sh
بناء النواة
لإنشاء عناصر نواة DragonBoard db845c Android Generic Kernel Image (GKI):
قم بتشغيل الأوامر التالية لاستنساخ مصدر kernel وسلاسل أدوات Android التي تم إنشاؤها مسبقًا وإنشاء البرامج النصية.
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -j8 -c
rm -rf out
tools/bazel run //common:db845c_dist -- --dist_dir=$DIST_DIR
احذف جميع العناصر الموجودة في
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
ثم انسخ عناصر الإنشاء منout/android-mainline/dist/
إلى${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
ثم أعد بناء مساحة المستخدمين باستخدام:make TARGET_KERNEL_USE=mainline -j24
ووميض الجهاز مع boot.img و super.img الناتج (انظر تجميع مساحة المستخدمين ).
اختبر نواة GKI:
في القطع الأثرية ، قم بتنزيل الصورة.
Gzip الصورة
gzip Image
انسخه إلى
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.أعد إنشاء AOSP ووميض الجهاز باستخدام boot.img الجديد (انظر تجميع مساحة المستخدمين ).
لوحات HiKey 960
لوحة HiKey 960 متوفرة من Amazon و Lenovator .
الشكل 2. لوحة HiKey 960 بواسطة Lenovator
تجميع مساحة المستخدمين
استخدم الأوامر التالية لتنزيل نظام Android وإنشائه على لوحة HiKey 960.
قم بتنزيل شجرة مصدر Android
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
قم بتنزيل حزمة البائع الحالية
./device/linaro/hikey/fetch-vendor-package.sh
يبني
. ./build/envsetup.sh
lunch hikey960-userdebug
make -j24
تركيب الصور المحلية
حدد وضع fastboot عن طريق تشغيل مفتاح التشغيل 3 (للحصول على التفاصيل ، راجع دليل بدء التشغيل HiKey 960 ).
قم بتشغيل اللوحة.
صور فلاش محلية:
./device/linaro/hikey/installer/hikey960/flash-all.sh
قم بإيقاف تشغيل المفتاح 3 ودورة الطاقة في اللوحة.
بناء النواة
لإنشاء عناصر HiKey960 Android GKI kernel:
قم بتشغيل الأوامر التالية:
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.hikey960 build/build.sh
احذف جميع العناصر الموجودة في
${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/
ثم انسخ عناصر البناء من بنية kernel فيout/android12-5.4/dist/
إلى${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
تسلسل DTB:
cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb > device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
بناء مساحة مستخدمي Android
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
ووميض الجهاز بالنواة الجديدة (انظر تجميع مساحة المستخدمين )
اختبر نواة صورة النواة العامة (GKI)
في القطع الأثرية ، قم بتنزيل ملف
Image
وانسخه إلى${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
.ضغط الصورة وسلسلة DTB
gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb > ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
- قم ببناء الجهاز وميضه بالنواة الجديدة (انظر تجميع مساحة المستخدمين ).
ضبط الرقم التسلسلي
لتعيين الرقم التسلسلي العشوائي ، قم بتشغيل:
fastboot getvar nve:SN@16\_DIGIT\_NUMBER
يقوم Bootloader بتصدير الرقم التسلسلي الذي تم إنشاؤه إلى النواة باستخدام androidboot.serialno=
. يتم تمرير هذه المعلمة عبر سطر أوامر kernel في Android 11 والإصدارات الأقل ، ومن خلال bootconfig في Android 12 مع إصدار kernel 5.10 أو أحدث.
ضبط دقة الشاشة
قم بتحرير device/linaro/hikey/hikey960/BoardConfig.mk
BOARD_KERNEL_CMDLINE
وقم بتكوين إعداد video
. على سبيل المثال ، إعداد شاشة مقاس 24 بوصة هو video=HDMI-A-1:1280x800@60
.
لوحات VIM3 و VIM3L
لوحات Vim3 و VIM3L من Khadas متوفرة على موقع Khadas
الشكل 3. لوحة VIM3 بواسطة Khadas
تجميع مساحة المستخدمين
استخدم الأوامر التالية لتنزيل Android وإنشائه على لوحة VIM3.
قم بتنزيل شجرة مصدر Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
يبني:
. ./build/envsetup.sh
lunch yukawa-userdebug
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
بشكل افتراضي ، تم تصميم Android باستخدام نواة 5.10. لاستخدام kernel 5.4 prebuilts:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
بالنسبة لـ VIM3L ، استخدم:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
تركيب الصور الاولية
ضع اللوحة في وضع ترقية USB باتباع تعليمات وامض VIM3 .
فلاش الصور الأولية لذاكرة الوصول العشوائي:
cd path/to/aosp/device/amlogic/yukawa/bootloader/
./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
./tools/update run 0xfffa0000
./tools/update bl2_boot u-boot_kvim3_noab.bin
- إذا واجهت مشكلات تتعلق بالإذن ، فارجع إلى قسم قواعد udev لإضافة قواعد USB المناسبة.
- إذا لم تنجح
tools/update
، فاستخدم أداة pyamlboot لتحريك اللوحة بدلاً من ذلك.
بعد تشغيل U-Boot وتشغيل fastboot ، قم بتشغيل الأوامر التالية:
fastboot oem format
fastboot flash bootloader u-boot_kvim3_noab.bin
fastboot erase bootenv
fastboot reboot bootloader
افصل كبل الطاقة وقم بتوصيله.
يجب أن تقوم اللوحة بالتمهيد في التمهيد U الذي تم وميضه للتو والدخول في وضع Fastboot.
امض الصور
أدخل وضع Fastboot (انظر القسم السابق للحصول على التعليمات).
فلاش جميع صور Android:
cd out/target/product/yukawa
fastboot flash boot boot.img
fastboot flash super super.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img
fastboot flash recovery recovery.img
fastboot flash dtbo dtbo-unsigned.img
fastboot reboot
بناء النواة
لإنشاء مصنوعات kernel لـ VIM3 أو VIM3L:
تنزيل سلاسل أدوات إضافية:
git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
استنساخ مصدر النواة:
# for 4.19 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
# for 5.4 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
# for 5.10 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
# for 5.15 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
تصدير متغيرات البناء:
export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export LLVM=1
بناء النواة:
cd hikey-linaro
make meson_defconfig
make DTC_FLAGS="-@" -j24
اضغط على النواة وانسخ build_artifacts إلى
${AOSP_TOPDIR}/device/amlogic/yukawa-kernel
:lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
KERN_VER=4.19 # for 4.19 kernel
KERN_VER=5.4 # for 5.4 kernel
KERN_VER=5.10 # for 5.10 kernel
KERN_VER=5.15 # for 5.15 kernel
for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f) done
cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
أعد بناء مساحة مستخدمي Android (انظر تجميع مساحة المستخدمين) ووميض النواة الجديدة (انظر الصور الوامضة).
مجلس الروبوتات كوالكوم RB5
The Robotics Board RB5 متاح من 96boards.org .
الشكل 4. مجلس الروبوتات RB5
تجميع مساحة المستخدمين
استخدم الأوامر التالية لتنزيل وإنشاء Android على RB5.
قم بتنزيل شجرة مصدر Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
تنزيل حزمة المورّد الحالية:
./device/linaro/dragonboard/fetch-vendor-package.sh
بناء AOSP:
. ./build/envsetup.sh
lunch rb5-userdebug
make -j24
تركيب الصور المحلية
قم بتشغيل RB5 في وضع Fastboot.
قم بتشغيل الأمر التالي:
./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
إذا لزم الأمر ، يمكنك إجراء استرداد لوحة QDL عن طريق تشغيل البرنامج النصي التالي بعد تشغيل RB5 في وضع وميض USB (انظر استرداد RB5 ):
./device/linaro/dragonboard/installer/rb5/recovery.sh
بناء النواة
لإنشاء عناصر النواة RB5 Android Generic Kernel Image (GKI):
قم بتشغيل الأوامر التالية لاستنساخ مصدر kernel وسلاسل أدوات Android التي تم إنشاؤها مسبقًا وإنشاء البرامج النصية:
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.db845c ./build/build.sh
احذف جميع العناصر الموجودة في
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
، ثم انسخ عناصر الإنشاء منout/android-mainline/dist/
إلى${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
، ثم أعد بناء مساحة المستخدمين باستخدام:make TARGET_KERNEL_USE=mainline -j24
ووميض الجهاز مع boot.img و super.img الناتج (انظر تجميع مساحة المستخدمين ).
اختبر نواة GKI:
- عرض أحدث إصدار من kernel_aarch64 .
- في القطع الأثرية ، قم بتنزيل الصورة.
Gzip الصورة
gzip Image
انسخه إلى
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.أعد إنشاء AOSP ووميض الجهاز باستخدام boot.img الجديد (انظر تجميع مساحة المستخدمين ).