Bootstrap

Как установить Bliss OS (Android 13) в QEMU/KVM и настроить adb

Как установить Bliss OS (Android 13) в QEMU/KVM и настроить adb

Bliss OS в QEMU/KVM — полный гайд от ISO до рабочего adb

Проверено на хосте с libvirt-мостом virbr0, QEMU 7.2.18, KVM. Цель — поднять x86_64

Android-окружение (Bliss OS, Android 13) для тестирования приложений через SAF/DocumentsProvider,

устанавливаемых через adb install.

0. Итоговые грабли (коротко, для себя)

  • Диск ставить БЕЗ if=virtio (обычный IDE). Инсталлятор Bliss/Android-x86 рассчитан на /dev/sda-именование при grub-install; с if=virtio (/dev/vda) установка "успешно" завершается, но GRUB на диске не грузится — SeaBIOS вечно висит на Booting from Hard Disk....
  • Партиционировать как dos (MBR), не gpt (GPT+BIOS без bios_grub-раздела тоже не взлетит с этим установщиком).
  • Один primary-раздел на весь диск, флаг bootable — обязательно.
  • При загрузке уже установленной системы выбирать в GRUB-меню пункт без аппаратного ускорения графики (обычно что-то вроде "Debug mode" / без "(auto)"-акселерации) — стандартная загрузка с acceleration виснет на чёрном экране из-за проблем видеодрайвера ядра с виртуальной видеокартой в QEMU (qxl/virtio-gpu). Без акселерации грузится медленно, но стабильно.
  • ADB поднимается без реального USB и без "ADB over network" в настройках: через Termux внутри гостя, adb tcpip 5555, выполненный локально — переключает системный adbd в TCP-режим, после чего с хоста обычный adb connect :5555 подключается.

1. Скачать ISO

Bliss OS x86_64, Android 13, официальная сборка с GApps:

☯

Terminal:

⌕

≡

✕
mkdir -p /var/lib/libvirt/images
cd /var/lib/libvirt/images
wget -O bliss-x86_64.iso \
  "https://sourceforge.net/projects/blissos-x86/files/Official/BlissOS16/Gapps/Generic/Bliss-v16.9.7-x86_64-OFFICIAL-gapps-20241011.iso/download"

(Актуальную версию/ссылку можно свериться на https://sourceforge.net/projects/blissos-x86/files/ —

берётся Official/BlissOSxx/Gapps/Generic/*.iso.)

2. Создать диск

☯

Terminal:

⌕

≡

✕
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/blissos.qcow2 24G

24G с запасом хватает под систему + gapps + тестовые приложения.

3. Запуск для установки (загрузка с ISO)

Диск без if=virtio (по умолчанию IDE), машина pc (legacy BIOS, не q35),

видео std (не qxl — с ним ядро Android виснет на чёрном экране), поинтер virtio-tablet

(не usb-tablet — тому нужен -usb/USB-контроллер, которого тут нет):

☯

Terminal:

⌕

≡

✕
sudo qemu-system-x86_64 \
    -enable-kvm -m 4096 -smp 2 \
    -machine pc -cpu host \
    -drive file=/var/lib/libvirt/images/blissos.qcow2,format=qcow2 \
    -cdrom /var/lib/libvirt/images/bliss-x86_64.iso \
    -boot order=d \
    -netdev bridge,br=virbr0,id=net0 \
    -device virtio-net-pci,netdev=net0,mac=52:54:00:aa:00:03 \
    -vga std -device virtio-tablet \
    -spice port=5935,disable-ticketing=on \
    -device intel-hda -device hda-duplex \
    -monitor stdio

Подключиться графикой: remote-viewer spice://:5935 (или любой spice-клиент).

4. Установка — пошагово, все развилки

В загрузочном меню ISO выбрать Installation - Install Android-x86 to harddisk.

  1. Choose Partition → диск пустой → перейти к созданию раздела (Create/Modify partitions → cfdisk).
  2. cfdisk спросит тип таблицы разделов: dos (не gpt/sgi/sun — dos это MBR, нужен для legacy BIOS-загрузки, которую тут использует GRUB-скрипт установщика).
  3. Создать раздел: New → Primary → размер — весь диск (Enter на дефолтном максимуме).
  4. Выделить созданный раздел → Bootable (проставить флаг active/bootable — без него BIOS может не счесть диск загрузочным).
  5. Write → подтвердить yes → Quit из cfdisk.
  6. Установщик спросит формат раздела → ext4 → Yes.
  7. Install boot loader GRUB2 → Yes.
  8. Начнётся "Copying files..." — прогресс копирования системы (ядро, ramdisk, system-образ, gapps). Дождаться полного завершения, не прерывать и не ребутить раньше времени — если прогресс завершается подозрительно быстро (пара секунд вместо минуты+), это тревожный признак, что копирование не сработало (см. п.0 про сам факт установки).
  9. Do you want to install/make system directory read-write? → Yes (пригодится для adb/root).
  10. Installation complete → экран с пунктами Run BlissOS / Reboot. - Run BlissOS тут же запускает установленную систему в обход GRUB/ребута — полезно для быстрой проверки, что install не битый (но эта загрузка тоже идёт с аппаратным ускорением и точно так же виснет на чёрном экране — это ожидаемо, не признак поломки, см. п.6).

5. Обычный запуск (после установки)

Убрать -cdrom и -boot order=d → order=c:

☯

Terminal:

⌕

≡

✕
sudo qemu-system-x86_64 \
    -enable-kvm -m 4096 -smp 2 \
    -machine pc -cpu host \
    -drive file=/var/lib/libvirt/images/blissos.qcow2,format=qcow2 \
    -boot order=c \
    -netdev bridge,br=virbr0,id=net0 \
    -device virtio-net-pci,netdev=net0,mac=52:54:00:aa:00:03 \
    -vga std -device virtio-tablet \
    -spice port=5935,disable-ticketing=on \
    -device intel-hda -device hda-duplex \
    -monitor stdio

6. GRUB-меню — какой пункт выбирать

Появится меню GRUB со списком вариантов загрузки. **Обычный/дефолтный пункт (с аппаратным

ускорением графики) виснет на чёрном экране** ("Booting from Hard Disk" / пустой экран,

хотя info status в мониторе QEMU покажет running — гость реально работает, просто не рисует).

Выбрать пункт без аппаратного ускорения (в меню обычно явно помечен, что-то вроде

"Debug mode" / без "(auto)"). Грузится заметно медленнее (софтверный рендеринг вместо GPU),

но стабильно доходит до рабочего стола Android.

Диагностика в процессе (если понадобится ещё раз):

  • Монитор QEMU (тот же терминал, -monitor stdio): info status — running значит гипервизор жив, гость выполняется, а не завис на уровне QEMU/KVM.
  • top -p $(pgrep -f blissos.qcow2 | head -1) на хосте — CPU-нагрузка процесса qemu.
  • Полностью безграфичный дебаг (если снова возникнет чёрный экран без понятной причины): -display none -serial mon:stdio вместо spice — покажет текстовый вывод BIOS/GRUB прямо в терминале.

7. Первый вход в Android UI

Стандартная Android-навигация (мышь работает как палец — клик = тап, virtio-tablet даёт

абсолютные координаты):

  • Домашний экран → кнопка/жест (свайп вверх) открывает App Drawer со всеми приложениями.
  • Тап по иконке — запуск.

8. Настройка adb (без физического USB, без "ADB over network")

  1. Settings → About tablet/device → тапнуть Build number 7 раз подряд → включатся Developer options.
  2. Settings → System → Developer options → включить USB debugging.
  3. Поставить/открыть Termux внутри гостя (терминал с пакетным менеджером pkg).
  4. В Termux: `` pkg update pkg install android-tools adb tcpip 5555 ` Это выполняется локально на устройстве — Termux-адб цепляется к системному adbd` через локальный сокет (не через настоящий USB) и переключает его в TCP-режим на порту 5555.
  5. Узнать IP гостя: Settings → About → Status (или на хосте ip neigh / arp -n | grep 52:54:00:aa:00:03, если сеть через virbr0 с DHCP).
  6. С хоста: ``bash adb connect :5555 adb devices # должен появиться :5555 device ``

9. Установка и запуск тестируемого приложения

☯

Terminal:

⌕

≡

✕
cd /home/ramanzes/myapp/APPS/android2/cifs-documents-provider
./gradlew :app:assembleDebug
adb -s :5555 install -r app/build/outputs/apk/debug/app-debug.apk
adb -s :5555 shell monkey -p com.wa2c.android.cifsdocumentsprovider \
    -c android.intent.category.LAUNCHER 1

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.