The OpenNET Project / Index page

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

Создание сборки Android 10 для Raspberry Pi 4
Инструкция по созданию своей сборки Android 10 для Raspberry Pi 4 в Ubuntu/Debian.

Загружаем исходные тексты Android:

   repo init -u https://android.googlesource.com/platform/manifest -b android-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

Вносим несколько исправлений в файлы:

Настраиваем использование 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");

Собираем код 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/
 
10.08.2020 , Источник: https://github.com/android-rpi/devi...
Ключи: raspberrypi, android, build / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Мобильные телефоны

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (1), 09:41, 10/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Загружаем исходные тексты Android

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

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

     
     
  • 2.2, Аноним (1), 09:43, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%23855846
     
  • 2.16, Аноним (16), 17:17, 06/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    1) repo - обычный инструмент для работы с исходниками Android. Он позволяет быстро и удобно оперировать сразу несколькими git репозиториями.
    2) он скачивает исходники, а не скрипты. И не из гуглового репозитория, а из любого, смотря как настроить.
    3) про remote code execution - вообще какая-то глупость. никакой код не исполняется, только скачивается.
    4) для своей задачи - синхронизировать версии многих проектов одновременно - он идеально подходит. Можно сделать тоже самое используя git, только чтобы обновить 100 проектов придется 100 команд написать.
     

  • 1.3, Дрон (?), 13:39, 11/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Видимо опечатка andoid-10.0.0_r41
     
  • 1.4, Аноним (4), 23:02, 12/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И нафига козе баян?
     
  • 1.5, Аноним (5), 14:11, 20/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Разве смысл расберей не в нормальном линуксе на арме ? Это все из разряда сайтов самозабаненных через клоудфларе.
     
     
  • 2.6, китайский_зонд (?), 02:18, 28/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нормального линукса там тоже нету. Апстримное ядро из обычных дистрибутивов там недоступно. Одновременно 2д/3д и ускорение видео не работают по причине отсутствия драйвера.
     
     
  • 3.7, Аноним (-), 15:59, 31/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Бред и дезинфа.
     
     
  • 4.14, Аноним (14), 16:45, 12/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сам ты бред
     
  • 2.8, hshhhhh (ok), 16:15, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Разве смысл расберей не в нормальном линуксе на арме ?

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

     
     
  • 3.9, Аноним (-), 02:04, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как хорошо что вы не андроид разработчик. Арм для СI нафиг не нужен, забегая наперед в ожидании вопроса от юных дарований - сразу говорю, нет, не пишут под ведроид на асме.
     
     
  • 4.10, hshhhhh (ok), 13:22, 16/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Арм для СI нафиг не нужен

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

     
     
  • 5.11, Аноним (-), 02:47, 17/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е из всего разнообразия поделий, которые парят пачками и бесплатно за обещание пополнить до нового года - Вы выбрали путь покупки зверька свободного от этой напасти и придаться акту невзаимной но очень тесной любви .. похвально, фигли, но потом удалить желательно, дабы хипстота в контейнера не нашла его с ведроидом, засмеют же.
     

  • 1.12, Аноним (12), 10:18, 09/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не благдарите https://konstakang.com/devices/rpi4/
     
     
  • 2.13, Аноним (-), 22:01, 11/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это уже сразу с майнерами ? А то тут можно попробовать собрать с только гугловой спайварью.
     
     
  • 3.17, Аноним (17), 17:56, 01/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Там вроде нет гугловщины.
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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