Sailfish OS на смартфон

R3M1X

Заблокированные
Заблокированные

R3M1X

Заблокированные
Статус
Offline
Регистрация
05.07.2019
Сообщения
8
Репутация
4
Трофеи
2
Обратите внимание, если Вы хотите провести сделку с данным пользователем, на то, что он заблокирован.
Киляем гавно ведройд и ставим SAILFISH OS





В этой статье я расскажу, как установить Sailfish OS на свой смартфон и все тонкости этого процесса.

У меня был самый первый телефон от Jolla и он мне вполне нравился. Но время его не пощадило: у него сломался слот СИМ-карты и он превратился в оффлайн-смартфон. Какое-то время я пользовался Андроидом, но хочется возвратиться обратно и я начал смотреть в сторону неофицильных прошивок. Первый телефон Jolla морально устарел на сегодня, у него отвратительная камера, железо уже неактуальное и экран с небольшим разрешением. У меня завалялся телефон Moto G 2, на который я попробовал установить SFOS, но она была не совсем готова (камера не работала, Bluetooth работал частично, нету проигрывания видео и многие другие недочёты) и её польский автор как-то не торопился её допиливать. Поэтому я посидел несколько недель на eBay и нашёл для себя б/у телефон Nexus 5 для экспериментов. Сегодня я постараюсь вам описать все подводные камни процесса установки SailfishOS на Андроид-смартфон.
В этой статье:


  1. Немного о портах
  2. Разблокируем загрузчик
  3. Ставим свой загрузчик MultiROM
  4. Ставим CyanogenMod (СМ) и SailfishOS (SFOS)
  5. Обновляемся до SFOS 2 (опционально)
  6. Как ставить приложения?
  7. ТОП-10 программ для новичка

Немного о портах

Итак, неофициальные прошивки, портированные на разные устройства энтузиастами (далее "порт") существуют для разных моделей телефонов. Но чем они отличаются от официальной? Во-первых, вы должны понимать. что они пишутся обычными людьми, такими как мы с вами. А это значит, что скорее всего что-то может не работать, что-то может быть недоступно, что-то может поломаться с приходом обновлений. Также вся поддержка зависит целиком от авторов прошивки и сама Jolla к этому отношения, по большому счёту, не имеет. Во-вторых, вечная проблема с железом. Порты ставятся поверх CyanogenMod, дабы не писать драйвера с нуля, но всё равно не всё работает корректно. Так же сама СM потребляет немало заряда батареи: если первая Йолла жила у меня четыре дня от одной зарядки, Нексус уже тянет максимум полтора-два.

Итак, с чего нужно начать? Для начала, поглядите на матрицу готовых портов по ссылке:

wiki.merproject.org/wiki/Adaptations/libhybris

Там видно, для каких телефонов уже написаны свои порты, какой их статус и какие версии доступны. Благодаря таблице активности я решил взять себе для экспериментов именно Nexus 5, потому что для него прошивка одна из самых стабильных. Обязательно просмотрите список, что уже сделано в порте для вашего смартфона, а какой функционал ещё не работает. Инструкции по установке обычно одинаковые, но часто есть какие-то дополнительные шаги, специфичные для конкретной версии смартфона. Вот например инструкции для нексуса.

А если же вы сильны духом, готовы засучить рукава и самостоятельно сделать свой порт на какую-либо модель смартфона, то вот вам для начала инструкции, и там же поддержка в официальном чате. Там сидят очень дружелюбные работники Йоллы, которые рады будут помочь советом.

Ну, если вы морально готовы, тогда можно начинать. Проверьте, что у вас на компе стоит Android SDK (нам нужны будут утилиты adb и fastboot).

Разблокируем загрузчик

Я сначала пробовал использовать родной загрузчик для МотоG2, но это оказалось плохой идеей. Есть хороший проверенный временем MultiROM, который, к тому же, позволяет устанавливать несколько операционок, если есть желание. Для того, чтобы его установить, нужно сначала разблокировать родной загрузчик, поставляемый со смартфоном. Подключаем свой (пока ещё Андроид) телефон к компу, входим в Developer Mode, разрешаем дебаг по USB и пишем в коммандной строке:

$ adb reboot bootloader





