Перейти к содержанию

Как кастомизировать Android, не устанавливая патчи


Spid3r

Рекомендуемые сообщения

Основанный на ядре Linux и полностью открытый Android как будто создан для разных хаков и модификаций. За все время существования ОС на ее основе были созданы сотни кастомных прошивок, найдены десятки способов изменения ее внешнего вида и поведения, появилась функциональность, не предусмотренная Google. Однако получить нужные функции до недавнего времени можно было, лишь перепрошив устройство, что неудобно и в ряде случаев опасно.

 

Введение, или как они это делают

 

Хакерам, модерам и прочим энтузиастам известно несколько способов изменения внешнего вида, поведения и других параметров Android. Три наиболее популярных:

  1. Правка файлов /system/framework/framework.jar, /system/framework/framework-res.jar и /system/app/SystemUI.apk, которые содержат описание интерфейса и ресурсы, нужные для его отображения. Редактируя эти файлы, можно изменить внешний вид практически любого компонента интерфейса, начиная от размера кнопок и заканчивая цветом надписей.
  2. Правка исходных текстов компонентов системы. С помощью этого способа можно изменить что угодно — от реакции на нажатие кнопок громкости до полного изменения поведения системы. Другими словами, можно переделать ОС под себя.
  3. Декомпиляция и правка системных приложений, не имеющих исходных текстов. Таким образом можно изменить фирменные приложения Google, такие как Google Play и Gmail, исходники которых поисковый гигант не выкладывает.

Проблема всех этих способов в том, что они не позволяют менять Android «на живую». Нельзя взять со смартфона файл /system/framework/framework-res.jar, исправить его и скопировать обратно в систему. Технически в этом нет ничего сложного, достаточно получить root, перемонтировать /system в режиме чтения-записи и выполнить необходимые действия, однако изменения не вступят в силу до перезагрузки, да и загрузится ли система с новым файлом — большой вопрос.

 

Кроме того, изменив системный компонент, нельзя быть уверенным, что модификация заработает на другом смартфоне, даже если на нем установлена та же версия системы. А если версии различаются, то надежды нет совсем. В некоторых случаях модификацию вообще не удастся установить, так как загрузчик может быть залочен, а системный раздел защищен от записи (привет Motorola).

 

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

 

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

 

Перехват управления

 

Суть способа в следующем. Практически любая современная операционная система состоит из ядра и большого количества взаимосвязанных компонентов, в Linux это /boot/vmlinuz и библиотеки из каталогов /lib и /usr/lib, в Windows это ядро kernel32.dll и большое количество DLL-библиотек из системного каталога, в Android это опять же ядро Linux в выделенном разделе и большое количество Java-классов, упакованных в тот самый файл /system/framework/framework.jar.

 

Практически все компоненты, за исключением ядра, могут быть загружены либо во время инициализации ОС, либо по мере необходимости. Это значит, что компонент можно подменить на модифицированный, что, по сути, и происходит, когда мы устанавливаем одну из модификаций Android классическим способом: один или несколько файлов заменяются и загружаются системой при следующем включении.

 

Однако, как мы уже выяснили, у такого способа куча проблем, и поэтому лучше использовать другой путь, а именно: вклиниться в процесс загрузки файла (а в случае Android это Java-класс), затем перехватить вызовы его методов и направить по другому адресу. Так мы убьем сразу двух зайцев: не сломаем систему, поскольку не будем изменять системные компоненты вообще, и решим проблему с неудобством установки модификаций, так как сможем направить перехваченные вызовы (методы) Java-класса кому угодно, например обычному непривилегированному приложению. Именно так работает Xposed.

 

Xposed Framework

 

Любой класс в Android загружается с помощью небольшого нативного приложения /system/bin/app_process. Его задача — запустить виртуальную машину Dalvik, загрузить необходимые для работы системные классы (окружение исполнения) и передать управление классу (на самом деле происходит обращение к сервису Zygote, который форкает уже готовую ВМ и окружение в режиме copy-on-write, но в нашем случае это неважно).

 

Xposed представляет собой модифицированную версию app_process, которая при запуске первым делом загружает в память специальный Java-класс-перехватчик, а лишь после него — оригинальный Java-класс. Перехватчик выступает в качестве посредника для любых вызовов Java-методов, инициированных оригинальным классом и, в случае необходимости, перенаправляет их классу-обработчику.

 

