Инструкция по созданию своей сборки Android 10 для Raspberry Pi 4 в Ubuntu/Debian.Загружаем [[http://source.android.com/source/downloading.html исходные тексты]] Android:
repo init -u https://android.googlesource.com/platform/manifest -b andoid-10.0.0_r41
git clone https://github.com/android-rpi/local_manifests .repo/local_manifests -b arpi-10
repo sync
Собираем ядро Linuxsudo apt install gcc-arm-linux-gnueabihf libssl-dev
cd kernel/arpi
ARCH=arm scripts/kconfig/merge_config.sh arch/arm/configs/bcm2711_defconfig kernel/configs/android-base.config kernel/configs/android-recommended.config
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make zImage
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make dtbsУстанавливаем python-модуль mako:
sudo apt install python-mako
[[https://github.com/android-rpi/device_arpi_rpi4/wiki/Android... Вносим]] несколько исправлений в файлы:
Настраиваем использование GuidedActionEditText для ввода пароля в TvSettings
Settings/res/layout/setup_password_item.xml
@@ line 35
- <EditText
+ <androidx.leanback.widget.GuidedActionEditText
android:id="@+id/guidedactions_item_title"
style="@style/Setup.Action.TextInput"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:gravity="center_vertical"
android:imeOptions="actionNext|flagNoExtractUi"
+ android:inputType="text" />
- android:inputType="text">
- </EditText>Включаем программный декодировщик видео
media/libstagefright/colorconversion/SoftwareRenderer.cpp
@@ line 128 @@ void SoftwareRenderer::resetFormatIfChanged(
case OMX_COLOR_FormatYUV420Planar:
+ {
+ halFormat = HAL_PIXEL_FORMAT_RGBA_8888;
+ bufWidth = (mCropWidth + 1) & ~1;
+ bufHeight = (mCropHeight + 1) & ~1;
+ break;
+ }
case OMX_COLOR_FormatYUV420SemiPlanar:
@@ line 182
CHECK(mConverter->isValid());
+ } else if (halFormat == HAL_PIXEL_FORMAT_RGBA_8888 &&
+ mColorFormat == OMX_COLOR_FormatYUV420Planar) {
+ mConverter = new ColorConverter(
+ mColorFormat, OMX_COLOR_Format32BitRGBA8888);
+ CHECK(mConverter->isValid());
}media/codec2/vndk/C2Store.cpp
@@ line 851 @@ C2PlatformComponentStore::C2PlatformComponentStore()
//emplace("libcodec2_soft_av1dec_aom.so"); // deprecated for the gav1 implementation
- emplace("libcodec2_soft_av1dec_gav1.so");
- emplace("libcodec2_soft_avcdec.so");
emplace("libcodec2_soft_avcenc.so");
@@ line 873
emplace("libcodec2_soft_vp8enc.so");
- emplace("libcodec2_soft_vp9dec.so");
emplace("libcodec2_soft_vp9enc.so");[[http://source.android.com/source/building.html Собираем]] код Android:
source build/envsetup.sh
lunch rpi4-eng
make ramdisk systemimage vendorimageПодготавливаем SD-карту для записи собранного образа. Разбивка разделов должна выглядеть примерно так:
p1 128MB для /boot: в fdisk выбираем раздел с типом W95 FAT32(LBA) и делаем его загрузочным, далее запускаем mkfs.vfat
p2 768MB для /system: в fdisk создаём новый первичный раздел
p3 128MB для /vendor: в fdisk создаём новый первичный раздел
p4 оставшееся место выделяем для /data: в fdisk создаём новый первичный раздел и запускаем mkfs.ext4. Устанавливаем метку userdata на раздел /data, используя опцию "-L" при выполнении mkfs.ext4.
Записываем подготовленные образы в разделы /system и /vendor (вместо <p2> и <p3> подставляем созданные имена устройств разделов):cd out/target/product/rpi4
sudo dd if=system.img of=/dev/<p2> bs=1M
sudo dd if=vendor.img of=/dev/<p3> bs=1MКопируем ядро и образ ram-диска на загрузочный раздел.
Содержимое device/arpi/rpi4/boot/ копируем в корень раздела <p1>, туда же копируем файлы kernel/arpi/arch/arm/boot/zImage, out/target/product/rpi4/ramdisk.im и kernel/arpi/arch/arm/boot/dts/bcm2711-rpi-4-b.dtb. Файл kernel/arpi/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4.dtbo копируем в каталог /overlays/URL: https://github.com/android-rpi/device_arpi_rpi4
Обсуждается: http://www.opennet.dev/tips/info/3157.shtml
>Загружаем исходные тексты AndroidЭто сколько гигабайт?
repo кстати говно: он ненастоящий, это просто загрузчик скриптов из гуглового репозитория в текущую директорию. Такое называется remote code execution и ничем не лучше, чем curl | bash. Нуждается в переделке.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%2385...
1) repo - обычный инструмент для работы с исходниками Android. Он позволяет быстро и удобно оперировать сразу несколькими git репозиториями.
2) он скачивает исходники, а не скрипты. И не из гуглового репозитория, а из любого, смотря как настроить.
3) про remote code execution - вообще какая-то глупость. никакой код не исполняется, только скачивается.
4) для своей задачи - синхронизировать версии многих проектов одновременно - он идеально подходит. Можно сделать тоже самое используя git, только чтобы обновить 100 проектов придется 100 команд написать.
Видимо опечатка andoid-10.0.0_r41
И нафига козе баян?
Разве смысл расберей не в нормальном линуксе на арме ? Это все из разряда сайтов самозабаненных через клоудфларе.
Нормального линукса там тоже нету. Апстримное ядро из обычных дистрибутивов там недоступно. Одновременно 2д/3д и ускорение видео не работают по причине отсутствия драйвера.
Бред и дезинфа.
Сам ты бред
> Разве смысл расберей не в нормальном линуксе на арме ?А если вы андроид разработчик и хотите гонять тесты для CI ?
Как хорошо что вы не андроид разработчик. Арм для СI нафиг не нужен, забегая наперед в ожидании вопроса от юных дарований - сразу говорю, нет, не пишут под ведроид на асме.
> Арм для СI нафиг не нуженНе нужен, но если хочется сделать CI на малине?
Т.е из всего разнообразия поделий, которые парят пачками и бесплатно за обещание пополнить до нового года - Вы выбрали путь покупки зверька свободного от этой напасти и придаться акту невзаимной но очень тесной любви .. похвально, фигли, но потом удалить желательно, дабы хипстота в контейнера не нашла его с ведроидом, засмеют же.
Не благдарите https://konstakang.com/devices/rpi4/
Это уже сразу с майнерами ? А то тут можно попробовать собрать с только гугловой спайварью.
Там вроде нет гугловщины.