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 derlemeleri ve hedeflenen cihazlar için bkz. Kaynak kodu etiketleri ve derlemeleri .
Ayrıca DragonBoard 845c , HiKey 960 , Khadas VIM3 ve Qualcomm Robotics Board RB5 Android referans panoları için, mobil olmayan bileşen satıcılarının geliştirmesine ve sürücüleri Android sürümlerine taşımasına yardımcı olmak için tasarlanmış yapılar oluşturabilirsiniz. Bir referans panosu kullanmak, yükseltme çabalarını kolaylaştırabilir, yeni Android cihazlar için pazara sunma süresini kısaltabilir, ODM/OEM'lerin daha geniş bir uyumlu bileşen yelpazesinden seçim yapmasını sağlayarak cihaz maliyetlerini azaltabilir 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'dan edinilebilir .
Şekil 1. DragonBoard 845c
Kullanıcı alanı derleme
DragonBoard 845c'de Android 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
Geçerli 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 modunda başlatın.
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 modunda başlattıktan sonra aşağıdaki komut dosyasını çalıştırarak QDL kart kurtarma işlemini gerçekleştirebilirsiniz (bkz. DragonBoard Recovery ):
./device/linaro/dragonboard/installer/db845c/recovery.sh
Çekirdeği inşa etmek
DragonBoard db845c 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 yapılarınıout/android-mainline/dist/
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
sonra kullanıcı alanını şu şekilde yeniden oluşturun:make TARGET_KERNEL_USE=mainline -j24
ve sonuçta 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 yapısını görüntüleyin.
Yapıtlarda , Image'i indirin.
Resmi Gziple
gzip Image
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
kopyalayın.AOSP'yi yeniden oluşturun ve cihazı yeni boot.img ile flaşlayın (bkz. Kullanıcı alanını derleme ).
HiKey 960 anakartlar
HiKey 960 kartı, Amazon ve Lenovator'dan temin edilebilir.
Şekil 2. Lenovator'dan HiKey 960 kartı
Kullanıcı alanı derleme
HiKey 960 kartında Android 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
Geçerli 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).
Tahtaya güç verin.
Flash yerel görüntüler:
./device/linaro/hikey/installer/hikey960/flash-all.sh
OFF anahtarını 3 çevirin ve kartı kapatıp açın.
Çekirdeği inşa etmek
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ından build yapılarını çekirdek build inout/android12-5.4/dist/
'den${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ştur
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
ve cihazı yeni çekirdekle flaşlayın (bkz. Kullanıcı alanını derleme )
Genel Çekirdek Görüntüsü (GKI) çekirdeğini test edin
En son kernel_aarch64 yapısını görüntüleyin.
Yapılarda,
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 flaşlayın (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 daha düşük sürümlerde çekirdek komut satırından ve çekirdek sürümü 5.10 veya daha yüksek olan Android 12'de bootconfig yoluyla geçirilir.
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 panoları Khadas web sitesinden edinilebilir
Şekil 3. Khadas'ın VIM3 kartı
Kullanıcı alanı derleme
VIM3 kartında Android 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 önceden oluşturulmuşlarını 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şlayın:
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 kartı yakmak için pyamlboot aracını kullanın.
U-Boot, fastboot'u başlatıp ç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.
Kart, 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şla:
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 inşa etmek
VIM3 veya VIM3L için çekirdek yapılarını oluşturmak için:
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
Derleme değişkenlerini dışa aktar:
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 dosyasını
${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 flaşlayın (bkz. Yanıp sönen resimler ).
Qualcomm Robotik Kartı RB5
Robotik Board RB5, 96boards.org'dan edinilebilir .
Şekil 4. Robotik kartı RB5
Kullanıcı alanı derleme
Android'i RB5'e 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
Geçerli 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 modunda başlatın.
Aşağıdaki komutu çalıştırın:
./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
Gerekirse, RB5'i USB flash modunda başlattıktan sonra aşağıdaki komut dosyasını çalıştırarak QDL kart kurtarma işlemini gerçekleştirebilirsiniz (bkz. RB5 Kurtarma ):
./device/linaro/dragonboard/installer/rb5/recovery.sh
Çekirdeği inşa etmek
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 yapılarınıout/android-mainline/dist/
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
ve ardından kullanıcı alanını şu şekilde yeniden oluşturun:make TARGET_KERNEL_USE=mainline -j24
ve sonuçta 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 yapısını görüntüleyin.
- Yapıtlarda , Image'i indirin.
Resmi Gziple
gzip Image
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
kopyalayın.AOSP'yi yeniden oluşturun ve cihazı yeni boot.img ile flaşlayın (bkz. Kullanıcı alanını derleme ).