Когда телефон загрузится в режим fastboot mode, нужно для начала
удостовериться, что ваш компьютер всё ещё видит подключённый телефон:



$ adb devices





и, собственно, разблокируем загрузчик:



$ sudo fastboot oem unlock





Сам девайс покажет предупреждающее сообщение, с которым нужно согласиться (но помните, что вы потеряете гарантию!).









Ставим свой загрузчик MultiROM


Сначала идём на сайт twrp.me и качаем последнюю версию загрузчика для вашего телефона (например, для Нексуса вот тут). Потом из командной строки пишем:



$ sudo fastboot flash recovery ~/Downloads/twrp-3.0.2-0-hammerhead.img
target reported max download size of 1073741824 bytes
sending 'recovery' (14524 KB)...
OKAY [ 0.665s]
writing 'recovery'...
OKAY [ 1.129s]
finished. total time: 1.794s



Ставим CyanogenMod (СМ) и SFOS


Перед тем, как начать установку, нужно скачать образы операционок.
Качаем снапшот СМ11 (важно именно 11, так как порт написан под эту
версию). Для Нексуса я брал вот этот образ. Ну и, конечно же, качаем сам порт для вашего телефона. Ссылка обычно лежит на Вики или на форуме. Для Нексуса это такой образ. Закидываем оба файла на телефон.



$ adb push ~/Downloads/cm-11-20141008-SNAPSHOT-M11-hammerhead.zip /sdcard/
6565 KB/s (373041464 bytes in 55.489s)
$ adb push ~/Downloads/sailfishos-hammerhead-release-1.1.9.28-beta0-201510022255.zip /sdcard/
6555 KB/s (348973612 bytes in 51.983s)





Небольшая ремарка для Nexus5




Теперь можно загрузиться в Recovery Mode, чтобы войти в загрузчик. Нам
нужно сделать тут три вещи: почистить телефон, установить СМ, установить
SFOS. Выключаем телефон, затем с зажатыми клавишами громкости, включаем
его и входим в меню загрузки.









Выбираем Recovery Mode и заходим в загрузчик MultiROM.



Далее идём в Wipe и стираем всё, кроме Internal Storage.









Потом заходим в Install, находим СМ и устанавливаем его. (к сожалению, на фотографии у меня неправильный образ СМ13, а нужно СМ11)









ну и, наконец, таким же образом устанавливаем SailfishOS.









По окончании перезагружаем телефон и после этого он уже должен
загрузиться совершенно другим смартфоном. Самая первая загрузка системы
может занять довольно продолжительное время, так что не беспокойтесь,
это нормально. У меня это заняло около пяти минут.



Обновляем версию операционки до 2.0


Этот шаг нужен только для Нексуса, потому что его порт основан на старой
версии SailfishOS, но и для других телефонов это может быть полезным
подходом. Для этой процедуры нам нужно настроить обновления «по
воздуху». Для этого добрые люди написали небольшой скрипт, который нам
нужно запустить.



Подключаемся к телефону по SSH


Поскольку SailfishOS — это прежде всего линукс, то и консоль у нас
доступна изначально. А так же и SSH-сервер, к которому нам можно
подключиться. Консоль можно открыть на самом смартфоне, она доступна для
вас по умолчанию, но тыкать пальцем в экран телефона не совсем удобно.
Этот вариант скорее для экстренных ситуаций, когда нет лаптопа под
рукой.









Второй вариант — подлкючиться к телефону с компа через SSH, что намного
удобнее. Это очень выручает в повседневной работе, так как мы можем
очень много операций сделать с компьютера, используя нормальную
человеческую клавиатуру и мышь.

Итак, для начала нам нужно подключиться к WiFi. Затем открыть Settings
> Development mode, где можно поставить свой пароль для root, ну и
увидеть уже готовый IP-адрес, к которому можно подключиться внутри вашей
сетки:









Заходим под пользователем nemo по указанному IP адресу.









Далее, где-нибудь на телефоне создаём шелл-скрипт с таким содержанием.



готовый скрипт update.sh




Даём ему права и запускаем. Ждём. Перезагружаемся. Наслаждаемся последней версией SailfishOS 2.0.



Как ставить приложения?


Ок, теперь у нас в руках голый телефон и руки чешутся поставить на него
кучу софта. Давайте научимся это делать. У нас есть четыре пути.



