Sailfish OS - Hardware Adaptation Development Kit - Часть вторая

Итак, в в первой серии нашего сериала, мы настроили SDK и теперь готовы к полёту...Сегодня мы получим и соберём исходники CyanogenMod необходимые для Android HAL
Sailfish OS - Hardware Adaptation Development Kit - Часть вторая

заходим сперва в SDK настраиваем GIT

Вам необходимо настроить ваше имя и почту, от кого будут коммиты в гит. Если они конечно же будут. Вместо "Your Name" вводите своё имя, вместо "you@example.com"; ваша почта.
Код BASH:
  1. HOST $
  2. sdk
  3. MER_SDK $
  4. git config --global user.name "Your Name"
  5. git config --global user.email "you@example.com"
Далее заходим в HDK создаём папки для сборки андройда и сливаем исходные коды
Код BASH:
  1. MER_SDK $
  2. hadk
  3. ubu-chroot -r $MER_ROOT/sdks/ubuntu
  4. HABUILD_SDK $
  5. hadk
  6. sudo mkdir -p $ANDROID_ROOT
  7. sudo chown -R $USER $ANDROID_ROOT
  8. cd $ANDROID_ROOT
  9. mkdir $ANDROID_ROOT/.repo/local_manifests -p

Устанавливаем repo

Код BASH:
  1. HABUILD_SDK $
  2. cd $ANDROID_ROOT
  3. curl https://storage.googleapis.com/git-repo-downloads/repo > repo
  4. chmod a+x repo
  5. sudo mv repo /usr/bin/repo

Если собираем под Android8

Находясь в HADK в файл /etc/apt/sources.list добавляем строчку
Код PHP:
  1. deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main
далее обновляем java до 8 версии
Код BASH:
  1. sudo apt-get update
  2. sudo apt-get install openjdk-8-jdk
Далее устанавливаем imagemagick
Код BASH:
  1. sudo apt-get install imagemagick

Инициируем репозиторий

Так как нам нужна прослойка для Android HAL то качаем исходники
Код BASH:
  1. HABUILD_SDK $
  2. cd $ANDROID_ROOT
  3. repo init -u git://github.com/mer-hybris/android.git -b hybris-11.0

Создаём манифест

Код BASH:
  1. HABUILD_SDK $
  2. cat <<'EOF' >> $ANDROID_ROOT/.repo/local_manifests/$DEVICE.xml
  3. <?xml version="1.0" encoding="UTF-8"?>
  4. <manifest>
  5. <project path="device/lge/hammerhead"
  6. name="CyanogenMod/android_device_lge_hammerhead"
  7. revision="stable/cm-11.0" />
  8. <project path="kernel/lge/hammerhead"
  9. name="CyanogenMod/android_kernel_lge_hammerhead"
  10. revision="stable/cm-11.0" />
  11. </manifest>
  12. EOF
Если собираем под Android 8 также необходимо в $ANDROID_ROOT/.repo/local_manifests/$DEVICE.xml добавить строку
Код XML:
  1. <project path="external/libhybris" name="libhybris/libhybris" revision="master" />
Главное стилистику XML не попортите.

Качаем исходники

...много исходников...более 13 Гб
Код BASH:
  1. HABUILD_SDK $
  2. cd $ANDROID_ROOT
  3. repo sync --fetch-submodules

Собираем исходники

Перед сборкой исходников проверьте, совместимо ли ядро с SailfishOS и подправьте его, если нет - инструкция.
Код BASH:
  1. HABUILD_SDK $
  2. hadk
  3. source build/envsetup.sh
  4. export USE_CCACHE=1
  5. breakfast $DEVICE
  6. make -j4 hybris-hal
Теперь можно откинутся на спинку кресла и ждать сборки. В следующий раз мы будем собирать и настраивать песочницу андройда где он будет жить.
Комментарии (4)
  1. Привет. У меня есть вопрос:
    во время инициализации репозитория мы указываем ссылку на
    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
    Есть ли какие то подводные камни, учитывая то что перрвый репо есть форком от последнего.
  2. Ну как минимум придётся править бионик и init...это как минимум...посмотри в манифесте хибриса что они используют своего, а что тянут с циана.
  3. Пошел смотреть
  4. получил после breakfast $DEVICE следующее:
    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?

    Не подскажете, куда копать?
Copyright 2016-2024 NeoChapay