Последний как раз и занимается тем, что изменяет поведение системы. Например, для определения цвета текста приложения используют метод GetColor класса android.content.res.Resources. Если класс-обработчик перехватит этот метод и вернет вместо кода серого цвета код зеленого, все надписи в интерфейсе станут зелеными. Модификации могут быть и более сложными, например когда они связаны с альтернативной реализацией сразу нескольких методов и целых классов.

 

В комплекте Xposed готовых классов-обработчиков нет, но он позволяет любому разработчику распространять их в виде обычных APK-пакетов, а пользователю просто установить и активировать с помощью специального интерфейса. Другими словами, с помощью Xposed можно устанавливать и удалять модификации Android как обычные приложения, без необходимости в прошивке, копировании в системный каталог и без какого-либо риска.

 

Модули

 

В терминологии Xposed классы-обработчики называются модулями, и в данный момент их насчитывается уже более сотни. Причем это не какие-то игрушки с изменением цветов из предыдущего примера, а серьезные доработки, такие как движок тем, глубокие модификации строки состояния, секьюрити-патчи, блокиратор рекламы, менеджер полномочий приложений и многое другое. В оставшейся части статьи я расскажу о наиболее интересных модификациях, а пока о том, как установить Xposed.

 

Xposed невозможно найти в маркете, с точки зрения Google это вредоносное приложение, которое может навредить системе. Это, конечно же, не так, но мы не будем спорить с Google, а просто скачаем приложение из интернета (файл XposedInstaller_2.1.4.apk). После установки приложение запросит права root, а затем выведет на экран интерфейс с несколькими кнопками. Нажимаем Install/Update и перезагружаем смартфон.

 

Все установленные пакеты, содержащие модули Xposed, будут автоматически появляться на вкладке Modules приложения. Включить их можно, просто поставив галочку напротив, а затем перезагрузив смартфон. К сожалению, искать и скачивать модули придется самостоятельно, так как в Google Play большинства из них нет, а работа по созданию родного репозитория Xposed еще не завершена.

 

http://armarium.org/u/2014/02/01/X0VKju4.jpg

Для установки Xposed достаточно нажать одну кнопку

 

http://armarium.org/u/2014/02/01/bnB6U.jpg

После активации новых модулей устройство придется перезагружать

 

Модификации интерфейса

 

Наибольшего внимания заслуживают модули, которые каким-либо образом изменяют внешний вид операционной системы. Таких модулей на просторах инета довольно много, и среди них есть бриллианты из разряда must have. В этом разделе мы поговорим о них.

 

Maximize widgets on lockscreen. Простой модуль, который автоматически разворачивает виджеты на экране блокировки при включении смартфона. Очень удобен при использовании больших информационных виджетов наподобие DashClock. В CyanogenMod, кстати, есть аналогичная функциональность (Настройки -> Экран блокировки -> Развернутые виджеты).

 

AOSP Lockscreen. Модуль заменяет экран блокировки на стандартный из поставки Android, без модификаций производителя смартфона. Будет полезен тем, кто хочет получить look and feel обычного Android, не устанавливая стороннюю прошивку.

 

AppSettings. Добавляет в любую прошивку функциональность, аналогичную настройкам приложений в прошивке ParanoidAndroid. С его помощью можно изменять значение DPI для отдельно взятых приложений, отключить показ строки состояния во время их работы, отключить гашение экрана или изменить язык. С помощью изменения DPI можно сделать так, чтобы приложение работало в планшетном режиме на телефоне (DPI = 160) или в телефонном на планшете (DPI > 240).

 

Battery Themeing. Модуль с большим количеством различных стилей отображения заряда батареи, от круговых до различных символов и изображений.

 

XThemeEngine. Полноценный движок тем, практически повторяющий аналогичный движок в прошивке CyanogenMod. Позволяет полностью изменять внешний вид интерфейса, включая иконки, но по техническим причинам несовместим с темами для CyanogenMod. Встроенного репозитория тем также нет, так что их придется искать самостоятельно. Небольшую коллекцию можно найти здесь.

 