1. Jolla Store


Официальный магазин. Тут даже особо описывать нечего: заходите, жмёте
«установить», всё. Одно могу добавить, что Jolla Store может
отсутствовать на некоторых портах.









2) Warehouse


Как и на любом дистрибутиве Линукса, программы можно устанавливать из
разных источников (репозиториев). Нужно просто добавить желаемый
репозиторий и все пакеты из него будут доступны для установки. Поэтому
существует самый главный аналог официальному магазину приложений — сайт openrepos.net. У него есть небольшое приложение для телефона, которое называется Warehouse.









Выглядит он весьма простенько:









Самый простой способ установить его — зайти с браузера телефона на этот сайт, скачать rpm
пакет и установить его, тапнув на скаченном файле (все закачки можно
посмотреть в Settings > Transfers; на голой системе скорее всего вам
нужно будет разрешить установку программ из сомнительных источников, эту
функцию можно включить в Settings > Untrusted Software).









Если вы посмотрите на любое приложение из этого магазина, то сначала вы
найдёте кнопку «Enable repository», и добавив репозиторий автора к себе
на телефон, для вас будет доступна кнопка «Install». Так можно
установить любое приложение из openrepos.net















3) RPM


Как вы уже заметили в предыдущем шаге, программу или пакет можно
установить либо из браузера (разрешив установку из ненадёжных
источников, как было описано выше), либо прямо из консоли. Предыдущий
шаг установки Warehouse через консоль может выглядеть так:



curl -o warehouse.rpm https://openrepos.net/sites/default/files/packages/1/harbour-warehouse-0.3-22.armv7hl.rpm

devel-su rpm -i warehouse.rpm





4) pkcon, zypper


Ну и давайте подробнее остановимся на «ручном» управлении вашими
репозиториями. Для того, чтобы управлять ими, вам доступна команда ssu.



Список установленных репозиториев ssu lr:









Таким же образом, временно деактивировать какой-то репозиторий:

ssu dr home





Добавить новый репозиторий:

ssu addrepo ...





Устанавливать программы можно с помощью pkcon или zypper. Давайте для примера установим, скажем, gPodder (приложение для подкастов).



Сначала, добавим репозиторий sailfish.openrepos.net/thp/personal-main.repo (найденный на странице автора):



[nemo@Nexus5 ~]$ ssu addrepo openrepos-thp https://sailfish.openrepos.net/thp/personal/main
[nemo@Nexus5 ~]$ devel-su pkcon refresh
Password:
....
Refreshing software list






Потом найдём название пакета.



[nemo@Nexus5 ~]$ zypper search gpodder

Loading repository data...

Reading installed packages...



S | Name | Summary | Type

--+------------------------------+------------------------------+--------

| harbour-org.gpodder.sailfish | Media and podcast aggregator | package





Ну и, собственно, установим саму программу, используя zypper:



[nemo@Nexus5 ~]$ devel-su zypper install harbour-org.gpodder.sailfish
Password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW packages are going to be installed:
harbour-org.gpodder.sailfish libpython3_4m1_0 libsailfishapp-launcher pyotherside-qml-plugin-python3-qt5 python3-base

5 new packages to install.
Overall download size: 8.6 MiB. After the operation, additional 34.0 MiB will be used.
Continue? [y/n/?] (y): y

....длинный список установленных пакетов....






Как видите, всё выглядит довольно привычно для всех, кто немного знаком с
линуксом. Скажем, если вы хотите установить обычного питона на сей раз с
помощью команды pkcon, то ваша команда будет следующей:



[nemo@Nexus5 ~]$ devel-su pkcon install python
Password:

....

Installing packages [=========================================================================]
The following packages have to be installed:
gdbm-1.8.3-1.1.4.armv7hl GNU Database Routines
python-2.7.9-1.4.1.armv7hl An interpreted, interactive, object-oriented programming language
python-libs-2.7.9-1.4.1.armv7hl Runtime libraries for Python
Proceed with changes? [N/y] y

....




Ещё в некоторых портах по умолчанию не установлена подстановка слов в клавиатуре. Будет не лишним её добавить.



[nemo@Nexus5 ~]$ devel-su pkcon install jolla-xt9 jolla-xt9-cp