Я портирую Android на устройство отображения, и почти завершил это.В устройстве используется Freescale / NXP i.MX6 Dual Lite Soc.Используемая версия Android - Android 8.0.0, а сборка основана на пакетах поддержки Board от NXP / Freescale (ссылка ниже).https://www.nxp.com/support/developer-resources/software-development-tools/i.mx-developer-resources/android-os-for-i.mx-applications-processors:IMXANDROID?tab=Design_Tools_Tab
Операционная система прекрасно работает, и образы (u-boot, boot.img, system.img, vendor.img), относящиеся к процессу make, прекрасно работают на устройстве.Итак, мой последний шаг - подписать изображения, и именно здесь я изо всех сил стараюсь, чтобы все заработало.
Я следую приведенному здесь руководству: https://source.android.com/devices/tech/ota/sign_builds
После выполнения шаговЯ использую теперь подписанные изображения, найденные в файле «signature-img.zip», чтобы прошить устройство (используя NXP Manufacturing Tool, а не Fast Boot).Однако теперь устройство не может загрузить ядро, что приводит к ошибке, что DTB отсутствует.
Hit any key to stop autoboot: 0
boota mmc0
kernel @ 14008000 (8183104)
ramdisk @ 15000000 (2036048)
## Booting Android Image at 0x12000000 ...
Kernel load addr 0x14008000 size 7992 KiB
Kernel command line: console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=128M androidboot.console=ttymxc0 consoleblank=0 ldo_active=on androidboot.hardware=sedevices cma=448M android.selinux=permissive android.dm_verify=disable androidboot.selinux=enforce androidboot.dm_verity=disable androidboot.storage_type=emmc loglevel=8 vt.global_cursor_default=0 buildvariant=userdebug androidboot.serialno=0b2861d4df668b47 androidboot.soc_type=imx6dl androidboot.storage_type=emmc
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
resetting ...
Я сузил проблему до самого первого шага в руководстве, где "make dist""выполняется в каталоге сборки.Это приводит к созданию ряда ZIP-файлов в папке «out / dist», которые обрабатываются далее в следующих шагах руководства.Я попытался перепрограммировать устройство с изображениями, созданными на этом шаге (находится в полученном файле "out / dist / * - img - *. Zip"), и это вызывает точно такую же проблему.
Итакмой вопрос: что на самом деле делает «make dist», что приводит к отсутствию DTB в «boot.img»?Я бы ожидал, что он будет использовать уже работающий «boot.img», найденный в «out / target / product //».Но вместо этого, кажется, воссоздать этот образ, и в этом случае не включать DTB.Как и во многих других аспектах создания Android из Source, работа «make dist», кажется, нигде не описана в документации.
Я надеюсь, что любой, кто имеет некоторый опыт в создании Android из исходного кода, кое-что знает оэто потому, что я, похоже, застрял по-королевски.
Просто к вашему сведению;когда я прошиваю «boot.img», созданный после обычного «make», вывод после U-boot выглядит следующим образом:
Hit any key to stop autoboot: 0
boota mmc0
Error: blob decap job completed with errors 0x2000081A
In boota get fastboot lock status error. Set lock status
kernel @ 14008000 (8183104)
ramdisk @ 15000000 (2036754)
fdt @ 14f00000 (40998)
## Booting Android Image at 0x12000000 ...
Kernel load addr 0x14008000 size 7992 KiB
Kernel command line: console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=128M androidboot.console=ttymxc0 consoleblank=0 ldo_active=on androidboot.hardware=sedevices cma=448M android.selinux=permissive android.dm_verify=disable androidboot.selinux=enforce androidboot.dm_verity=disable androidboot.storage_type=emmc loglevel=8 vt.global_cursor_default=0 buildvariant=userdebug androidboot.serialno=0b2861d4df668b47 androidboot.soc_type=imx6dl androidboot.storage_type=emmc
## Flattened Device Tree blob at 14f00000
Booting using the fdt blob at 0x14f00000
Loading Kernel Image ... OK
Using Device Tree in place at 14f00000, end 14f0d025
switch to ldo_bypass mode!
Starting kernel ...