Icon Themer. Еще один движок тем, в этот раз для замены иконок. Позволяет использовать комплекты иконок, созданные для Nova Launcher, Apex Launcher и ADW Launcher, в любых ланчерах. Сотни различных айконпаков можно найти в Google Play.

 

WisdomSky Xploit. Модуль для глубокой кастомизации строки состояния. Позволяет изменять цвета, стиль отображения часов и батареи и многое другое.

 

http://armarium.org/u/2014/02/01/F30LvlcVr.jpg

App Settings позволяет изменить внешний вид и поведение любого приложения

 

http://armarium.org/u/2014/02/01/mlW5.jpg

Достаточно изменить значение DPI на 160, и интерфейс приложения изменится на планшетный

 

Коллекции твиков

 

Кроме модулей узконаправленной функциональности, есть и целые коллекции твиков в стиле «все в одном». Они позволяют делать множество вещей — от изменения цвета часов в строке состояния до включения различных скрытых функций, вроде переворота локскрина в зависимости от положения экрана или эффекта выключения экрана в стиле старого телевизора (его можно найти в прошивках устройств серии Nexus и CyanogenMod).

 

GravityBox — одна из таких коллекций твиков и доработок с акцентом на рядовых пользователей. Наиболее интересные возможности:

  • Всплывающие наэкранные клавиши навигации в стиле PIE из ParanoidAndroid. После активации наэкранные клавиши управления внизу экрана исчезают, а вместо них появляются всплывающие с одной из сторон экрана кнопки. Очень удобная must have функциональность (также доступна в приложении LMT Launcher).
  • Возможность изменения расположения и удаления кнопок (тайлов) быстрого управления питанием в шторке. Также доступно несколько дополнительных кнопок, включая фонарик и быстрое включение точки доступа.
  • Возможность изменения строки состояния, ее цвета, цвета текста и стиля отображения батареи и часов, изменения фонового изображения и прозрачности шторки.
  • Расширенное меню выключения с возможностью перезагрузки в recovery.
  • Переключение композиций в стандартном плеере с помощью долгого нажатия на кнопки громкости.
  • Исправление самого известного небага Android — отображение фото звонящего не на весь экран (есть в виде отдельного модуля).
  • Эффект выключения экрана в стиле старого телевизора.
  • Авторазворот виджетов на локскрине.
  • Включение режима вибро при перевороте смартфона экраном вниз.
  • Патч для уязвимости Master Key (возможность внедрения любых файлов в системный APK-пакет и его установки без предупреждений) (есть в виде отдельного модуля).
  • Гибкое управление подсветкой кнопок и светодиодом.
  • Исправление множества багов, присутствующих в прошивках для MTK6589-устройств (китайские смартфоны 2013 года выпуска).

