Комментарии (4)
Sailfish OS - Hardware Adaptation Development Kit - Часть вторая
Итак, в в первой серии нашего сериала, мы настроили SDK и теперь готовы к полёту...Сегодня мы получим и соберём исходники CyanogenMod необходимые для Android HAL
заходим сперва в SDK настраиваем GIT
Вам необходимо настроить ваше имя и почту, от кого будут коммиты в гит. Если они конечно же будут. Вместо "Your Name" вводите своё имя, вместо "you@example.com" ваша почта.Код BASH:
Далее заходим в HDK создаём папки для сборки андройда и сливаем исходные коды
HOST $ sdk MER_SDK $ git config --global user.name "Your Name" git config --global user.email "you@example.com"
Код BASH:
MER_SDK $ hadk ubu-chroot -r $MER_ROOT/sdks/ubuntu HABUILD_SDK $ hadk sudo mkdir -p $ANDROID_ROOT sudo chown -R $USER $ANDROID_ROOT cd $ANDROID_ROOT mkdir $ANDROID_ROOT/.repo/local_manifests -p
Устанавливаем repo
Код BASH:
HABUILD_SDK $ cd $ANDROID_ROOT curl https://storage.googleapis.com/git-repo-downloads/repo > repo chmod a+x repo sudo mv repo /usr/bin/repo
Если собираем под Android8
Находясь в HADK в файл /etc/apt/sources.list добавляем строчкуКод PHP:
далее обновляем java до 8 версии
deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main
Код BASH:
Далее устанавливаем imagemagick
sudo apt-get update sudo apt-get install openjdk-8-jdk
Код BASH:
sudo apt-get install imagemagick
Инициируем репозиторий
Так как нам нужна прослойка для Android HAL то качаем исходникиКод BASH:
HABUILD_SDK $ cd $ANDROID_ROOT repo init -u git://github.com/mer-hybris/android.git -b hybris-11.0
Создаём манифест
Код BASH:
Если собираем под Android 8 также необходимо в $ANDROID_ROOT/.repo/local_manifests/$DEVICE.xml добавить строку
HABUILD_SDK $ cat <<'EOF' >> $ANDROID_ROOT/.repo/local_manifests/$DEVICE.xml <?xml version="1.0" encoding="UTF-8"?> <manifest> <project path="device/lge/hammerhead" name="CyanogenMod/android_device_lge_hammerhead" revision="stable/cm-11.0" /> <project path="kernel/lge/hammerhead" name="CyanogenMod/android_kernel_lge_hammerhead" revision="stable/cm-11.0" /> </manifest> EOF
Код XML:
Главное стилистику XML не попортите.
<project path="external/libhybris" name="libhybris/libhybris" revision="master" />
Качаем исходники
...много исходников...более 13 ГбКод BASH:
HABUILD_SDK $ cd $ANDROID_ROOT repo sync --fetch-submodules
Собираем исходники
Перед сборкой исходников проверьте, совместимо ли ядро с SailfishOS и подправьте его, если нет - инструкция.Код BASH:
Теперь можно откинутся на спинку кресла и ждать сборки. В следующий раз мы будем собирать и настраивать песочницу андройда где он будет жить.
HABUILD_SDK $ hadk source build/envsetup.sh export USE_CCACHE=1 breakfast $DEVICE make -j4 hybris-hal
во время инициализации репозитория мы указываем ссылку на
git://github.com/mer-hybris/android.git -b hybris-11.0
Я хочу попробовать порт на ми5 через CM 14.1 и использовать следующий репозиторий
git://github.com/CyanogenMod/android.git -b cm-14.1
Есть ли какие то подводные камни, учитывая то что перрвый репо есть форком от последнего.
build/core/product_config.mk:254: *** _nic.PRODUCTS.[[device/xiaomi/ido/lineage.mk]]: "vendor/xiaomi/ido/ido-vendor.mk" does not exist. Stop.
build/core/product_config.mk:254: *** _nic.PRODUCTS.[[device/xiaomi/ido/lineage.mk]]: "vendor/xiaomi/ido/ido-vendor.mk" does not exist. Stop.
** Don't have a product spec for: 'lineage_ido'
** Do you have the right repo manifest?
Не подскажете, куда копать?