Модель файла установки не совместима с моделью системы
Сервер предназначен для человека не имеющего знаний в работе с серверными операционными системами, это обычный пользователь, который глубже веб-интерфейса разбираться не захочет и имел опыт работы только с системой Synology. Для тех кто не в курсе:
Synology – сетевая система хранения данных (NAS-серверов). Красивая, современная, интуитивно понятная и легкая в управлении с расширяемым функционалом. Для установки дополнительных пакетов существуют категории: Backup, Multimedia, Business, Utilities, Security, Productivity, Developer Tools, Management Tools. Можно расширить функционал и получить языки и среды программирования, видео наблюдение, веб сервер, виртуализацию docker, облачные хранилища, почтовые сервера, автоматическое копирование USB-носителей, базы данных. Установив офисные программы можно организовать работу целого офиса или небольшой организации.
Наш сервер (HP ProLiant Microserver N40L) для Synology отличен от стандартного оборудования и поэтому требует дополнительной настройки.
Заходим в BIOS и отключаем c1e support. Включение режима Enhanced Halt State или C1E позволяет снизить энергопотребление в режиме простоя. Происходит это за счет отключения некоторых частей процессора, снижения частоты и напряжения питания. Включение этой опции не позволяет нормально обновлять систему XPEnology.
Xpenology — все то же самое, только не на оригинальном железе Synology. Устанавливается система на USB флешку. Рекомендуемый объем от 8 GB. Немного забегая вперед, я посмотрел какие разделы создаются.
и в более наглядном виде
Получается, что нам подходит флешка и на 1 ГБ.
Единственный найденный минус — не совсем понятно как использовать удаленный доступ, поскольку адрес получается через сервер Synology с привязкой к личному профилю. То есть как минимум вам придется зарегистрироваться, но даже на этот счёт, вы найдёте в интернете решения.
Для установки нам потребуются следующие данные:
- Информацию о производителе USB флешки. Нам необходимы VID и PID – это номер разработчика устройства и номер устройства. Есть 2 способа:
«Диспетчер устройств» > «Контроллеры USB» > «Запоминающее устройство USB» > «Свойства» > «Сведения» > «ИД оборудование», или можно найти в “Дисковые устройства”
Ещё нам понадобятся:
- Серийный номер устройства Synology. Генератор ищите на сайте: xpenogen.github.io/serial_generator
- MAC адрес сервера на который собираемся устанавливать, причём если у вас несколько сетевых устройств, вы можете в настройках перечислить их все.
Но как показала практика, нам достаточно только VID и PID. Поэтому имейте в виду, что если пойдёт что то не по плану, то возможно стоит эти параметры также настроить.
Установка XPEnology
Перерыв целую кучу форумов, большинство людей приходят к загрузчику основанному на версии DS3617xs
Также нам понадобятся “OSF Mount” и “rufus” . На этой же странице, только в самом низу.
Распаковываем скаченные архивы и при помощи программы OSFMount монтируем образ XPEnology в формате img.
Я пробовал монтировать не как съемный носитель. Разницы особой не почувствовал.
В моём компьютере у вас появится новый диск. Открываем и редактируем файл \grub\grub.cfg. Изменяем MAC, SN, vid, pid. Ну или как я уже оговаривался выше, достаточно только vid и pid
Возвращаемся в программу OSFMount. Нажимаем “Dismount all & Exit”. Теперь необходимо записать изменённый образ на USB флешку. Запускаем Rufus, выбираем наш образ и нажимаем “Start”
В процессе записи, все данные будут удалены. Соглашаемся с этим.
Далее было несколько ошибок.
The requested item could not be located
Rufus попытался скачать из сети какие-то недостающие файлы. Я попробовал с последней версией Rufus , таких ошибок не было. Если будете использовать версию с сайта xpenology, смело нажимайте “ОК” и игнорируйте ошибки
Загрузка системы XPEnology с USB флешки
Подключаем флешку к серверу, настраиваем BIOS на загрузку с неё и загружаемся.
Дожидаемся окончания загрузки.
Воспользовавшись программой “Synology Assistant” попробуйте найти сервер. Системе необходимо время для загрузки, поэтому не пытайтесь сразу найти NAS. Примерно первые две минуты я получал ошибку:
Не удалось найти сервер Synology в локальной сети
Устройство стало доступно для поиска примерно через минуты три
После окна приветствия и нажатой кнопки “Установить”, переходим с следующему шагу, где выбираем “Установить прямо сейчас”. Это скачает и установит последнюю систему DMS с официального сайта. Можно нажать “Установка в ручную” и выбрать ранее скаченный образ системы.
В системе кроме флешки, должен присутствовать HDD. На нём все разделы будут перераспределены и отформатированы.
Система и все её настройки будут храниться на жестком диске. То есть USB флешка должна работать вечно, так как запись на неё не будет производиться (только на чтение).
Далее в мастере настройки необходимо указать пароль и минимальные регистрационные данные. Старайтесь использовать более сложные пароли с применением специальных символов.
Тут я пропустил шаг, это именно тот минус который я описывал ранее.
Собственно сам интерфейс Synology
На этом всё, можно пользоваться и обновляться как оригинальный Synology
В качестве бонуса рассмотрим разделы диска после установки системы
Разделы диска Synology
Вид диска после создания “Пула ресурсов хранения” в “Диспетчере хранения”.
После создания раздела c файловой системой Btrfs на этом же диске
Может есть владельцы ds115j, подскажите хватит ли его производительности для одновременной работы торрента, dlna сервера и бэкапа файлов с ПК ?
У меня сейчас 116 у него хватает ресурсов. Тут вопрос в производительности сети. И потом задачи можно назначить на разное время. Допустим бекапы по ночам. Торент много не жрет. Dlna только один да и то он в основном сетку нагружает и все.
Одновременно DLNA и torrent - ну например транслировать одно кино надо порядка 25-30 мегабит локалки (если тока не 4к). остальное достанется торенту. два потока 60 три 90 при гигабитной сетке 10 потоков но это наверно дома не случится никогда)))
Если присматриваешь купить то лучше подкопи на 218+. Он может в последствии быть расширен.
Я на старый компьютер поставил систему synology очень мощьная и удобная вещь получилась работает как nas + торент клиент + хранилище фотографий а делов на 10 минут
Да согласен, просто обновления не в реальном времени и помоему флешка должна быть у него всегда вставлена, но могу ошибаться. А вообще да система меня тоже порадовала.
У меня с понедельника не работает QuickConnect на DS118 (нет удалённого доступа через интернет). Через Андроид приложения всё нормально. Это только у меня или глобально (Роскомнадзор задел Synology из-за блокировки Телеграма)?
А обновы нормально система видит? Вручную если зайти на сайт обнова есть, а NAS проверяет, но говорит типа нет
Обнова может приходить в разное время, в зависимости от региона. Балансировка нагрузки на основной сервер.
У меня двухдисковый, оба диска стоят. Хочу один поменять на побольше (никаких рейдов нет) и что-то не понимаю, как это сделать. В наличии есть бокс для подключения hdd по usb. Вытащенный из Synology диск потом прочитается в компе?
Прочитается, надо только на комп поставить программу для чтения ехт разделов.
И еще момент, какой из дисков меняешь? На первом помоему по умолчанию сидит еще система сама.
neoboy,
Насколько помню, система дублируется на каждом диске, чтобы при сбое на любом из них сохранялась работоспособность NAS
Добавлено 11.08.2018, 15:21:
Гудит, жрет электричество и греет воздух)
Недавно приобрёл 115j и еще до конца в нем не разобрался.
Пытаюсь подключить ps3 как ftp сервер. С filezilla и браузера всё отлично работает, а вот nas ничего не видит.
В чём проблема может быть?
В дружественном форуме есть тема. Тут.
Рекомендуется в качестве клиента mc. Но вообще NAS не затачивается как клиент, наоборот как сервер.
Synology DS2116play
С компьютера переносил папки на NAS в корень диска, потом скопировал их в соответствующие папки вырезанием. Через проводник - все в порядке, но на телевизорах вырезанные папки остались в корне, вернее их фантомы, при попытке их чтении выдает ошибку воспроизведения.
Как почистить эти фантомы? Посоветуйте.
Протестировал всё, что есть бесплатного, из программных NAS-серверов - всё говно . Тогда я сделал домашний "NAS" на базе “Windows Embedded” . Установил на него свой сайт (этот), развернул домашнее файловое хранилище на базе "Seafile", качалку торрентов ("qbittorrent", запускался как служба ), общую папку, резервное копирование на внешний диск, и всё было хорошо, пока “Microsoft” мне подкинуло заподлянку, и при очередном обновлении возникла ошибка проверки подписи winlogon.exe, я всё конечно восстановил из резервной копии, но меня такой вариант не устраивает , какого хера .
Я давно мечтаю купить NAS-коробку (они тоже почти все говно ), и нужно убедиться, что она будет соответствовать моим завышенным требованиям.
И вот уже много лет как народ намострячился устанавливать "DiskStation Manager", так называется ОС "Synology", на обычное железо. Ну, так поехали
В статье используются программы:
AkelPad v4.9.8 Текстовый редактор оф. сайт
Rufus v.3.5p Программа для записи образов оф. сайт
ImageUSB v1.4.1003 Программа для создания образа флешки оф. сайт
Synology Assistant v6.2.23733 Программа для поиска "DSM" и заливки образа прошивки оф. сайт
OSF Mount v3.0.1005 x64 Программа для монтирования ".img" образов оф. сайт
DS3617xs 6.1 Jun's Mod V1.02b.img Образ загрузочной флешки оф. сайт
DSM_DS3617xs_15284.pat Образ "DiskStation Manager" оф. сайт
POWERBUTTON_6.2-0002.SPK Приложение для выключения сервера с кнопки
Для начала как обычно нужно помнить, что всё актуально только для тех версий про которые я пишу. И это же говно линукс, так, что ожидать адекватных инструкций или рассчитывать, что кто то будет рад вам помочь - напрасно.
Как это всё работает: В "Synology" есть встроенная флешка, на которой находится загрузчик который содержит в себе информацию о оборудовании, его серийном номере, модели, mac-адресе. Вот содержание этой флешки и будем эмулировать.
На выбор существует 4-ре эмулятора для версии NAS-серверов: DS3615sx, DS3617sx, DS916+, DS918
Я на о бум выбрал версию для установки "DS3617sx", читайте сами в интернете чем они отличаются.
1. Нам нужна флешка, и хотя бы одни HDD (можно и без HDD, проверить загрузчик никто не запрещает, если сервер обнаружился, то это 50% успеха ), загрузчик работает как в "legacy" так "UEFI" режиме, (если мы не играемся, а делаем серьёзно то нужно две флешки, от одного вендора и одинаковой модели).
У них совпадают VID и PID. Но не обязательно. Просто меньше действий нужно будет делать в случае аварии.
2. Скачиваем отсюда img-файл.
Тут нужно обратить внимание на левую колонку.
Там написано для какой версии "DSM" подходит загрузчик. На текущий момент последняя версия "DSM" 6.2. Но вот пишут
что есть проблемы с загрузчиком, и ещё про поддержку сетевых карт тоже там пишут после обновления прощай сеть. А без сети ваше хранилище становится бесполезным. Не, можно конечно как-то там хитро выебанно подключиться терминалом через COM-порт, но ну его нахуй. 1
1 "Только важные обновления можно устанавливать"
Я скачал версию "DS3617xs 6.1 Jun's Mod V1.02b" Для "DSM" v6.1. Потому, что в версии "DSM" 6.2 моя сетевая карта больше не поддерживается
3. Теперь нам нужен образ "DSM" для заливки его непосредственно на жёсткие диски, его берём отсюда.
Обратите внимание на путь, я взял самый последний релиз из 6.1.7.
3.1 Генерируем для него уникальный серийный номер (чтоб можно было подключиться откуда хочешь удалённо через облако, но этому не бывать, возможно поможет при установке, но я так и не понял зачем он, на сайте "Synology" вы всё равно не сможете его зарегистрировать, я даже смог найти в инете серийник который добавил на сайт "Synology", даже поменял его в загрузчике, но у меня всё равно ошибка
возникает при попытке настроить удалённый доступ. Пробрасывать порты на маршрутизаторах никто не запрещал, просто нужен внешний ёп. ) Ссылка на генератор.
4. Узнаём VID и PID флешки. Открываем диспетчер устройств "devmgmt.msc" находим "Запоминающее устройство", заходим на закладку "сведения" и в "Свойство" выбираем "ИД оборудования"
5. Узнаём MAC-адрес всех сетевых адаптеров которые будут установлены в наш "сервере" в зависимости от модели "Synology", они могут содержать разное количество сетевых карт. Тут точно не знаю как это выглядит если у вас будет 5 сетевух.
Такс, мы всё скачали, все программы установили/распаковали, флешка подключена
На мой взгляд, одни из лучших NAS — это Synology. И по большей степени это благодаря их софту Synology DSM . Чтобы поставить эту ОС на любое x86 железо существует проект Xpenology.
Себе я сделал NAS на Synology DSM из старенького Intel NUC DE3815TYBE c 4 GB ОЗУ DDR3L Kingston KVR16LS11/4 и SSD Kingston A400 на 120 GB для установки ОС. Так же есть возможность установить ОС на HDD, предназначенный для хранения данных, но я решил выделить для этого отдельный SSD.
Итак, весь комплект:
Intel NUC DE3815TYBE — 1000 руб. на авито
ОЗУ Kingston KVR16LS11/4 DDR3L 4 GB — 1300 руб.
Kingston A400 120 GB — 1600 руб.
Плата Mini PCI-E PCI Express to SATA 3.0 — 440 руб.
USB флешка на 8GB — была в наличии
HDD Toshiba 2.5 на 2 TB — был в наличии
БП для NUC — был в наличии
На usb флешку ставится загрузчик, и она всегда должна быть вставлена в nuc.
Итак, приступим. Скачиваем образ IMG для флешки.
Я пробовал образы, начиная с самых последних и шел ниже по списку, и все отказывались грузиться после установки DSM на моем NUC. Заработал образ DS3615xs 6.1 Jun’s Mod V1.02b.img, скачанный по этой ссылке
Теперь скачанный образ нужно отредактировать под параметры нашей флешки. Для этого распаковываем его и открываем файл DS3615xs 6.1 Jun’s Mod V1.02b.img через программу OSFMount. Ее можно скачать тут
Жмем Mount new:
И выбираем synoboot.img. Жмем Next:
На следующем шаге выбираем раздел на 15 МБ и жмем Next:
Далее убираем галочку с Read-only drive и жмем Mount:
Будет смонтирован новый раздел:
Теперь нам нужно отредактировать файл grub.cfg в каталоге grub. Но перед этим нужно узнать VID и PID флешки, которая будет загрузочной. Для этого я использовал программу ChipGenius, скачать можно тут.
Находим нашу флешку и жмем на нее. В нижнем окошке выйдет информация, включающая VID и PID:
Теперь в смонтированном разделе открываем grub.cfg в каталоге grub через Notepad++ (скачать можно тут) и меняем строки
на значения vid и pid своей флешки:
Сохраняем grub.cfg и размонтируем образ:
Просто выбираем в руфусе нужную флешку, затем образ DS3615xs 6.1 Jun’s Mod V1.02b.img и жмем Старт:
После успешной записи образа вставляем эту флешку в NUC и включаем его. На экране появится загрузчик и автоматически запустится первый пункт.
И после этого выйдет вот такая надпись:
Жмем подключиться и соглашаемся с лицензионным соглашением:
Далее нам будет предложено установить операционную систему. Жмем Установить:
На следующем этапе я нажал Установка вручную:
И выбрал файл DSM_DS3615xs_15284.pat, скачанный отсюда
Жмем зеленую кнопку Установить прямо сейчас, нас предупредят о форматировании подключенного накопителя:
И начнется установка DSM:
После установки устройство будет перезагружено и пойдет обратный отсчет 10 минут:
Где-то на 7 минуте у меня открылось окно с предложением создать учетную запись администратора. Создаем:
На следующем этапе вышло предложение настроить Автоматическое обновление и расписание проверок жестких дисков. Я выбрал ручное обновление, так как с новой версией DSM, с большой долей вероятности, наш NAS окирпичится без нужной версии загрузчика:
Далее нас просят настроить QuickConnect для удаленного доступа через сервера Synology. Для этого нужно прописать серийный номер и mac от реального Synology Diskstation в grub.cfg. Я нажал Пропустить этот шаг:
И после система скажет, что все настроено:
И будет открыт рабочий стол DSM:
После добавления будет доступен весь список кастомных дополнений, включая Transmission:
Но чтобы установить какой-либо аддон, нужно смонтировать свободный раздел диска. Я был немного удивлен, когда зайдя в Диспетчер хранения > Разделы кнопка создать была неактивна. Хотя на моем SSD еще свободно около 100 ГБ. В общем, чтобы смонтировать раздел я зашел в Диспетчер хранения > RAID Group и создал как бы raid, но не raid, выбрав в типе raid Basic. И уже после этого во вкладке Разделы я смог добавить раздел на 100 ГБ.
Так же я поставил галочку на Запретить доступ к предыдущим версиям samba в Панель управления > Файловые службы > SMB и выключил ненужную мне службу bonjour
После этих манипуляций можно устанавливать нужные вам дополнения. Я установил Transmission через Центр пакетов > Сообщество и Monitorrent
Для Monitorrent нет пользовательского дополнения Synology, но зато есть докер контейнер на Docker Hub. А в Synology DSM есть дополнение Docker, позволяющее без особого труда установить вообще любые контейнеры.
Сначала нужно установить его через Центр пакетов:
Запустив, переходим в Реестр и ищем Monitorrent:
Стандартный пароль monitorrent
Так же я установил Plex сервер через Центр пакетов и вручную обновил версию, так как на этой версии DSM Plex почему-то был версии 1.16, хотя доступна 1.18 и она без каких-либо проблем сейчас работает.
В итоге получилось отличное сетевое хранилище с моим собственным железом и с низким энергопотреблением.
В моем NUC только 1 sata порт, но есть разъем mini pci-e. Для установки HDD я заказал вот такую плату с 2 sata 3.0 и с чипом ASM1061 на всем известной площадке:
Пока что тестирую новый NAS с Synology DSM в ожидании этой платы, а основные функции сейчас выполняет мой D-Link DNS-320, о восстановлении которого я писал уже очень давно:
Он, кстати, иногда не запускает Transmission после перезагрузки. Приходится заходить на web ui и запускать вручную. В остальном же работает безотказно после того восстановления в 2016 году.
И напоследок, в Home Assistant легко добавить мониторинг состояния Synology DSM. Для этого в sensors.yaml:
С версии Home Assistant Core 0.109.0 — platform: synologydsm заменена на — platform: synology_dsm
Так же добавлена возможность добавления через Настройки > Интеграции
В итоге имеем вот такую карточку для мониторинга:
Как раз SMART мониторинг состояния дисков через Home Assistant был для меня одной из главных особенностей в выборе ОС для своего NAS. Можно настроить простую автоматизацию на отправку уведомления при изменении статуса, чтобы быть в курсе, если диск будет пора менять.
Наверняка у тебя как у пользователя Android возникало желание сделать операционную систему лучше, добавить полезное, убрать лишнее и поделиться своим творением с обществом. Сборка собственной прошивки из исходников — сложный процесс, требующий глубоких знаний предмета, однако никто не запрещает взять стандартную прошивку смартфона и адаптировать ее под свои нужды. Это не так уж и сложно сделать.
Начнем с того, что тебе нужен Linux. В Windows ты сможешь только разобрать прошивку, но собрать обратно уже не получится по чисто техническим причинам. Теперь о прошивке. Обычно они распространяются в виде ZIP-архивов, прошиваемых через кастомные рекавери. Именно один из них нам и понадобится для опытов. Начинать путь ромодела я рекомендую с какой-нибудь максимально приближенной к AOSP кастомной прошивки, потому что в ней зачастую проще разобраться, чем в стоке.
Нужный ZIP можно найти на XDA Developers или 4PDA. Но имей в виду, что нужна прошивка конкретно для твоей модели аппарата, — у того же Galaxy S7 есть несколько модификаций для разных рынков, не всегда совместимых между собой.
Удаляем и добавляем приложения
Все предустановленные программы можно найти в двух папках:
Друг от друга они отличаются привилегиями доступа. Если программы из app имеют такие же полномочия, как сторонние программы (например, установленные из Play Store), то приложения из priv-app могут использовать привилегированные API (права privileged). Подробнее об этом можно узнать из нашей статьи.
Для предустановки приложения в прошивку просто кинь ее APK-файл в /system/app/ . Можно, конечно, создать отдельную папку, но в нашем случае в этом нет смысла, потому что папка служит для хранения библиотек и odex-файлов, которых у нас попросту нет. Для удаления просто удали папку с ним.
Можно пойти дальше и поменять стоковые приложения на аналоги. К примеру, для замены календаря удаляем папку Calendar и копируем в /system/app наш любимый com.rpagyc.simplecalendar.apk . А можно и не копировать. Тогда прошивка будет без календаря.
Главное, помни: стоковые программы могут быть связаны между собой. Поэтому удаление одной проги вполне может привести к полной неработоспособности другой (к примеру, CalendarProvider и Calendar: удалив первый, ты сделаешь неработоспособным не только стоковый, но и любой другой календарь). К счастью, в чистых AOSP-прошивках взаимосвязей не так много.
Скрипт
Самые ленивые могут разобрать прошивку с помощью скрипта System_Extractor-Linux.
- Распаковываем архив с прошивкой в любую папку.
- Качаем скрипт по ссылке и разархивируем в любую папку.
- Запускаем файл ext (если будет ругаться на отсутствие Java, просто пропусти, нажав y ; Java нужна только для запаковки).
- Теперь выбираем распаковку, нажав кнопку 1, а затем Enter.
- Новая папка с именем extract_* появится рядом с файлом ext и папкой tools . Копируем в нее файлы system.new.dat и system.transfer.list .
- После копирования файлов нажимаем Enter и ждем. Через некоторое время нужно будет опять нажать Enter, ввести пароль администратора и еще раз тапнуть Enter.
- Готово. Содержимое system в папке extract_*/output .
Структура ZIP-файла с прошивкой
После загрузки распакуем архив с помощью любого архиватора. Внутри будет следующий набор файлов и папок:
- META-INF — папка с метаинформацией о прошивке (сертификат автора, манифест со списком файлов, их контрольными суммами), скриптом обновления (updater-script) и инсталлятором (update-binary), который выполняет команды скрипта по монтированию разделов, копированию файлов и другим действиям с NAND-памятью;
- boot.img — образ с ядром и RAM-диском (он прошивается в раздел boot);
- system.new.dat — это, грубо говоря, и есть сама прошивка, а точнее образ раздела system, содержащий операционную систему Android за вычетом ядра;
- system.transfer.list — содержит список команд, которые необходимо выполнить, чтобы поблочно скопировать содержимое system.new.dat в раздел system при установке прошивки;
- system.patch.dat — используется для OTA-обновлений, то есть выборочного внесения изменений в прошивку; если прошивка «полная», он имеет нулевой размер.
Рекомендуем почитать:
Ручной способ
Распаковываем архив с прошивкой в любую папку (например, в rom ):
Скачиваем нужные нам инструменты в эту папку:
Он преобразует файл system.new.dat в raw-образ с именем system.img . Монтируем образ к подпапке mnt :
Содержимое образа system
Подводные камни
Во время сборки system.new.dat ты можешь столкнуться с несколькими проблемами, вызванными постоянными изменениями в механизмах формирования прошивок Android. Описанный выше способ должен хорошо сработать в случае основанной на Android 5.1 прошивки, в более новых могут возникнуть сложности, так что потребуется использовать другие версии инструментов сборки. К сожалению, мы не можем описать все нюансы сборки, поэтому, возможно, придется погуглить.
Структура каталогов Android
После распаковки system появится следующая каталоговая структура:
- app — предустановленные приложения со стандартными привилегиями;
- priv-app — предустановленные приложения с повышенными привилегиями, в том числе некоторые компоненты системы;
- bin — бинарные файлы формата ELF, аналог каталогов /bin и /usr/bin в Linux. Содержит различные системные компоненты, используемые более высокоуровневыми компонентами системы;
- etc — файлы настроек. Полный аналог /etc в Linux, используемый, однако, только теми самыми системными компонентами. Приложения Android хранят индивидуальные настройки в каталогах /data/data/ ;
- fonts — шрифты. По умолчанию содержит только фирменные шрифты Roboto;
- framework — библиотеки Java-классов, используемых системой и приложениями. Тут же лежит файл framework-res.apk , содержащий полное описание интерфейса операционной системы, включая все графические файлы;
- lib и lib64 — Linux-библиотеки, используемые низкоуровневыми компонентами системы. Аналог каталогов /lib и /usr/lib в Linux, включая такие стандартные библиотеки, как libc, libz, libssl. На устройствах с архитектурой ARMv7 и ниже каталог lib64 будет отсутствовать;
- media — медиафайлы: рингтоны, звуки уведомлений, звуки интерфейса и анимация загрузки ОС;
- tts — файлы, необходимые синтезатору речи;
- usr — каталог, который обычно содержит файлы, необходимые для работы приложений из каталога bin. По сути, аналог /usr/share ;
- vendor — файлы, поставляемые производителем устройства. Обычно содержит бинарный firmware для различных железных компонентов, например модуля Wi-Fi;
- xbin — необязательный каталог; кастомные прошивки используют его для хранения таких вещей, как интерпретатор bash, SSH, PowerTOP, BusyBox, и других полезных инструментов;
- build.prop — файл, содержащий информацию о сборке, а также различные низкоуровневые настройки;
- addon.d — содержит скрипты, запускаемые после установки прошивки. Сюда же GApps прописывают свой скрипт, благодаря которому возрождаются после переустановки прошивки.
Ознакомившись с базовой структурой Android, начнем вносить изменения.
Выводы
Эта статья описывает лишь верхушку огромного айсберга под названием «модификация прошивок». «Серьезные» прошивки не только дополняют ядро и саму прошивку со стоковыми приложениями множеством функций (которые зачастую вырваны из других ядер и прошивок), организовывая или даже меняя принципы их взаимодействия, но и вполне могут кардинально менять принципы работы ОС. Правда, такая поделка — это уже не Android, а отдельная ОС, даже если Play-сервисы получится туда поставить (кстати, такие действия, мягко говоря, не поощряются Google). Ну и не забываем: все оболочки от производителей — TouchWiz, ZenUI, HTC Sense и так далее — всего лишь обычные кастомы, максимально привязанные к железу устройства и друг к другу.
Распаковываем system.new.dat
Файлы system.new.dat и system.transfer.list представляют для нас наибольший интерес. Точнее, не они, а содержащаяся в них система. Но добраться до нее не так просто.
Меняем анимацию загрузки
Анимация хранится в виде PNG-картинок, упакованных в архив /system/media/bootanimation.zip без сжатия. Внутри архива находятся:
- desc.txt — файл, описывающий анимацию;
- part0 — папка с файлами анимаций, которые воспроизводятся первыми;
- part1 — папка с файлами анимаций, которые воспроизводятся вторыми;
- .
- part? — крайняя папка, изображения с которой воспроизводятся в конце.
Файл desc.txt может содержать нечто вроде
Назначение этих строк интуитивно понятно: 1920 × 1080 — разрешение картинки, 60 — число кадров в секунду. Part0 и part1 указывают на папки, из которых будет воспроизводиться анимация, и последовательность воспроизведения. Вообще, может быть как одна часть, так и несколько (три и больше).
Изображения, находящиеся в папках part, пронумерованы пятью цифрами в порядке воспроизведения: 00000.jpg , 00001.jpg , 00002.jpg . Эти изображения можно поменять на свои, тем самым создав оригинальную анимацию. А можно просто удалить файл bootanimation.zip . Тогда девайс будет показывать анимацию из стандартного Android. Или воспользоваться уже готовой коллекцией анимаций на 4PDA.
Четыре части в bootanimation.zip для LineageOS
Сборка
После внесения изменений нужно собрать все обратно. Сначала запакуем раздел system в system.new.dat . Скачиваем нужные нам инструменты:
Преобразовываем нашу папку обратно в RAW-образ. Назовем его system_new.img :
1073741824 меняем на размер раздела system в байтах. Желательно даже сделать его чуть меньше. Делаем из RAW-образа sparse-образ:
Преобразуем наш образ в system.transfer.list и system.new.dat , которые и нужно кидать в архив с прошивкой, но сначала удалим старые файлы:
Отделим файлы прошивки от лишней шелухи (файлов, которые мы загружали для работы. Для этого удобно пользоваться архивом с прошивкой). Удалили? Теперь нужно запаковать прошивку в ZIP-архив (любым архиватором).
Осталось подписать архив. Сделать это можно как на самом Android с помощью ZipSigner, так и на ПК (потребуется установленная Java):
Установка
Для установки кастомной прошивки необходим кастомный рекавери TWRP, позволяющий устанавливать неподписанные или подписанные тестовым ключом прошивки (именно такую мы создали). В журнале мы неоднократно описывали процесс его установки, да и в ветках форума, посвященных твоему устройству, обычно есть достаточно информации для того, чтобы это сделать.
Добавляем шрифты
Шрифты хранятся в fonts . Найти архивы с файлами шрифтов можно на 4PDA и XDA. Для установки достаточно скопировать с заменой ttf-файлы из архива в папку fonts .
Свободное место
Необходимо понимать, что место для установки прошивок ограниченно. Нельзя установить прошивку, размер которой перевешивает размер раздела system устройства. Посмотреть его значение можно, используя ADB:
Инфа о разделе system
Второй вариант: поставить на устройство терминал и набрать команду
Размер раздела в байтах можно узнать, установив на смартфон BusyBox и выполнив в терминале команду
Или то же самое с помощью ADB:
Место, занимаемое прошивкой, будет приблизительно равно размеру system в распакованном виде. Вообще, при создании прошивки необходимо учитывать, что юзер также может прошить поверх нее различные модификации (SuperSU, Xposed) или перенести приложения в раздел system. Например, минимальный пакет приложений Google (Pico) требует минимум 150 Мбайт дополнительного пространства для установки.
При необходимости размер файла прошивки можно уменьшить, удалив не только ненужные программы из /system/app ( /system/priv-app ) и звуки вызова из system/media/audio и bootanimation.zip , но и:
- /system/tts/lang_pico — языки примитивного голосового движка Pico TTS, голосовой движок Google это не затронет;
- /system/usr/srec/config/ — офлайн-языки. Можно будет скачать потом онлайн, если понадобится.
Изменяем звуковое оформление
Фактически все звуки, которые воспроизводит система, хранятся в папке /system/media/audio . Внутри нее ты найдешь следующие папки:
- alarms — мелодии будильника;
- notifications — звуки уведомлений;
- ringtones — мелодии звонка;
- ui — системные звуки, например низкий заряд батареи, фокусировка камеры, выбор элементов интерфейса.
В alarms, notifications, ringtones можно накидать сколько угодно любых мелодий. Взять их можно, например, здесь:
И маленький лайфхак: удаление файлов из папки ui приведет не к сбоям и ошибкам, а к исчезновению системных звуков. Поэтому ты можешь легко отключить звук создания снимка с камеры, снятия скриншота, просто потерев содержащие эти звуки файлы (их имена интуитивно понятны).
Меняем системные настройки (build.prop)
В образе system есть интересный файлик build.prop , содержащий множество полезной информации о железе устройства и настройках, устанавливаемых по умолчанию, для различных стоковых приложений. Справедливости ради замечу, что это не всегда так. Например, в Gigaset ME и ME Pro build.prop разделен на две части. В одной части содержатся настройки для Gigaset ME, а для ME Pro некоторые строки продублированы, но ключи (название смартфона и так далее) в них другие. Это было сделано, чтобы обеспечить более-менее корректную работоспособность одной и той же прошивки на разных аппаратах.
Дополнительный файл для Gigaset ME и ME Pro
Build.prop содержит (или может содержать) огромное количество настроек. Некоторые из них ничего не меняют, некоторые улучшают одно за счет ухудшения другого, но есть те, которые действительно полезны:
- ro.product.model и ro.product.manufacturer — модель смартфона и имя производителя. С помощью замены этих строк можно заставить Play Store думать, будто у тебя другой смартфон, что откроет доступ к большему количеству софта. Для всяких малоизвестных китайских смартфонов эти строчки могут стать спасительными;
- hw.qemu.mainkeys — принимает только два значения: 0 — показать наэкранные клавиши навигации, 1 — не показывать кнопки. Отсутствие строки соответствует 0;
- debug.sf.nobootanimation — значение 1 отключает анимацию загрузки, что немного поднимает ее скорость. Установка 0 или удаление строки возвращает анимацию на место;
- ro.telephony.default_network — говорит системе, в какой режим должна быть переключена мобильная сеть при загрузке;
- ro.sf.lcd_density — DPI дисплея, наиболее точное значение для дисплея можно посчитать через удобный сайт. Но никто не запрещает поставить и большее или меньшее значение по своему вкусу: более высокие значения делают элементы интерфейса крупнее, низкие — меньше;
- ro.config.vc_call_vol_steps — количество шагов громкости во время разговора (по умолчанию 8);
- ro.config.media_vol_steps — количество шагов громкости мультимедиа (по умолчанию 15).
Внедряем в прошивку Google Apps
Почти всегда кастомные прошивки поставляются без сервисов Google и магазина приложений. Разработчики предлагают нам установить их отдельно с помощью пакета GApps. Однако его можно интегрировать прямо в прошивку.
Для начала необходимо скачать пакет GApps. Я рекомендую брать архивы Open GApps. Выбираешь версию Android, архитектуру процессора и вариант комплектации (Pico, Nano, Stock. ), который определяет, сколько различных приложений Google содержит архив. Я рекомендую скачать версию Pico. Она содержит только Play Store и набор необходимых для его работы библиотек.
Интеграция GApps в прошивку выполняется так:
- Распаковываем ZIP-архив GApps с помощью любого архиватора.
- Переходим в папку Core.
- Видим множество архивов с расширением .tar.lz . Извлекаем с помощью lzip.
- После распаковки копируем файлы из папок в соответствующие папки в system. Что куда кидать, нетрудно догадаться по структуре каталогов в архиве. Например, configupdater (со скриншота) нужно кидать в папку priv-app .
- Переходим в папку GApps (находится рядом с Core) и проделываем пункты 3 и 4 для файлов в ней.
- Все, мы интегрировали GApps в нашу прошивку!
Читайте также: