אתה יכול ליצור גירסה עבור מכשירי Nexus ו-Pixel באמצעות בניית פרויקט קוד פתוח של Android (AOSP) והקבצים הבינאריים הרלוונטיים הספציפיים לחומרה. לפרטים זמינים ל-Android ומכשירים ממוקדים, ראה תגיות ובניית קוד מקור .
אתה יכול גם ליצור גרסאות עבור DragonBoard 845c , HiKey 960 , Khadas VIM3 ו- Qualcomm Robotics Board RB5 לוחות התייחסות ל-Android, אשר נועדו לעזור לספקי רכיבים שאינם ניידים לפתח ולהעביר דרייברים לגרסת אנדרואיד. שימוש בלוח ייחוס יכול להקל על מאמצי השדרוג, להפחית את זמן היציאה לשוק עבור מכשירי אנדרואיד חדשים, להוזיל את עלויות המכשירים על ידי מתן אפשרות ל-ODM/OEMs לבחור מתוך מגוון רחב יותר של רכיבים תואמים, ולהגביר את מהירות החדשנות בקרב ספקי הרכיבים.
גוגל תומכת בלוחות התייחסות ל-DragonBoard 845c , HiKey 960 , Khadas VIM3 ו- Qualcomm Robotics Board RB5 . AOSP מספקת תמיכה במקור ליבה ולוח עבור לוחות אלה, כך שמפתחים יכולים ליצור בקלות מנהלי התקנים היקפיים, לבצע פיתוח ליבה ולבצע משימות אחרות עם פחות שעבוד OEM.
DragonBoard 845c
ה-DragonBoard 845c הוא חלק מפלטפורמת RB3 וזמין מ -96boards.org .
איור 1. DragonBoard 845c
קומפילציה של מרחב משתמש
השתמש בפקודות הבאות כדי להוריד ולבנות אנדרואיד ב-DragonBoard 845c.
הורד את עץ המקור של אנדרואיד:
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 למצב מהיר אתחול.
הפעל את הפקודה הבאה:
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
במידת הצורך, תוכל לבצע שחזור לוח QDL על ידי הפעלת הסקריפט הבא לאחר אתחול db845c במצב מהבהב USB (ראה שחזור DragonBoard ):
./device/linaro/dragonboard/installer/db845c/recovery.sh
בניית הגרעין
כדי לבנות את חפצי ליבה של DragonBoard db845c Android Generic Kernel Image (GKI):
הפעל את הפקודות הבאות כדי לשכפל את מקור הליבה ושרשרת כלי אנדרואיד מובנים מראש ולבנות סקריפטים.
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:
הצג את המבנה האחרון של kernel_aarch64 .
ב- Artifacts , הורד תמונה.
Gzip את התמונה
gzip Image
העתק אותו אל
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.בנה מחדש את AOSP והבזק את ההתקן עם ה-boot.img החדש (ראה הידור מרחב משתמש).
לוחות HiKey 960
לוח HiKey 960 זמין מאמזון ו- Lenovator .
איור 2. לוח HiKey 960 של Lenovator
קומפילציה של מרחב משתמש
השתמש בפקודות הבאות כדי להוריד ולבנות את אנדרואיד בלוח HiKey 960.
הורד את עץ המקור של אנדרואיד
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
התקנת תמונות מקומיות
בחר מצב אתחול מהיר על ידי הפעלת מתג ON 3 (לפרטים, עיין במדריך ההתחלה של HiKey 960 ).
הפעל את הלוח.
תמונות מקומיות פלאש:
./device/linaro/hikey/installer/hikey960/flash-all.sh
כבה את מתג הכיבוי 3 והפעל את הלוח בהפעלה.
בניית הגרעין
כדי לבנות את חפצי ליבת HiKey960 Android GKI:
הפעל את הפקודות הבאות:
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 build inout/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
בניית מרחב משתמש של אנדרואיד
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
והבזק את המכשיר עם הליבה החדשה (ראה הידור מרחב משתמש )
בדוק את ליבת תמונת ליבה כללית (GKI).
הצג את המבנה האחרון של kernel_aarch64 .
בחפצים , הורד קובץ
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
טוען האתחול מייצא את המספר הסידורי שנוצר לקרנל באמצעות androidboot.serialno=
. פרמטר זה מועבר דרך שורת הפקודה של הליבה באנדרואיד 11 ומטה, ודרך bootconfig באנדרואיד 12 עם גרסת ליבה 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
קומפילציה של מרחב משתמש
השתמש בפקודות הבאות כדי להוריד ולבנות את אנדרואיד בלוח VIM3.
הורד את עץ המקור של אנדרואיד:
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
כברירת מחדל, אנדרואיד בנויה עם ליבת 5.10. כדי להשתמש בגרעין 5.4 מראש:
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 .
פלאש תמונות ראשוניות ל-RAM:
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-boot שזה עתה הבזק ולהיכנס למצב Fastboot.
תמונות מהבהבות
היכנס למצב מהיר אתחול (ראה סעיף קודם להוראות).
פלאש את כל התמונות של אנדרואיד:
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
בניית הגרעין
כדי לבנות את חפצי הליבה עבור 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
בנה מחדש את מרחב המשתמש של אנדרואיד (ראה קומפילציה של מרחב משתמש) והבזק את הליבה החדשה (ראה תמונות מהבהבות ).
לוח רובוטיקה של קוואלקום RB5
לוח הרובוטיקה RB5 זמין מ -96boards.org .
איור 4. לוח רובוטיקה RB5
קומפילציה של מרחב משתמש
השתמש בפקודות הבאות כדי להוריד ולבנות אנדרואיד ב-RB5.
הורד את עץ המקור של אנדרואיד:
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 למצב אתחול מהיר.
הפעל את הפקודה הבאה:
./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):
הפעל את הפקודות הבאות כדי לשכפל את מקור הליבה ושרשרת כלי אנדרואיד מובנים מראש ולבנות סקריפטים:
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 .
- ב- Artifacts , הורד תמונה.
Gzip את התמונה
gzip Image
העתק אותו אל
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.בנה מחדש את AOSP והבזק את ההתקן עם ה-boot.img החדש (ראה הידור מרחב משתמש).