Android Açık Kaynak Projesi (AOSP) yapılarını ve ilgili donanıma özel ikili dosyaları kullanarak Nexus ve Pixel cihazları için yapılar oluşturabilirsiniz. Kullanılabilir Android yapıları ve hedeflenen cihazlar için bkz. Kaynak kodu etiketleri ve yapıları .
Ayrıca, mobil olmayan bileşen satıcılarının Android sürümleri geliştirmesine ve sürücüleri taşımasına yardımcı olmak üzere tasarlanmış DragonBoard 845c , HiKey 960 , Khadas VIM3 ve Qualcomm Robotics Board RB5 Android referans kartları için yapılar oluşturabilirsiniz. Bir referans kartı kullanmak, yükseltme çabalarını kolaylaştırabilir, yeni Android cihazların pazara çıkış süresini kısaltabilir, ODM/OEM'lerin daha geniş bir uyumlu bileşenler yelpazesinden seçim yapmasını sağlayarak cihaz maliyetlerini düşürebilir ve bileşen tedarikçileri arasında inovasyon hızını artırabilir.
Google, DragonBoard 845c , HiKey 960 , Khadas VIM3 ve Qualcomm Robotics Board RB5 Android referans kartlarını destekler. AOSP, bu kartlar için çekirdek kaynağı ve kart desteği sağlar, böylece geliştiriciler çevre birimleri sürücülerini kolayca oluşturabilir ve hatalarını ayıklayabilir, çekirdek geliştirme yapabilir ve daha az OEM yüküyle diğer görevleri gerçekleştirebilir.
DragonBoard 845c
DragonBoard 845c, RB3 platformunun bir parçasıdır ve 96boards.org adresinden temin edilebilir.
Şekil 1. DragonBoard 845c
Kullanıcı alanı derleniyor
Android'i DragonBoard 845c'ye indirmek ve kurmak için aşağıdaki komutları kullanın.
Android kaynak ağacını indirin:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Mevcut satıcı paketini indirin:
./device/linaro/dragonboard/fetch-vendor-package.sh
AOSP'yi oluşturun:
. ./build/envsetup.sh
lunch db845c-userdebug
make -j24
Yerel görüntüleri yükleme
db845c'yi fastboot kipine önyükleyin.
Aşağıdaki komutu çalıştırın:
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
Gerekirse, db845c'yi USB yanıp sönme kipinde önyükledikten sonra aşağıdaki betiği çalıştırarak QDL kart kurtarma işlemini gerçekleştirebilirsiniz (bkz. DragonBoard Recovery ):
./device/linaro/dragonboard/installer/db845c/recovery.sh
çekirdeği oluşturmak
DragonBoard db845c Android Genel Çekirdek Görüntüsü (GKI) çekirdek yapıtlarını oluşturmak için:
Çekirdek kaynağını ve önceden oluşturulmuş Android araç zincirlerini klonlamak ve komut dosyaları oluşturmak için aşağıdaki komutları çalıştırın.
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/
içindeki tüm nesneleri silin, ardındanout/android-mainline/dist/
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
ardından kullanıcı alanını şu şekilde yeniden oluşturun:make TARGET_KERNEL_USE=mainline -j24
ve elde edilen boot.img ve super.img ile aygıtı flaşlayın (bkz. Kullanıcı alanını derleme ).
GKI çekirdeğini test edin:
En son kernel_aarch64 derlemesini görüntüleyin.
eserlerde , Görüntüyü indirin.
Resmi Gzipleyin
gzip Image
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.AOSP'yi yeniden oluşturun ve aygıtı yeni boot.img ile güncelleyin (bkz. Kullanıcı alanını derleme ).
HiKey 960 kartları
HiKey 960 kartı Amazon ve Lenovator'dan temin edilebilir.
Şekil 2. Lenovator tarafından üretilen HiKey 960 kartı
Kullanıcı alanı derleniyor
HiKey 960 kartında Android'i indirmek ve oluşturmak için aşağıdaki komutları kullanın.
Android kaynak ağacını indirin
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Mevcut satıcı paketini indirin
./device/linaro/hikey/fetch-vendor-package.sh
İnşa etmek
. ./build/envsetup.sh
lunch hikey960-userdebug
make -j24
Yerel görüntüleri yükleme
Anahtar 3'ü AÇIK konuma getirerek hızlı başlatma modunu seçin (ayrıntılar için HiKey 960 Başlarken kılavuzuna bakın).
Panoya güç verin.
Flash yerel görüntüler:
./device/linaro/hikey/installer/hikey960/flash-all.sh
Anahtar 3'ü KAPATIN ve kartı kapatıp açın.
çekirdeği oluşturmak
HiKey960 Android GKI çekirdek yapılarını oluşturmak için:
Aşağıdaki komutları çalıştırın:
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/
tüm nesneleri silin, ardındanout/android12-5.4/dist/
içindeki çekirdek derlemesindeki yapı yapılarını${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
DTB'yi birleştirin:
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 Kullanıcı Alanı Oluşturun
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
ve aygıtı yeni çekirdekle güncelleyin (bkz. Derleme kullanıcı alanı )
Genel Çekirdek Görüntüsü (GKI) çekirdeğini test edin
En son kernel_aarch64 derlemesini görüntüleyin.
Artefaktlarda ,
Image
dosyasını indirin ve${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
.Görüntüyü sıkıştırın ve DTB'yi birleştirin
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
- Aygıtı yeni çekirdekle oluşturun ve güncelleyin (bkz. Kullanıcı alanını derleme ).
Seri numarasının ayarlanması
Rastgele seri numarasını ayarlamak için şunu çalıştırın:
fastboot getvar nve:SN@16\_DIGIT\_NUMBER
Bootloader, oluşturulan seri numarasını androidboot.serialno=
kullanarak çekirdeğe aktarır. Bu parametre, Android 11 ve önceki sürümlerde çekirdek komut satırından ve çekirdek sürümü 5.10 veya üzeri olan Android 12'de bootconfig aracılığıyla iletilir.
monitör çözünürlüğünü ayarlama
device/linaro/hikey/hikey960/BoardConfig.mk
parametresini BOARD_KERNEL_CMDLINE
ve video
ayarını yapılandırın. Örneğin, 24 inçlik bir monitör için ayar video=HDMI-A-1:1280x800@60
şeklindedir.
VIM3 ve VIM3L panoları
Khadas'ın Vim3 ve VIM3L kartlarına Khadas web sitesinden ulaşılabilir.
Şekil 3. Khadas'ın VIM3 kartı
Kullanıcı alanı derleniyor
VIM3 kartında Android'i indirmek ve oluşturmak için aşağıdaki komutları kullanın.
Android kaynak ağacını indirin:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
İnşa etmek:
. ./build/envsetup.sh
lunch yukawa-userdebug
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
Varsayılan olarak, Android 5.10 çekirdeği ile oluşturulmuştur. Çekirdek 5.4 ön derlemelerini kullanmak için:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
VIM3L için şunu kullanın:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
İlk görüntüleri yükleme
VIM3 yanıp sönme talimatlarını izleyerek kartı USB yükseltme moduna alın.
İlk görüntüleri RAM'e flaşla:
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
- İzin sorunlarıyla karşılaşırsanız uygun USB kurallarını eklemek için udev kuralları bölümüne bakın .
-
tools/update
çalışmazsa, bunun yerine tahtayı flaşlamak için pyamlboot aracını kullanın.
U-Boot önyükleme yapıp fastboot'u çalıştırdıktan sonra, aşağıdaki komutları çalıştırın:
fastboot oem format
fastboot flash bootloader u-boot_kvim3_noab.bin
fastboot erase bootenv
fastboot reboot bootloader
Güç kablosunu çıkarın ve takın.
Anakart, yeni yanıp sönen U-boot'a önyükleme yapmalı ve fastboot moduna girmelidir.
Yanıp sönen görüntüler
Fastboot moduna girin (talimatlar için önceki bölüme bakın).
Tüm Android resimlerini flaşlayın:
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
çekirdeği oluşturmak
VIM3 veya VIM3L için çekirdek yapılarını oluşturmak üzere:
Ek araç zincirlerini indirin:
git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
Çekirdek kaynağını klonlayın:
# 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
Yapı değişkenlerini dışa aktarın:
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
Çekirdeği oluşturun:
cd hikey-linaro
make meson_defconfig
make DTC_FLAGS="-@" -j24
Çekirdeği sıkıştırın ve build_artifacts öğesini
${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 kullanıcı alanını yeniden oluşturun (bkz. Kullanıcı alanını derleme ) ve yeni çekirdeği güncelleyin (bkz. Yanıp sönen görüntüler ).
Qualcomm Robotik Kurulu RB5
Robotics Board RB5, 96boards.org adresinden edinilebilir .
Şekil 4. Robotik kartı RB5
Kullanıcı alanı derleniyor
RB5'te Android'i indirmek ve oluşturmak için aşağıdaki komutları kullanın.
Android kaynak ağacını indirin:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Mevcut satıcı paketini indirin:
./device/linaro/dragonboard/fetch-vendor-package.sh
AOSP'yi oluşturun:
. ./build/envsetup.sh
lunch rb5-userdebug
make -j24
Yerel görüntüleri yükleme
RB5'i fastboot moduna önyükleyin.
Aşağıdaki komutu çalıştırın:
./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
Gerekirse, RB5'i USB yanıp sönme modunda başlattıktan sonra aşağıdaki betiği çalıştırarak QDL kart kurtarma işlemini gerçekleştirebilirsiniz (bkz. RB5 Recovery ):
./device/linaro/dragonboard/installer/rb5/recovery.sh
çekirdeği oluşturmak
RB5 Android Genel Çekirdek Görüntüsü (GKI) çekirdek yapılarını oluşturmak için:
Çekirdek kaynağını ve önceden oluşturulmuş Android araç zincirlerini klonlamak ve komut dosyaları oluşturmak için aşağıdaki komutları çalıştırın:
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/
içindeki tüm nesneleri silin, ardından derleme eserleriniout/android-mainline/dist/
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
ve ardından kullanıcı alanını şununla yeniden oluşturun:make TARGET_KERNEL_USE=mainline -j24
ve elde edilen boot.img ve super.img ile aygıtı flaşlayın (bkz. Kullanıcı alanını derleme ).
GKI çekirdeğini test edin:
- En son kernel_aarch64 derlemesini görüntüleyin.
- eserlerde , Görüntüyü indirin.
Resmi Gzipleyin
gzip Image
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.AOSP'yi yeniden oluşturun ve aygıtı yeni boot.img ile güncelleyin (bkz. Kullanıcı alanını derleme ).