Еще одна популярная коллекция — это MoDaCo Toolkit, сборник довольно специфичных и узконаправленных твиков и хаков с акцентом на смартфоны HTC от известного комьюнити MoDaCo. Возможности:

  • Совместимость с рабочим столом Facebook Home.
  • Маскировка смартфона под устройство с разрешением экрана 720p. Полезно владельцам 1080p-смартфонов и планшетов, которым недоступны некоторые приложения в Google Play.
  • Неограниченный угол поворота экрана при наклоне устройства.
  • Различные твики строки состояния.
  • Возможность изменения настроек build.prop на лету (BOARD, BRAND, DEVICE, MODEL, PRODUCT). Можно использовать для получения доступа к приложениям в Google Play.
  • Работа чипа NFC даже во время сна устройства. Для тех, кто часто пользуется NFC-метками (есть как отдельный модуль.
  • Множество твиков для HTC One: отключение предупреждения о завышенном уровне громкости (одним модулем), дополнительные опции выключения (перезагрузка, recovery), включение смартфона кнопкой громкости, отключение бесполезной опции Kid Mode в Power Menu (долгое нажатие кнопки включения), иконка Blinkfeed на рабочем столе.

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

 

Tweakbox — один из первых модулей и коллекций твиков для Xposed. Интересен тем, что обладает небольшой, но действительно необходимой функциональностью. В комплекте: разные стили отображения батареи и уровня сигнала, регулировка уровней критического заряда батареи (по дефолту 5 и 15%), запись разговоров, отключение функции включения экрана при отключении от зарядника (есть в CyanogenMod), переключение между композициями с помощью качельки громкости, изменение поведения при долгом нажатии на кнопку «Домой», ТВ-эффект выключения экрана.

 

http://armarium.org/u/2014/02/01/F8xd1a.jpg

Длинные списки твиков модуля GravityBox

 

http://armarium.org/u/2014/02/01/GMHrv5CQwJ.jpg

GravityBox — тюнинг авторегулировки яркости и кнопок управления питанием

 

Безопасность

 

Кроме упомянутого в предыдущем разделе модуля, закрывающего баг Master Key, для Xposed доступно еще несколько интересных секьюрити-модулей. Один из них — это XPrivacy, система принудительного ограничения приложений в полномочиях. Второй — PeerBlock, аналог одноименного приложения для ПК, предназначенного для блокировки разных рекламных, небезопасных и фишинговых сайтов. Далее мы подробно рассмотрим функциональность каждого из них.

 

Начнем с XPrivacy, модуля для ограничения приложений в полномочиях, который работает в связке с системой безопасности Android. Его задача — дать пользователю контроль над тем, какие именно полномочия (например, доступ к интернету, возможность отправки SMS или запись данных на карту памяти) будут разрешены приложению, а какие — нет. По умолчанию Android дает приложению доступ ко всем запрошенным им полномочиям, но с помощью XPrivacy некоторые из них можно отозвать.

 

XPrivacy распространяется в виде обычного APK-пакета, который, помимо модуля, также включает в себя графический менеджер полномочий. Кроме установки APK-пакета, придется прошить через кастомный recovery фикс для Xposed, необходимый для корректного ограничения некоторых полномочий (впрочем, модуль работает и без него). Фикс можно получить на сайте goo.im (goo.im/devs/M66B/xprivacy), выбрав подходящий для своей версии Android: Xposed_fix_4.0_v2.zip, Xposed_fix_4.1.zip, Xposed_fix_4.2.zip или Xposed_fix_4.3.zip. Работу других модулей он не нарушит.

 

После установки и активации модуля в Xposed в меню приложений появится иконка XPrivacy, которая открывает приложение для управления полномочиями. Главный экран приложения — это список всего софта, установленного в системе. По отношению к любому из них можно активировать систему ограничения, просто поставив галочку напротив и выбрав в открывшемся окне разрешенные привилегии. При этом система сама даст подсказки на счет безопасности тех или иных полномочий, выделив небезопасные жирным шрифтом, а наиболее опасные — розовым фоном. К первым, кстати, относятся доступ к учетным записям и ID устройства, а ко вторым — интернет и хранилище данных. Приложения, запрашивающие небезопасные полномочия и доступ в интернет, также будут выделены в основном списке приложений с помощью соответствующих иконок.

 

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

 

Второй модуль, PeerBlock, — это альтернативная реализация одноименного приложения для Windows. Вся его работа заключается в том, чтобы блокировать доступ операционной системы и приложений к определенным интернет-адресам на основе правил и списков. По сути, это аналог Adblock+, но с возможностью гибкого управления, а самое главное, работающий на более низком уровне ОС (а не в виде прокси, который сам общается с сервером и затем отдает данные системе).

 

В настоящее время PeerBlock использует два метода определения блокируемых хостов: по наличию Ad в адресе хоста и на основе списков адресов, находящихся в каталоге /sdcard/PeerBlockLists/ в обычных текстовых файлах. Первый активирован по умолчанию; чтобы активировать второй, придется скачать список хостов с какого-либо ресурса, например www.iblocklist.com. Далее файл достаточно положить в указанный каталог, запустить приложение PeerBlock for Android и на вкладке Block Lists нажать кнопку Rebuild cache blocklist.

 

http://armarium.org/u/2014/02/01/3IcHrt.jpg

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

 

http://armarium.org/u/2014/02/01/a8efw.jpg

Однопользовательской игре доступ в интернет не нужен!

 

http://armarium.org/u/2014/02/01/cwJ6Kv3.jpg

Лаконичный PeerBlock

 

Cydia Substrate

 

По своей сути Xposed — это Android-аналог популярного приложения Cydia Substrate для iOS, созданного небезызвестным Saurik, автором репозитория Cydia. Substrate используется в джейлбрейкнутых i-устройствах повсеместно для создания разного рода модификаций. Часто фреймворк устанавливается в процессе взлома устройства вместе с одноименным репозиторием.

 

Совсем недавно Saurik выпустил версию Cydia Substrate для Android. Фреймворк получился куда более продвинутым, чем Xposed, он создает меньший оверхед на систему, позволяет модифицировать как Java-код, так и нативный, с более продвинутым методом перехвата управления, основанным на внедрении кода и функцией защиты от глючных модификаций (достаточно загрузить смартфон с зажатой кнопкой уменьшения громкости для отключения всех модулей).

 

Тем не менее, за полгода существования Cydia Substrate для Android так и не получила распространения. Встроенный маркет содержит всего две модификации: движок тем WinterBoard и Cydia Backport с секьюрити-патчами. Оба написаны самим Saurik.

 

Greenify

 

Еще один очень интересный Xposed-модуль — это Greenify, система, которая превращает смартфон в выборочное однозадачное устройство. Это означает, что после его установки у тебя появится возможность «заморозить» любое приложение, так что ты сможешь продолжать им пользоваться, но оно не будет работать в фоне. К примеру, у тебя установлен твиттер-клиент, который каждый час просыпается и начинает обновлять ленту, просыпается днем, ночью, в любое время года. И каждый раз, когда он просыпается, процессор переводится в менее энергоэффективный режим, а драйвер Wi-Fi выходит из спячки, из-за чего драгоценный заряд батареи постепенно утекает в никуда.

 

Greenify позволяет полностью отключить любую фоновую активность любого приложения, при этом оставив его полностью работоспособным, так что ленту можно будет обновить самостоятельно, когда нужно. По сути, это мягкий аналог таск-киллера, за тем исключением, что он не убивает приложение (с точки зрения энергопотребления это еще хуже, чем фоновая работа), а просто запрещает ему выполнять фоновые операции.

 

Greenify почти полностью автоматизирован, поэтому все, что нужно сделать, — это запустить его, нажать кнопку + и выбрать из списка наиболее активные приложения. Система сама рассортирует приложения по количеству просыпаний, укажет, для чего они просыпаются и когда запланировано следующее бодрствование. Все это на русском, так что разобраться будет просто. Единственное, я бы не рекомендовал замораживать системные приложения и виджеты.

 

http://armarium.org/u/2014/02/01/bhFtqDso.jpg

Greenify и список бодрствующих приложений

 

Перехват управления не новая идея, она реализована в UNIX-подобных ОС средствами предварительно загрузки библиотек (LD_PRELOAD) и перехвата системных вызовов с помощью ptrace. В Windows существуют техники под названием сплайсинг и сабклассинг, кстати, их используют многие бэкдоры и трояны.

 

Выводы

 

Xposed — невероятно удобная и эффективная система модификации Android, которую можно смело вносить в список must have приложений для всех root-юзеров. Описанные в статье модули лишь малая часть из того огромного количества модификаций, которые можно найти в интернете.

 

 

INFO

 

На странице Xposed есть файл Xposed-Disabler-CWM.zip, который следует использовать для прошивки через recovery в том случае, если фреймворк установился криво и теперь смартфон не загружается.

 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Mayron
    • Mayron
    • Mayron
      Планы на выходные - почувствовать себя внеземной цивилизацией, которая игнорирует контакт с человечеством.
    • Error079
    • Error079
      Что общего у престарелой куртизанки и ветерана разведчика? Есть что вспомнить, нечего внукам рассказать
    • BrokenParts
      Лордас, день 4-ый Месяц Второго Зерна Неизвестно где      Человек ты, каджит или эльф - если не чувствуешь опоры под ногами сразу возникает чувство неуверенности, какой-то жалкой беспомощности. Начинаешь барахтаться, махать конечностями, в общем, делать все, лишь бы найти, нащупать, хоть какую-то точку опоры. Это сейчас пыталась сделать и Симга, бестолково вертя головой во все стороны, и размахивая руками. Каджитка висела в черной пустоте, хотя еще секунду назад видела перед глазами блеск стали, слышала хохот этих ублюдков из Культа...      "Я ослепла?.. Я умерла? Скоро Кенарти придет за мной и отведет на суд Азурры... Или я жива? Где я?!"      - Ты слишком громко думаешь, смертная. Лучше уж говори ртом. - голос прозвучал откуда-то из-за спины и Симга попыталась обернуться. Именно в этот момент ее лапы почувствовали под собой что-то твердое и оттого разворот оказался слишком резким. Каджитка упала на спину и прикрыла глаза от яркого огня, неожиданно вспыхнувшего рядом. Сейчас она находилась на небольшой каменной платформе, на которой даже лечь не получится. А вокруг поднимались из пустоты столбы с чашами, в которых пылал огонь. Основания этих гигантских "факелов" уходили куда-то вниз, в непроглядный мрак. Кинь туда камень, и не услышишь звука, как ни старайся. Зато, возможно, услышишь звуки рассерженных тварей, которые поднимаются чтобы сожрать тебя за то, что потревожил их покой. Мрак не был однородным, в нем постоянно что-то клубилось, двигалось, какие-то неясные силуэты. Мозг силился придать им узнаваемые черты, на миг это удавалось, но потом они снова размывались, теряя форму и оттого становясь еще более страшными.      - Не смотри вниз, они этого не любят. - На этот раз голос раздался спереди и каджитка подняла голову. Говорившего, а точнее говорившей - голос был женский - нигде не было видно, зато взгляд Симги, наткнулся на тела, висящие на цепях. Как и колонны - цепи исчезали в темноте, только уходили вверх, к незримому потолку. Окутанные цепями, некоторые тела безжизненно висели, некоторые дергались, открывая рты в беззвучном крике. Воительница хотела уже просто закрыть глаза, справедливо рассудив, что лучше уж вообще никуда не смотреть, как вдруг, перед ней, возникла еще одна платформа, на которую из пустоты шагнула высокая, стройная женщина в длинном, темно-синем платье. Ее лицо было закрыто маской из непонятного материала, а в руке был посох, покрытый странными символами. Они в хаотичном порядке перемещались по поверхности посоха не давая зацепиться за себя взглядом, от чего начинала дико болеть голова.      - Не узнаешь меня? - Обманчиво равнодушным голосом спросила женщина. Симга отрицательно замотала головой. Из-за плеча этого божества (а кто же еще это может быть?) показалась голова огромной змеи. Раздалось раздраженное шипение.      - Ну еще бы. Вы же меня так редко вспоминаете. Как будто каджитам сны не снятся. Ладно, - даэдрическая принцесса раздраженно повела плечом. - С этим как-нибудь потом разберусь, если оно, конечно, будет это "потом".      - Кто вы, госпожа? Я умерла? Что произошло? Почему я тут? - Поняв что ничего страшного с ней, по крайней мере, сейчас, делать не будут, Симгу будто прорвало.      - Нет, ты не умерла. Я - Вермина, Королева Кошмаров. Потерянная дочь, как меня называют в твоем народе. И сейчас ты в моих владениях. Время тут течет иначе, но у меня еще много дел, так что тянуть не будем. Тебе нетрудно догадаться что я пришла из-за Культа. Ваш отряд - единственный кто не выполнил свою задачу и не смог уничтожить вражеский лагерь. Это позор, из-за которого и стоило бы умереть, но нам было важно чтобы все три лагеря были уничтожены. Так что мне пришлось вмешаться. - Прядильщица нахмурилась и положила левую руку на тело змеи, которое постоянно двигалось у ее ног.      Симга, более-менее, взяла себя в руки. Появилась какая-то определенность, хоть и довольно устрашающая, а значит еще не все потеряно.      - Чем я могу служить тебе, Госпожа?      - Хороший подход. Всегда бы так. Слушай и запоминай, - Вермина посмотрела на одного из висящих на цепи. Он в последний раз дернулся и затих. Остальные тоже уже не подавали признаков жизни. - Это остатки культистов, которых вы не успели добить. Я прочла их ка открытую книгу и не узнала ничего. Почти ничего. Они не знают кому служат, не знают планов, целей, желаний. Но все же у меня есть чем помочь твоим генералам. Передай Сообществу, пусть найдут книгу - "Смерть" морфотипических сущностей". Она даст ответы на некоторые вопросы. И еще передай, что даэдра знают о происходящем и сделают свой ход когда придет время.      Госпожа Снов повернулась к Симге спиной. Бесшумно, но довольно быстро, платформы и столбы начали разъезжаться в разные стороны, отделяя даэдра и смертную друг от друга.      - Да, и вот еще что... - каджитка ощутила взгляд женщины, направленный на нее, всем телом, шерсть чуть не встала дыбом. В голове возник образ призрака, в сопровождении двух, таких же призрачных, оборотней, - это Гарох, Отец Волков. Один из основателей Культа. Именно он должен был приехать в Лагерь Небесных Сновидцев, но не приехал потому что был убит. Но даже в посмертии, благодаря силе и воле своего хозяина, продолжает вести Культ по его кошмарному пути. Убейте его окончательно. Это пошатнет позиции ваших противников. Вы найдете его там, где началась ваша история.      Симга рухнула на горячий песок. Свет слепил глаза. Вокруг раздавались удивленные возгласы - это Щиты Сенчала поняли, что наконец-то могут двигаться, но воевать было уже ненужно. Последователи Культа Спящего Бога как один упали там, где стояли. Позже осмотр тел покажет, что их лица искажены гримасами ужаса, глаза закатились, а сердце остановилось. Так бывает, если увидел кошмарный сон. Сон, от которого уже не проснуться... ЗАДАЧА 1: найдите книгу "Смерть" морфотипических сущностей". Скриншот текста книги и скриншот места (с текстовой подписью, что это за место), где вы ее нашли - присылайте мне в ЛС форму или в дискорд. За эту находку Сообщество заплатит вам 50 000 золотых. ЗАДАЧА 2:  убейте Гароха, Отца Волков. Скриншот с подтверждением победы присылайте в эту тему. Или, опять же, мне. За устранение видного члена Культа Сообщество заплатит вам 50 000 золотых. Этот этап истории будет считаться пройденным если вы выполните хотя бы одно из этих заданий. Выполнившие обе задачи, получат дополнительную награду в размере 30 000 золотых. Крайний срок, 15.05.2024 23:00 Мск.      - Иххи-хи-хи-хи-хи! - Ехидный смех раздался в темноте, но тот, кто его издал, уже сменил тон и, добавив в голос напыщенности и надменности, продекламировал. - "И знай, даэдра сделают свой ход в нужное время!" Какие даэдра, сестричка? Мора закопался в свои Архивы еще глубже, хотя куда уж глубже. Клавикус трясется от страха, а Сангвин налакался как последний трактирный пьяница. очнется, дурак, хорошо если через десяток лет!      - Сгинь, Безумный, я тебя не звала в свои владения.      - Ах, деточка, твои владения - они немножечко и мои владения, не так ли? И от кошмаров, бывает, сходят с ума...      - Чего ты хочешь? Говори прямо, у меня мало времени. - Вермина замерла у открытого портала на другой план. Шеогорат скорчил недовольную гримасу - опять прямо, быстро, некогда! А как же неторопливая беседа за бокалом горячего сыра? обмен воспоминаниями о делах давно минувших дней?      - Ты и впрямь решила помогать смертным? А что если Культ действительно от Спящего?      - Тогда нам всем конец, - прошептала Прядильщица но потом, словно сбросив наваждение, зло прошипела. - Это не может быть Он! Он никогда не проснется! Я не знаю кто ведет эти игры, но я найду его! И покончу с этим! С вашей помощью, или без нее!      Портал закрылся и в пустоте повисла тишина. Но не та тишина, которую невозможно услышать, потому что она появляется только тогда, когда вокруг нет ни души. Никого, кто мог бы услышать эту тишину, плывущую в пустоте. Это была тишина напряженного молчания. Это была невозможная тишина, которая возникла из-за того, что Скумному Коту, как иногда называли Шеогората, было нечего ответить. А случалось такое нечасто...
    • Pupezky
      В апреле 2024 года было изменено одно из условий получения слона. Теперь нужно не 100 сорняков, а всего только 10.
    • BrokenParts
    • Mayron
    • Mayron
×
×
  • Создать...