Что такое кастомные файлы
Покупаешь новый смартфон и ходишь радостный пока опять новый кастом не накатил. Он и работает шустро, и игрушки идут лучше, уж побыстрее стока, но тут прилетело OTA, ядро новое вышло, да и Magisk обновился уже — пора ставить апдейты и получать “бутлупы”. Да, от общего числа пользователей Android смартфонов доля тех, кто сидит на кастомах крайне мала. Однако, всё же людям приходят в голову странные мысли по типу: “А не прошить бы мне свой Xiaomi, что б летал как ракета”. По такому случаю статья, в которой рассказывается про кастомные Android прошивки от А до Я.
4. Заключение
В этой статье мы рассмотрели два типа конфигурационных файлов, которые используются в Linux, и узнали, где их найти.
Кроме того, заглянули в наиболее распространённые папки для хранения конфигурационных файлов и выяснили, как более старые и новые приложения работают с пользовательскими настройками.
Поскольку ОС Linux не налагает ограничений на эти конфигурационные файлы, их синтаксис может быть самым разным. Но если взять на себя труд и хоть немного в них разобраться, знание конфигурационных файлов освобождает от ограничений пользовательских интерфейсов, предназначенных для новичков.
2.1. /etc/
Большинство глобальных файлов конфигурации хранится в папке /etc .
Папка /etc/ больше походит на файловую систему с множеством подпапок, в которых размещены соответствующие конфигурационные файлы.
Ниже приведён список наиболее полезных подпапок:
Зачем же нужны кастомные прошивки?
Простому пользователю — незачем. Если хочется поиздеваться над устройством, либо наоборот преобразить его с помощью новоиспечённого кастома на последней версии Android и перевернуть в нём всё, чтобы сделать так, как хочется — это ваше. Когда человек ставит кастом, он берёт ответственность за работоспособность девайса полностью на себя, и в случае, если вдруг что-то пойдёт не так, а вы не сможете починить свой смартфон, то, это уже будет ваше личное дело. Скорее всего ваш случай не попадёт под гарантийный, даже если сломалась аппаратная часть смартфона. Придётся как минимум заставлять СЦ проводить нормальную диагностику, чтобы исключить самую тупую причину поломки: кастом. Также, почти любую софтовую поломку во время прошивки можно устранить в домашних условиях, не прибегая к помощи работников сервисного центра. Так что если кто надумал шиться, знайте: кирпич это не так страшно. В любом случае в интернете есть огромное колличество гайдов "как и что в случае чего".
Рассматривая использование на повседневной основе кастомной прошивки, созданной хорошим сборщиком, можно ощутить высокую плавность и скорость работы пользовательского интерфеса в сравнении со стоковой прошивкой. Прирост производительности в играх и повышение автономности также обеспечены. Вполне возможно улучшение качества звучания, фото и видео съёмки смартфона. Если не из основного, то кастомы часто имеют последние патчи безопасности и обновления системы, которые повышают стабильность и скорость работы устройства. Также, в зависимости от прошивки появляются возможности кастомизации, которых не было в стоке.
2.3. /etc/default/
Исторически конфигурационные файлы в папке /etc/default/ содержали настройки сервисов/программ-демонов для их использования с системами инициализации, например upstart. Однако с появлением systemd эта папка стала использоваться в основном для настроек приложений пользовательского пространства.
Система не перезаписывает файлы в папке /etc/default/ . А значит, как только мы настроили там поведение приложений, оно не изменится при обновлении системы.
Установка пользовательского контента
У нас здесь находятся два объекта:
Давайте прочитаем, что добрые тыжпрограммисты нам написали в readme:
Старый добрый потраченный машинный перевод от сидоджи:
Эта папка автоматически сканируется, когда игра загружает для файлы VPK или
вложенные папки. Каждая подпапка или VPK добавляется в качестве пути поиска, поэтому файлы, у которых пути в VPK совпадают, будут заменены на кастомные.Подробнее см. В файле gameinfo.txt.
Например, у вас может быть следующая файловая структура:
Cstrike/custom/my_custom_stuff/ CStrike/custom/my_custom_stuff/models/custom_model.mdl
CStrike/custom/my_custom_stuff/materials/custom_material.vmt
CStrike/custom/my_custom_stuff/materials/VGUI/custom_ui_thing.res
Cstrike/custom/some_mod.vpk Cstrike/custom/another_mod.vpkУстановка VPK в файловую систему более эффективна, потому что каждый раз, когда движок обращается к распакованному пользовательскому контенту, он тратит на это больше времени, а на VPK тратит меньше времени
Каждая подпапка представляет собой отдельный путь для подгрузки файлов
И не делайте никаких подпапок в этой папке кроме игровых!Обратите внимание, что следующая структура каталогов неверна:
CStrike/custom/models/my_model.mdl
Это добавит каталог «CStrike/custom/models/» в качестве пути подгрузки, и файл будет находиться в корне этого пути, а не в папке, поэтому движок его не увидит.
Что я могу из этого вывести:
В папке “custom” могут находиться как распакованные пользовательские файлы, так и VPK-массивы или отдельные архивы.
Чтобы запихать распакованный контент в игру, вам необходимо указать движку, где искать те или иные папки. Чтобы это сделать, необходимо в корне кастома создать папку и дать ей название на инглише, иначе движок не увидит ваши модельки (Папка my_custom_stuff сделана для примера, чтоб было понятней). В эту папку необходимо впихать все кастомные файлы, которые относятся именно к этой папке, например так:
╠╦Custom
║╚╦CSGOawp
║─╠╦materials
║─║╚╦models
║─║─╚╦Weapons
║─║──╠v_awp.vtf
║─║──╚v_awp.vmt
║─╚╦models
║──╚╦weapons
║───╚v_awp.mdl
║
Сложно, правда?
С VPK дела обстоят гораздо лучше, ибо там необходимо просто поместить VPK архив/масив в папку таким образом:
╠╦Custom
║╚═CSGOtextures.vpk
║
Или так:
╠╦Custom
║╠═CSGOtextures_001.vpk
║╠═CSGOtextures_002.vpk
║╠═CSGOtextures_003.vpk
║╠═CSGOtextures_004.vpk
║╠═CSGOtextures_005.vpk
║╠═CSGOtextures_006.vpk
║╠═CSGOtextures_dir.vpk
║
Если у тебя всё правильно получится, то должно всё это выглядеть примерно так:
Прочитав всё это, читатель, я надеюсь ты понял, как и куда нужно пихать эти ваши кастомные скины и модельки, а на этом всё :3
Для начала давайте разберемся, что такое VPK.
VPK (Valve Pack file) - формат игровых архивов, пришедщий на замену GCF, как более быстрый и экономный в отношении дискового пространства формат.
После выхода Steam встал вопрос: "А где мы будем хранить файлы игр?". Ответом на него стали файлы GCF, которые представляли из себя некое подобие файловой системы с своими определенными разделами и папками. После пуска Steam Community встал еще один вопрос: "А что если на пекарне играет не один школьник, а еще его батя, причем на другом аккаунте?" аки: "А что если на ПК есть несколько Steam-аккаунтов?". Ахиллесовой пятой формата GCF было отсутствие поддержки многопользовательского режима, то есть, на два аккаунта Steam скачивались две копии игры, и места на диске становилось в два раза меньше. Выглядело это так:
Чувствуете? Пахнет жаренными винчестерами!
В связи с этим, VALVe были вынуждены разработать новый формат, который поддерживает многопользовательский режим Steam, занимая в 2 раза меньше места. Так и был разработан формат VPK. Также триггером на разработку нового формата стали текстурные wallhack-читы.
Интересно, что VPK имеет схожее строение с GCF.
После обновления, если игра куплена на обоих аккаунтах, путь до неё будет выглядеть так:
Формат VPK представляет из себя некое подобие виртуальной файловой системы.
Архивы, в которых хранятся игровые файлы, имеют окончание "_xxx" (xxx - номер по порядку, 001, 002 и т. д.).
"Управляющий" архив имеет окончание _dir, и вся VPK-система грузится через него.
VPK могут работать и по отдельности, как это делается создателями кастомного контента, в этом случае просто не надо добавлять никаких приставок.
Поскольку в VPK все файлы содержатся в несжатом виде, а только для систематизации, для кастома можно пользовать и распакованный контент.
Распакованный контент, это тот же VPK, только без пихания всех файлов в архивы.
Распакованный контент - все материалы, модели, звуки, ресурсы, кэш-файлы, скайбоксы, карты, которые не запакованы в VPK и скачиваются отдельно в одну из папок контента игры (hl2 или cstrike).
Собственно, о распакованном контенте сказать нечего, это просто все игровые файлы.
В GoldSrc заменой папке "custom" была папка "mod_addon", и в настройках можно было включить поддержку кастомного контента, однако не все администраторы были этим довольны и начали запрещать кастомный контент на своих серверах, самым лучшим способом был кик. Недавно я нашел лазейку, позволяющую обойти ограничениена кастомные текстуры: это папка "mod_hd". Движок был устроен таким образом, что проверяя, если ли кастомный контент в _addon папке, он в упор не видит _hd папки, и отправляя данные на сервер, про _hd не "говорит" вообще. Такми образом, если перекинуть из _addon папки в _hd папку все ваши модели, вас не кикнут за кастомный контент. В Source ситуация кардинально поменялась, ведь теперь движок не поддерживает _hd папок вообще, а поэтому кастомный контент можно запихать только в папку custom, а если менять их в VPK, то словите VAC. Также на сервере появилась возможность намертво запретить кастомный контент, используя всего одну консольную команду sv_pure.
sv_pure 0 //Позволяет клиенту менять местоположение ЛЮБОГО игрового файла. Клиент может использовать модифицированные файлы для получения нечестного преимущества, делая такие вещи, как замена моделей игроков на более заметные, делать стены невидимыми, ставить маяки на C4, и т.п. VAC не защищает от таких эксплойтов, так как они не меняют сам процесс игры, и позволяет серверу решать, что могут делать клиенты. sv_pure 1 //Разрешает использовать только содержимое из белого списка (списка разрешенного контента). По умолчанию белый список разрешает ставить пользовательские модели и любые потенциальные эксплойты такие, как яркие скины. sv_pure 2 //Принуждает клиента игнорировать ВЕСЬ пользовательский контент и заставляет пользоваться информацией, полученной от Steam. Sv_pure 2 также запретит использование пользовательского контента и пользовательских спреев.
Я думаю, читатель, ты уже всё понял, папка "custom" предназначена для внедрения в игру пользовательского контента, не влияющего на игровой процесс и работу движка. Причем сея папка может использоваться в не совсем благоприятных целях, таких как текстурный walhack (Прозрачные текстуры).
This folder is automatically scanned when the game boots for VPK files or
subfolders. Each subfolder or VPK is added as a search path, so the files
inside those VPK's or subfolders will overide the default game files.
See gameinfo.txt for more details.
cstrike/custom/my_custom_stuff/ cstrike/custom/my_custom_stuff/models/custom_model.mdl
cstrike/custom/my_custom_stuff/materials/custom_material.vmt
cstrike/custom/my_custom_stuff/materials/vgui/custom_ui_thing.res
cstrike/custom/some_mod.vpk cstrike/custom/another_mod.vpk
Mounting a VPK to the filesystem is more efficient that adding a subfolder,
because each time the engine neds to open a file, it will need to make a call to the
operating system call to search the folder. VPKs can be searched by the engine much
more efficiently. Each subfolder is a new search path that must be checked each
time the engine tries to open a file. So for optimal load times, always use VPK files
and don't make any subfolders in this folder!
Note that the following directory structure is NOT correct:
That will add the directory "cstrike/custom/models" as a search path, in which case the
file my_model.mdl actually exists at the root of the game's virtual filesystem.
Эта папка автоматически сканируется, когда игра загружает для файлы VPK или
вложенные папки. Каждая подпапка или VPK добавляется в качестве пути поиска, поэтому файлы, у которых пути в VPK совпадают, будут заменены на кастомные.
Подробнее см. В файле gameinfo.txt.
Например, у вас может быть следующая файловая структура:
Cstrike/custom/my_custom_stuff/ CStrike/custom/my_custom_stuff/models/custom_model.mdl
CStrike/custom/my_custom_stuff/materials/custom_material.vmt
CStrike/custom/my_custom_stuff/materials/VGUI/custom_ui_thing.res
Cstrike/custom/some_mod.vpk Cstrike/custom/another_mod.vpk
Установка VPK в файловую систему более эффективна, потому что каждый раз, когда движок обращается к распакованному пользовательскому контенту, он тратит на это больше времени, а на VPK тратит меньше времени
Каждая подпапка представляет собой отдельный путь для подгрузки файлов
И не делайте никаких подпапок в этой папке кроме игровых!
Обратите внимание, что следующая структура каталогов неверна:
Это добавит каталог «CStrike/custom/models/» в качестве пути подгрузки, и файл будет находиться в корне этого пути, а не в папке, поэтому движок его не увидит.
В папке "custom" могут находиться как распакованные пользовательские файлы, так и VPK-массивы или отдельные архивы.
Чтобы запихать распакованный контент в игру, вам необходимо указать движку, где искать те или иные папки. Чтобы это сделать, необходимо в корне кастома создать папку и дать ей название на инглише, иначе движок не увидит ваши модельки (Папка my_custom_stuff сделана для примера, чтоб было понятней). В эту папку необходимо впихать все кастомные файлы, которые относятся именно к этой папке, например так:
╠╦Custom
║╚╦CSGOawp
║─╠╦materials
║─║╚╦models
║─║─╚╦Weapons
║─║──╠v_awp.vtf
║─║──╚v_awp.vmt
║─╚╦models
║──╚╦weapons
║───╚v_awp.mdl
║
Сложно, правда?
С VPK дела обстоят гораздо лучше, ибо там необходимо просто поместить VPK архив/масив в папку таким образом:
╠╦Custom
║╚═CSGOtextures.vpk
║
Если у тебя всё правильно получится, то должно всё это выглядеть примерно так:
Прочитав всё это, читатель, я надеюсь ты понял, как и куда нужно пихать эти ваши кастомные скины и модельки, а на этом всё :3
Custom error page — A custom error page is a feature of most Web server software that allows you to replace default error messages with ones you create. The default error messages tend to be fairly generic, and not particularly user friendly, so making custom… … Wikipedia
Custom Form Elements — Entwickler: Mediavrog Aktuelle Version: 0.8.2 Betriebssystem: plattformunabhängig Kategorie … Deutsch Wikipedia
custom-made — ˌcustom ˈmade adjective MANUFACTURING designed or built specially for a particular customer, and being .different to other things of the same kind: • custom made furniture * * * custom made UK US adjective ( also custom built) ► PRODUCTION made… … Financial and business terms
Custom-Fit — Customization is a broad term which could be defined as tailor made. To this respect, mass customization could be defined as a massive personalization or personalization for everybody.In the development of the term, a customized product would… … Wikipedia
Managed File Transfer — (MFT) In simplest terms, Managed File Transfer (MFT) refers to software and hardware technologies that enable secure and reliable exchange of documents between organizations. [Schroth, C: Loosening the Hierarchy of Cross Company Electronic… … Wikipedia
Office Open XML file formats — Main article: Office Open XML Office Open XML Office Open XML file formats Open Packaging Conventions Open Specification Promise Vector Markup Language Office Open XML software Comparison of Office Open XML software Office Open XML… … Wikipedia
Comparison of file systems — The following tables compare general and technical information for a number of file systems. Contents 1 General information 2 Limits 3 Metadata 4 Features … Wikipedia
Hosts file — The hosts file is a computer file used to store information on where to find a node on a computer network. This file maps hostnames to IP addresses. The hosts file is used as a supplement to (or instead of) the domain name system on networks of… … Wikipedia
ICO (file format) — ICO Filename extension .ico Internet media type image/vnd.microsoft.icon Uniform Type Identifier com.microsoft.ico Developed by Microsoft Type of format … Wikipedia
Amiga Disk File — aka ADF is a file format used by Amiga computers and emulators to store images of disks. It has been around almost as long as the Amiga itself, although it was not initially called by any particular name. Before it was known as ADF, it was used… … Wikipedia
List of file formats — This is an incomplete list, which may never be able to satisfy particular standards for completeness. You can help by expanding it with reliably sourced entries. See also: List of file formats (alphabetical) This is a list of file formats… … Wikipedia
Мощность ОС Linux кроется в возможности гибко настраивать систему под наши потребности. Большинство дистрибутивов содержат продвинутые пользовательские интерфейсы для конфигурации системы, однако, по сути, они лишь редактируют текстовые файлы в различных системных папках. Понимая, как работают конфигурационные файлы, мы можем отказаться от этих интерфейсов и повысить свой уровень владения Linux.
Из этого руководства вы узнаете, где файлы конфигурации расположены и каковы их функции. Благодаря стандарту иерархии файловой системы (Filesystem Hierarchy Standard) папки и файлы, которые мы рассмотрим, сохраняют своё расположение даже в разных дистрибутивах.
Прим. переводчика:
Прежде чем двигаться дальше, следует разобраться, как устроена файловая система согласно стандарту FHS.
Все файлы и каталоги располагаются в корневой директории «/» . Даже если эти данные находятся на различных носителях, какие-то из этих каталогов присутствуют, а какие-то могут отсутствовать. В качестве примера можно привести каталоги, связанные с подсистемой X Window, когда каталогов может и не быть, если графическая подсистема не установлена. Однако, большинство каталогов присутствует на всех UNIX-подобных операционных системах и используется аналогичным образом.
Раздел | Корневая директория, содержащая всю файловую иерархию |
---|---|
/bin/ | Утилиты, которые доступны всем пользователям, такие как cat, ls, cp и др. |
/boot/ | Загрузочные файлы (файлы загрузчика, ядро, initrd, System.map). Как правило, выносится на отдельный раздел. |
/dev/ | Файлы устройств. Файлы в данном каталоге обычно создаются драйверами (например, /dev/null, /dev/zero, /dev/sda1). |
/etc/ | Основной каталог конфигурационных файлов системы. |
/home/ | Домашние директории с пользовательскими данными. Могут быть на отдельном разделе либо монтироваться по nfs. |
/lib/ | Основные библиотеки, необходимые для работы программ из /bin/ и /sbin/. |
/media/ | Точки монтирования для сменных носителей, таких как CD-ROM, DVD-ROM, флеш-карты. |
/mnt/ | Используется для монтирования временных файловых систем. |
/opt/ | Дополнительное программное обеспечение. Сюда обычно устанавливаются различные компиляторы и пользовательское ПО, которое не требует соответствия FSHS |
/proc/ | Виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде файлов. |
/root/ | Домашняя директория пользователя root. |
/sbin/ | Основные системные программы для администрирования и настройки системы (например, init, iptables, ifconfig). |
/srv/ | Данные, специфичные для окружения системы. |
/tmp/ | Временные файлы. |
/usr / | Вторичная иерархия для данных пользователя, содержит большинство пользовательских приложений и утилит. |
/usr/bin/ | Дополнительные программы для всех пользователей, не являющиеся необходимыми в однопользовательском режиме. При различных решениях может монтироваться отдельно. |
/usr/include/ | Стандартные заголовочные файлы. |
/usr/lib/ | Библиотеки для программ, находящихся в /usr/bin/ и /usr/sbin/. |
/usr/sbin/ | Дополнительные системные программы (такие как демоны различных сетевых сервисов). |
/usr/share/ | Архитектурно-независимые общие данные. |
/usr/src/ | Исходные коды ядра. |
/usr/local/ | Третичная иерархия для данных, специфичных для данного хоста. Обычно содержит такие поддиректории, как bin/, lib/, share/. |
/var/ | Изменяемые файлы, такие как файлы регистрации (log-файлы), временные почтовые файлы, файлы спулеров. |
/var/lock/ | Лок-файлы, указывающие на занятость некоторого ресурса. |
/var/log/ | Различные log-файлы. |
/var/mail/ | Почтовые ящики пользователей. |
/var/run/ | Информация о запущенных программах (в основном о демонах). |
/var/spool/ | Задачи, ожидающие обработки (например, очереди печати, непрочитанные или неотправленные письма). |
/var/tmp/ | Временные файлы, которые должны быть сохранены между перезагрузками. |
Более детально можно почитать, например,тут.
Выводы: нужно оно нам, или нет
Для начала придётся немного пострадать, а там уже опыт наберётся и можно будет шиться без гайдов и фиксить любую проблему самому. Получение удовольствия от использования своего смартфона станет не таким редким явлением. Захотели себе что-то особенное и лучше чем сток? Готовы уделять этому время? Форумы с прошивками вас ждут. "Кастом будет всегда лучше любого стока" — эта фраза будет иметь смысл только в том случае, если прошивка хорошо собрана, имеет ядро с различными оптимизациями и почищена от мусорных приложений. Тут дело уже не во вкусах, а в том, как на самом деле.
Доброго времени суток, сегодня поговорим о пользовательском контенте: что он из себя представляет, как его устанавливать, что такое папка custom, VPK и распакованный контент.
2.4. Важные глобальные файлы конфигурации
Вот несколько наиболее полезных глобальных файлов конфигурации:
Что такое папка “custom”
В GoldSrc заменой папке “custom” была папка “mod_addon”, и в настройках можно было включить поддержку кастомного контента, однако не все администраторы были этим довольны и начали запрещать кастомный контент на своих серверах, самым лучшим способом был кик. Недавно я нашел лазейку, позволяющую обойти ограничениена кастомные текстуры: это папка “mod_hd”. Движок был устроен таким образом, что проверяя, если ли кастомный контент в _addon папке, он в упор не видит _hd папки, и отправляя данные на сервер, про _hd не “говорит” вообще. Такми образом, если перекинуть из _addon папки в _hd папку все ваши модели, вас не кикнут за кастомный контент. В Source ситуация кардинально поменялась, ведь теперь движок не поддерживает _hd папок вообще, а поэтому кастомный контент можно запихать только в папку custom, а если менять их в VPK, то словите VAC. Также на сервере появилась возможность намертво запретить кастомный контент, используя всего одну консольную команду sv_pure.
sv_pure 0 //Позволяет клиенту менять местоположение ЛЮБОГО игрового файла. Клиент может использовать модифицированные файлы для получения нечестного преимущества, делая такие вещи, как замена моделей игроков на более заметные, делать стены невидимыми, ставить маяки на C4, и т.п. VAC не защищает от таких эксплойтов, так как они не меняют сам процесс игры, и позволяет серверу решать, что могут делать клиенты. sv_pure 1 //Разрешает использовать только содержимое из белого списка (списка разрешенного контента). По умолчанию белый список разрешает ставить пользовательские модели и любые потенциальные эксплойты такие, как яркие скины. sv_pure 2 //Принуждает клиента игнорировать ВЕСЬ пользовательский контент и заставляет пользоваться информацией, полученной от Steam. Sv_pure 2 также запретит использование пользовательского контента и пользовательских спреев.
Я думаю, читатель, ты уже всё понял, папка “custom” предназначена для внедрения в игру пользовательского контента, не влияющего на игровой процесс и работу движка. Причем сея папка может использоваться в не совсем благоприятных целях, таких как текстурный walhack (Прозрачные текстуры).
3.2. Конфигурационные файлы, соответствующие стандарту XDG
По стандарту XDG все файлы пользовательской конфигурации хранятся в папке $XDG_CONFIG_HOME (обычно в /home/(username)/.config ).
Внутри $XDG_CONFIG_HOME каждое приложение создаёт свои подпапки для конфигурационных файлов.
Базовой спецификации каталогов XDG теперь придерживаются редактор NeoVim и многие активно развивающиеся приложения. Для пользователей стандарт тоже удобен: одной резервной копии папки $XDG_CONFIG_HOME достаточно, чтобы сохранить все настройки.
Проблемы при установке прошивки
Ошибки могут быть разные, но решаются по одному и тому же алгоритму. Если TWRP выдаёт ошибку, то:
Проверить какую прошивку вы ставите. Всякое бывает, можно и не свою скачать случайно.
Перечитать инструкцию если таковая есть, вдруг что-то пропустили.
Перекачать установочный zip с прошивкой (он может быть битый).
Если 1-2-3 не сработали, то проводим очистку разделов и форматируем Data.
Крайний случай: прошиваем стоковой прошивкой через фирменный прошивальщик.
Только при наличии программатора и умения с ним работать: шьём через него сток (может решить проблему, если не помог обычный прошивальщик)
Пробуем восстановить смартфон по индивидуальной для каждого инструкции "Восстановление из кирпича", которая ищется в теме своего устройства.
Если совсем никак, скорее всего проблема в железе. Поэтому остаётся только вариант сервисного центра.
Все проблемы, которые могут возникнуть в рабочей системе решаются установкой "Фикса от Васяна", сменой ядра, либо установкой другого кастома.
Если вы уже решили заняться этим делом, то ищите и пытайтесь пофиксить, а ещё лучше показать остальным как вы решили свою проблему, если решения до вас не было.
3.1. Традиционные файлы конфигурации
Как правило, если у приложения всего один файл конфигурации, его можно найти так: /home/(username)/.(app_name) . Но если конфигурационных файлов больше, то они хранятся в папке /home/(username)/.(app_name) .
Наглядный пример такого приложения — редактор vim .
Процесс установки прошивки и разделы накопителя
Итак, вот мы и подошли к самому главному: установка. Это универсальная инструкция для всех смартфонов, которая будет работать при установке большей части прошивок. Но, на некоторых устройствах могут быть свои особенности установки, которые нужно уточнять в источнике откуда берёте прошивку. Обращать внимание на нюансы действительно очень важно, так как если шить "как захотел", то в лучшем случае можно получить "бутлуп", а в худшем будет "кирпич". Все манипуляции должны производится на уже разблокированном загрузчике. Разблокировка осуществляется с помощью софта от производителя смартфона, либо командами Fastboot. За подробностями — в тему своего устройства.
При подготовке скачиваем всё, что необходимо для установки прошивки: нужное TWRP, последний Firmware (если имеется на ваш смартфон), сама прошивка, кастомное ядро (вдруг нужно), патчи и фиксы (при надобности), по желанию GAPPS (Google Apps), дешифратор (снятие шифрования Data) и Magisk (Root-права). После того, как всё скачалось, лучшим вариантом будет перекинуть все эти файлы на флешку, чтобы шиться с неё. Из всего выше перечисленного для установки прошивки нужно только TWRP и сама прошивка, но, чаще всего люди шьют и всё остальное, поэтому вот последовательность, которая включает в себя самую обычную установку прошивки.
Ставим TWRP на свой смартфон:
TWRP - модифицированная версия Recovery (режим восстановления), в котором мы и будем производить все манипуляции. Для этого достаточно установить драйвера для своего устройства на компьютер и прошить образ нужного TWRP в раздел "Recovery" (если не грузиться, то и в Boot) через специальную утилиту в зависимости от платформы процессора смартфона: MediaTek или Qualcomm (SPFlashTool или Minimal ADB and Fastboot). Выбирайте TWRP на вкус и цвет, главное чтобы работало. Если TWRP уже установлен, сразу начинаем со второго пункта.
Очистка разделов смартфона:
Основные разделы смартфона, которые видно в TWRP:
Dalvik / ART Cache — кэш виртуальных машин Dalvik / ART.
Cache — системный кэш.
Data — раздел с данными системы и всех установленных в ней программ.
System — сама система. Те же GSI-образы устанавливаются именно в этот раздел.
Vendor — бинарники, конфиги, библиотеки. В общем всё, что запихнул производитель в смартфон, для нормальной его работы.
Внутренняя память — она у вас на главной странице в проводнике. Созданные или скачанные вами файлы.
Micro SDCard — точка монтирования карты памяти (флеш-память).
USB OTG — точка монтирования флешки, либо харда, подключенных по OTG-кабелю.
Заходим в TWRP той комбинацией клавиш смартфона, которой заходят в режим Recovery и производим очистку смартфона, чтобы кастом шился на чистый накопитель. Для этого в TWRP ищём пункт связанный с очисткой и заходим в него. Там же мы наблюдаем разделы смартфона и галочки рядом с ними. Нам нужно поставить галки напротив разделов Dalvik / ART Cache, Cache, Data, System, Vendor (необязательно), Внутренняя память, но не ставить на Micro SDCard и USB OTG, которые указывают на SD-карту, либо OTG-накопитель, в зависимости от того, где у вас лежат файлы для прошивки. После мы просто проводим свайп для очистки разделов (вы потеряете все данные на смартфоне). Далее нам нужно отформатировать DATA-раздел. Делается это там же в меню очистки с введением подтверждения в виде слова "yes". После успешного форматирования DATA-раздела нам нужно сделать перезапуск в TWRP. Зачем? Это может быть необходимо, для правильного определения разделов самим TWRP во избежание ошибок при установке прошивки. Также, существует вариант OTA-обновления: установка прошивки как обновления уже существующей, без форматирования памяти.
Грузимся обратно в TWRP и приступаем к установке:
Выбираем накопитель на котором лежат необходимые файлы и ставим всё в такой последовательности:
Прошивка (Система, которую ставим)
Перезагрузка в TWRP (По причине, описанной выше)
Перезагрузка в TWRP
Необходимые патчи / фиксы
GAPPS (Google Services)
DFE (Отключение шифрования)
Magisk (Root права)
Перезагрузка в систему и дальнейшая её настройка на ваш вкус.
Составляющих в последовательности установки может быть и меньше. Как я уже сказал, достаточно в TWRP установить лишь прошивку и если ей ничего более не нужно, то она запустится и будет работать.
3.3. Важные файлы пользовательской конфигурации
Среди наиболее часто используемых файлов пользовательской конфигурации следует перечислить:
- $HOME/.xinitrc — в нём содержатся указания о запуске менеджера окон при работе с командой startx;
- $HOME/.vimrc — конфигурация vim;
- $HOME/.bashrc — скрипт, который выполняет командная оболочка bash , когда пользователь запускает командную оболочку без регистрации;
- $XDG_CONFIG_HOME/nvim/init.vim — конфигурация редактора neovim;
- $HOME/.editor — задаёт редактор по умолчанию для данного пользователя;
- $HOME/.gitconfig — в файле указывается имя по умолчанию и адрес электронной почты для указания в коммитах Git;
- $HOME/.profile — командная оболочка с регистрацией выполняет команды из скрипта .profile при запуске;
- $HOME/.ssh/config — конфигурация ssh для конкретного пользователя.
Кастомные прошивки и их классификация
Что же из себя представляет кастомная Android-прошивка? Это система, к созданию которой причастны сторонние разработчики, то есть любая неофициальная прошивка. В большинстве случаев отличительными чертами подобных прошивок является иная оболочка, модифицированное ядро системы, широкая кастомизация и много разных плюшек, которых нет в официальных Android прошивках, созданных компанией-производителем. Чаще всего такие прошивки работают быстрее официальных, но реже они работают стабильнее. Существует огромное множество кастомов, которые делятся на виды, изучением которых мы сейчас и займёмся.
Вот основые вариации Android-прошивок:
Официальная от производителя (стоковая)
Кастомная, собранная из исходников
А теперь про каждую поподробнее. Официальная прошивка от производителя установлена в смартфоне с завода: то есть вы покупаете телефон именно с ней. Её делал отдел компании-производителя, который отвечает за программное обеспечение своих устройств. Также, любая уважающая себя компания, предоставляет исходный код прошивки, которую они создали, те самые исходники. Далее по списку кастомная прошивка, собранная из исходников — та, которую собирали сторонние разработчики. Такая прошивка является модифицированной и может включать в себя всевозмножные улучшения и кастомизации, которых не было в официальной. Следующая у нас GSI-прошивка — отличается от двух предыдущих тем, что при её установке не затрагивается раздел Vendor, так как GSI-образ это и есть образ системы. Работают эти GSI прошивки куда медленнее и менее стабильно, чем собранные из исходников. Ну и последняя — порт прошивки с другого девайса. Это прошивка, полностью перенесённая с иного устройства и изменённая для работы на конкретном смартфоне. По большей части это самые багованные прошивки, так как система не просто не родная, она ещё и содрана с другого устройства. Но их используют: к примеру те же любители фирменных оболочек различных устройств. Существует огромное колличество портированных прошивок со смартфонов OnePlus с их оболочкой OxygenOS, которая многим приходится по душе.
Мы будем рассматривать именно те кастомы, которые собираются из исходного кода. На это есть ряд причин, а именно: такие прошивки работают быстрее остальных, они стабильнее и представляют из себя полноценную замену стоковой, так как собирались под конкретный девайс, а не имеют лишь образ System как GSI и не являются портированными. Естественно, не без учёта качества сборки. На данный момент кастомы имеют широкое распространение среди многих моделей различных брендов, также, само сообщество создателей кастомов постоянно растёт и развивается, поэтому найти стабильно работающую прошивку по свой смартфон не представляет особой трудности.
Существует классификация прошивок, показывающая, на основе какого исходного кода взята база для сборки:
AOSP — Android Open Source Project. Представляет из себя абсолютно голую систему Android, на которую в последующем "навешивают" оболочки, по типу One UI, MIUI, OxygenOS и так далее. Даже в сматфонах Google Pixel не AOSP, в них установлена собственная оболочка.
CAF — Code Aurora Forum. Проект Linux Foundation, который содержит программный код для прошивок смартфонов на базе процессоров Qualcomm. Прошивки, которые базируются на CAF-тегах могут быть не самыми стабильными, но за счёт последних версий драйверов они имеют ряд приемуществ: лучшая производительность, более высокая скорость интернет соединения, хорошая автономность и улучшенное качество звучание.
LineageOS — кастом, на котором базируются многие другие кастомы, вроде CRdroid, Resurrection Remix и им подобные. Изначально был CyanogenMod: именно он был на слуху, да и развивался постоянно. Позже переименовался в LineageOS. В какой-то момент в AOSP было внесено столько изменений разработчиками линейки, что её начали использовать как базу для других прошивок.
2. Глобальные файлы конфигурации
Глобальные файлы конфигурации определяют поведение системы в целом .
Как правило, они располагаются в корневом разделе диска ( / ), а доступ к ним требует прав суперпользователя.
Справедливости ради, стоит заметить, что согласно стандарту FHS конфигурационные файлы не хранятся в корневой директории, она пустая и содержит в себе только папки.
Что такое VPK и распакованный контент
Для начала давайте разберемся, что такое VPK.
VPK (Valve Pack file) – формат игровых архивов, пришедщий на замену GCF, как более быстрый и экономный в отношении дискового пространства формат.
После выхода Steam встал вопрос: “А где мы будем хранить файлы игр?”. Ответом на него стали файлы GCF, которые представляли из себя некое подобие файловой системы с своими определенными разделами и папками. После пуска Steam Community встал еще один вопрос: “А что если на пекарне играет не один школьник, а еще его батя, причем на другом аккаунте?” аки: “А что если на ПК есть несколько Steam-аккаунтов?”. Ахиллесовой пятой формата GCF было отсутствие поддержки многопользовательского режима, то есть, на два аккаунта Steam скачивались две копии игры, и места на диске становилось в два раза меньше. Выглядело это так:
Чувствуете? Пахнет жаренными винчестерами!
В связи с этим, VALVe были вынуждены разработать новый формат, который поддерживает многопользовательский режим Steam, занимая в 2 раза меньше места. Так и был разработан формат VPK. Также триггером на разработку нового формата стали текстурные wallhack-читы.
Интересно, что VPK имеет схожее строение с GCF.
После обновления, если игра куплена на обоих аккаунтах, путь до неё будет выглядеть так:
Формат VPK представляет из себя некое подобие виртуальной файловой системы.
Архивы, в которых хранятся игровые файлы, имеют окончание “_xxx” (xxx – номер по порядку, 001, 002 и т. д.).
“Управляющий” архив имеет окончание _dir, и вся VPK-система грузится через него.
VPK могут работать и по отдельности, как это делается создателями кастомного контента, в этом случае просто не надо добавлять никаких приставок.
Поскольку в VPK все файлы содержатся в несжатом виде, а только для систематизации, для кастома можно пользовать и распакованный контент.
Распакованный контент, это тот же VPK, только без пихания всех файлов в архивы.
Распакованный контент – все материалы, модели, звуки, ресурсы, кэш-файлы, скайбоксы, карты, которые не запакованы в VPK и скачиваются отдельно в одну из папок контента игры (hl2 или cstrike).
Собственно, о распакованном контенте сказать нечего, это просто все игровые файлы.
3. Пользовательская конфигурация
Файлы пользовательской конфигурации определяют поведение системы только для задающего настройки пользователя .
Эти файлы, как правило, расположены в домашней папке пользователя и не требуют прав суперпользователя для редактирования.
Следует иметь в виду, что пользовательские настройки всегда имеют более высокий приоритет, чем глобальные. Иными словами, приложение всегда будет придерживаться пользовательских настроек, если таковые есть .
В части пользовательских настроек приложения соответствуют одному из двух стандартов.
2.2. /etc/opt/
Папка /etc/opt/ должна содержать глобальные файлы конфигурации приложений, установленных в /opt/ . Однако в Linux это требование не является обязательным. В результате бывает, что папка /opt/ полна установленных пользователем программ, а /etc/opt/ остаётся пустой.
Читайте также: