The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Создание сборки Android 10 для Raspberry Pi 4"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Создание сборки Android 10 для Raspberry Pi 4"  +1 +/
Сообщение от auto_tips (??), 10-Авг-20, 09:41 
Инструкция по созданию своей сборки 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


Собираем ядро Linux

   sudo 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 10-Авг-20, 09:41   +/
>Загружаем исходные тексты Android

Это сколько гигабайт?

repo кстати говно: он ненастоящий, это просто загрузчик скриптов из гуглового репозитория в текущую директорию. Такое называется remote code execution и ничем не лучше, чем curl | bash. Нуждается в переделке.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #16

2. Сообщение от Аноним (1), 10-Авг-20, 09:43   +/
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%2385...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

3. Сообщение от Дрон (?), 11-Авг-20, 13:39   +/
Видимо опечатка andoid-10.0.0_r41
Ответить | Правка | Наверх | Cообщить модератору

4. Сообщение от Аноним (4), 12-Авг-20, 23:02   +/
И нафига козе баян?
Ответить | Правка | Наверх | Cообщить модератору

5. Сообщение от Аноним (5), 20-Авг-20, 14:11   +/
Разве смысл расберей не в нормальном линуксе на арме ? Это все из разряда сайтов самозабаненных через клоудфларе.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #8

6. Сообщение от китайский_зонд (?), 28-Авг-20, 02:18   +/
Нормального линукса там тоже нету. Апстримное ядро из обычных дистрибутивов там недоступно. Одновременно 2д/3д и ускорение видео не работают по причине отсутствия драйвера.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #7

7. Сообщение от Аноним (-), 31-Авг-20, 15:59   +/
Бред и дезинфа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #14

8. Сообщение от hshhhhh (ok), 07-Сен-20, 16:15   +/
> Разве смысл расберей не в нормальном линуксе на арме ?

А если вы андроид разработчик и хотите гонять тесты для CI ?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #9

9. Сообщение от Аноним (-), 10-Сен-20, 02:04   +/
Как хорошо что вы не андроид разработчик. Арм для СI нафиг не нужен, забегая наперед в ожидании вопроса от юных дарований - сразу говорю, нет, не пишут под ведроид на асме.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #10

10. Сообщение от hshhhhh (ok), 16-Сен-20, 13:22   +/
> Арм для СI нафиг не нужен

Не нужен, но если хочется сделать CI на малине?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #11

11. Сообщение от Аноним (-), 17-Сен-20, 02:47   +/
Т.е из всего разнообразия поделий, которые парят пачками и бесплатно за обещание пополнить до нового года - Вы выбрали путь покупки зверька свободного от этой напасти и придаться акту невзаимной но очень тесной любви .. похвально, фигли, но потом удалить желательно, дабы хипстота в контейнера не нашла его с ведроидом, засмеют же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

12. Сообщение от Аноним (12), 09-Окт-20, 10:18   +/
Не благдарите https://konstakang.com/devices/rpi4/
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #13

13. Сообщение от Аноним (-), 11-Окт-20, 22:01   +/
Это уже сразу с майнерами ? А то тут можно попробовать собрать с только гугловой спайварью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #17

14. Сообщение от Аноним (14), 12-Ноя-20, 16:45   +/
Сам ты бред
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

16. Сообщение от Аноним (16), 06-Янв-21, 17:17   +/
1) repo - обычный инструмент для работы с исходниками Android. Он позволяет быстро и удобно оперировать сразу несколькими git репозиториями.
2) он скачивает исходники, а не скрипты. И не из гуглового репозитория, а из любого, смотря как настроить.
3) про remote code execution - вообще какая-то глупость. никакой код не исполняется, только скачивается.
4) для своей задачи - синхронизировать версии многих проектов одновременно - он идеально подходит. Можно сделать тоже самое используя git, только чтобы обновить 100 проектов придется 100 команд написать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

17. Сообщение от Аноним (17), 01-Мрт-21, 17:56   +/
Там вроде нет гугловщины.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру