TL; DR
После создания Android Carotive из источника, как я
- Запустите авто-эмулятор?
- "Установить" CarService и связанные с ним пакеты на устройство?
Подробнее
Я пытаюсь построить Android Automotive из источника. Я могу успешно создать его, используя следующие команды:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r11
$ source build/envsetup.sh
$ lunch car_emu_x86_64-userdebug
$ make -j8 V=1 &>> make.log
Мой вопрос: как запустить эмулятор? После googling и прохождения некоторых сообщений stackoverflow я наткнулся на это:
Сначала я устанавливаю переменную env в командной строке (эмулятор использует это, чтобы определить, какой эмулятор запускаться)
export ANDROID_PRODUCT_OUT=/path/to/build_root
Затем я создал файл car-emulator.sh
и поместил его в него (сборка была выполнена на машине Ubuntu)
#!/usr/bin/env bash
ANDROID_BUILD_OUT=/path/to/build_root/out
PREBUILT=/path/to/build_root/prebuilts
EMULATOR_OUT=${ANDROID_BUILD_OUT}/target/product/car-x86_64
${PREBUILT}/android-emulator/linux-x86_64/emulator \
-sysdir ${EMULATOR_OUT} \
-system ${EMULATOR_OUT}/system.img \
-ramdisk ${EMULATOR_OUT}/ramdisk.img \
-data ${EMULATOR_OUT}/userdata.img \
-kernel ${PREBUILT}/qemu-kernel/x86_64/kernel-qemu \
-scale 0.7 \
-memory 512 \
-partition-size 1024
Я также попытался загрузить соответствующие файлы (darwin-x86_64) с машины сборки на свой ноутбук Mac и попытался запустить там. Эмулятор запускается, но сбой происходит сразу с огромной трассировкой основного стека.
В следующей части моего вопроса, как установить это изображение на устройство? Я вижу, что CarService.apk был сгенерирован. Достаточно ли установить этот APK на устройстве для его работы? Или должен ли CarService и связанные с ним пакеты быть частью образа системы, который должен быть свернут целиком?