Модули для системы андроид

Модули Android приложения

Структура проекта Android может включать один или несколько различных модулей (Module). В модуле определяется интерфейс экрана и формируется код. Модуль, по сути, является приложением, а проект представляет собой контейнер для модуля/ей. При старте модуля получаем готовое Android-приложение, созданное в этом модуле. В одном проекте может быть несколько модулей, да и проектов также можно создать несколько. При старте какого-либо проекта необходимо указать запускаемый модуль.

При создании первого приложения в структуре проекта можно увидеть запись app – это и есть модуль. По умолчанию при создании нового проекта создается модуль app. Не будем его пока касаться, а будем создавать свои модули. Но удалять его тоже не следует, поскольку мастер (wizard) при создании проекта в основном касался как раз этого модуля.

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

Создание нового модуля

Создадим новый модуль (приложение), используя первый проект. Процедура создания модуля частично похожа на создание проекта, но с небольшими отличиями. Чтобы создать новый модуль необходимо в меню выбрать File => New => New module.

На первом шаге выбираем интерфейс приложения «Phone and Tablet Application»

На втором шаге определяем параметры модуля :

Application/Library name – это непосредственно наименование приложения, которое будет отображаться в списке приложений в смартфоне. Назовем приложение, к примеру, как p01module.

Module name – это наименование модуля. IDE Android автоматически формирует данное наименование из названия приложения, определяя символы в нижнем регистре. Наименование модуля будет отображаться в структуре проекта, там, где сейчас определен app. Можно ввести свое наименование модуля, я не стал ничего менять.

Package name – имя пакета можно отредактировать вручную, нажав кнопку «edit» справа.

На следующем шаге (скриншот не представлен) выбираем Activity. Что такое Activity?. Это «окно». Приложение Android состоит из окон, называемых Activity. В каждый момент времени обычно отображается одно Activity, которое занимает весь экран. Приложение переключается между окнами. Окна условно можно рассматривать как страницы сайта, между которыми происходит переключение, либо окна ОС Windows. Выбираем Empty Activity и переходим к определению его параметров.

Интерфейс Activity формируется из различных компонентов, называемых View. Самые распространенные View — это кнопка, поле ввода, чекбокс и т.д. Как правило, View помещается в контейнер ViewGroup. Самым распространенным контейнером является Layout, который отвечает за расположение дочерних элементов (таблица, строка, столбец . ).

На этом шаге в компонентах окна мастера определения Activity ничего не меняем и нажимаем кнопку Finish. Через некоторое время Android Studio создаст модуль и разместит его в структуре проекта.

Содержимое модуля (приложения) в структуре проекта включает несколько папок :

  • manifests — содержит конфигурационый файл приложения AndroidManifest.xml;
  • java — размещает весь написанный код приложения;
  • res — используется для файлов-ресурсов различного типа.

В этом модуле интерес представляет файл: res => layout => activity_main.xml . По умолчанию мастер добавил в файл компонент типа TextView, в котором, наряду с остальными параметрами, определил текстовое значение «Hello World!».

Файл activity_main.xml является макетом (шаблоном) приложения или layout-файл. Содержимое activity_main.xml включает набор и расположение View компонентов, которые должны быть отражены на экране. При запуске приложения, Activity читает этот файл и отображает его содержимое в виде компонентов. Если попытаться открыть его двойным щелчком мыши, то Android Studio откроет его в окне (след. скриншот), включающим наборы различных компонентов и панелей.

1. Design и Text

Вкладка Desing связана с графическим отображением экрана, которое представлено на скриншоте сверху. Вкладка Text — это текстовое представление файла activity_main.xml (предыдущий скриншот).

2. Pallete

В разделе палитры располагается список View компонентов, которые можно размещать в интерфейсе : кнопки, поля ввода, чекбоксы, прогресс-бары и прочее.

3. Component Tree

Дерево компонентов, определяющее иерархия View экрана. После создания модуля корневым элементом является ConstraintLayout, включающий TextView.

4. Режимы представления

На скриншоте в области 4 размещен компонент выбора экрана в виде выпадающего списка, позволяющий выбрать один из 3-х режимов представления экрана (5) :

  • Design – режим представления экрана с компонентами;
  • Blueprint – режим представления экрана в виде контура;
  • Design + Blueprint – совмещение двух представлений.

Рядом размещается кнопка (не выделена) определения ориентации экрана : Portrait, Landscape. По умолчанию используется Portrait. Правее располагается кнопка типа смартфона, версия Android и стиль (Thema) представления.

5. Экран

Графический интерфейс экрана приложения. Здесь будут размещаться различные компоненты из области палитры 2.

6. Свойства компонентов

При выделении какого-либо компонента View (3) здесь будут отображаться его свойства. С помощью свойств можно настраивать внешний вид, расположение и содержимое компонента.

Размещение кнопки

Разместим в интерфейсе кнопку под текстовым полем, как это представлено на следующем скриншоте.

В дереве «Component Tree» появился новый компонент (View) «Button».

Обработчик события

Создадим обработчик события btnHello_Click, который по нажатию на кнопку запишет в текстовое поле строку «Здравствуй, мир». По умолчанию в тестовом поле строка «Hello World!». Обработчик события btnHello_Click определим в активности MainActivity.java :

В обработчике события btnHello_Click следует обратить внимание на первую строку, в которой определяется текстовый компонент с использованием метода findViewById. Этому методу необходимо передать идентификатор компонента. В следующей строке в компонент записывается новая текстовая строка.

Подключение обработчика события

Подключение обработчика к событию кнопки onClick можно выполнить либо непосредственно в файле activity_main.xml, либо использовать панель атрибутов. В первом случае необходимо открыть activity_main.xml в текстовом режиме и добавить строку «android:onClick=»btnHello_Click»» в раздел описания кнопки :

Во втором случае необходимо открыть activity_main.xml в режиме Design и в поле кнопки onClick определить наименование обработчика события.

Читайте также:  Не увеличивает пальцами андроид

После старта приложения мы увидим наш интерфейс : в верхней части наименование модуля P01module, в центральной части строку «Hello World!», ниже которой располагается кнопка. После нажатия на кнопку текст изменится на «Здравствуй, мир».

Источник

Изменяем андроид без перепрошивки. 10 лучших твиков.

В отличие от iOS, Windows Phone и некоторых других мобильных ОС, исходный код Android открыт, благодаря чему энтузиасты могут модифицировать систему каким угодно образом и оформлять свои модификации в виде свободно распространяемых прошивок, таких как CyanogenMod, Paranoid Android и OmniROM. Такие прошивки содержат в себе огромное количество полезнейших модификаций, однако не каждый готов идти на риск, устанавливая их. К счастью, существует способ получить все преимущества кастомов на любой стоковой прошивке.

XPOSED FRAMEWORK

Не так давно мы уже упоминали что для Android существует система Xposed — набор библиотек и приложений, которые, работая вместе, позволяют сторонним приложениям перехватывать обращения к любым Java-классам Android и подменять их на свои собственные. Проще говоря, аналог Cydia Substrate для iOS, с помощью которого пользователь может изменять поведение и внешний вид андроид.

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

Большинство модулей никак не зависят ни от марки, ни от модели девайса и способны работать в любом Android начиная с версии 4.0. Единственное серьезное ограничение — необходимость получения прав root, но сегодня эта процедура доступна даже полному нубу благодаря наличию специальных приложений для рутинга.

Как работает EXPOSED:

Xposed состоит из двух основных компонентов: модифицированной версии бинарника /system/bin/app_process, который в Android отвечает за запуск виртуальной машины Dalvik, и набора Java-классов XposedBridge.jar, который содержит код, способный перехватывать вызовы любых Java-классов и отдавать их другим классам.

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

При установке Xposed-модуль реги стрирует себя в XposedBridge в качестве обработчика тех или иных Java-классов этих приложений, что дает ему возможность заменить их на свои собственные. Говоря другими словами, модули Xposed не изменяют систему, а подменяют ее компоненты на «фейковые», поэтому после отключения модуля или всего Xposed система автоматически вернется к перво начальному состоянию.

УСТАНОВКА И НАСТРОЙКА

Установить и настроить Xposed довольно просто. По своей сути это обычный APK-пакет, который
после запуска разворачивает все необходимые компоненты для работы системы Xposed в систему. Получить сам пакет можно на официальном сайте (goo.gl/61rOz7). Там же, кстати, находится репозиторий модулей, однако скачивать модули вручную не придется, так как все можно сделать с помощью самого приложения.

После скачивания и установки пакета переходим в раздел «Фреймворк» и нажимаем кнопку «Установить/обновить», далее нажимаем «Быстрая перезагрузка», чтобы система подхватила установленные компоненты Xposed при следующей загрузке. В большинстве случаев этого будет
достаточно для того, чтобы подготовить Android к установке модулей. Если же речь идет о смартфоне с залоченным разделом /system (S-ON), способ установки придется изменить на «Из режима восстановления» в меню «Фреймворк Режим установки». В этом случае после нажатия
кнопки «Установить/обновить» система уйдет в перезагрузку и архив с компонентами Xposed будет автоматически прошит с помощью консоли восстановления.

МОДУЛИ

После перезагрузки вновь запускаем инсталлятор Xposed и переходим в раздел «Загрузка». Здесь отображаются все доступные в репозитории модули, а также обновления самого Xposed. Для установки модуля просто выбираем нужный и нажимаем кнопку «Загрузка» напротив последней версии. Чтобы активировать модуль, переходим в раздел «Модули», ставим галочку напротив того, что установили, и перезагружаем смартфон.

Попробуем установить один из модулей. Для примера хорошо подойдет Tinted Status Bar. Находим его, устанавливаем, активируем в секции «Модули» инсталлятора Xposed и отправляем смартфон в перезагрузку. После загрузки пробуем запускать разные приложения. Эффект должен быть заметен сразу, это строка состояния, которая теперь меняет цвет в зависимости от цветовой схемы самого приложения (почти как в iOS 7). Вот и все, мы поменяли поведение системного компонента без установки кастомных прошивок и модификаций, прошиваемых через
recovery!

Далее я расскажу о самых интересных, необычных и полезных модулях Xposed, но сначала предупрежу о нескольких нюансах, которые надо знать перед тем, как приступить к их установке.

Первое — модули бывают преимущественно двух типов: те, что просто делают свою работу и нигде не светятся, и те, что поддаются настройке. Модули первого типа могут изменять внешний вид или поведение системы, но настроить их не удастся; либо они активны в настройках Xposed, либо отключены (пример такого модуля — Masterkey Multi-fix). Модули второго типа обычно тоже никак себя не проявляют, но создают иконку в меню приложений, которая открывает доступ к настройкам модуля. С их помощью можно активировать те или иные функции модуля и изменить его поведение (примеров таких модулей полно: App Settings, GravityBox и многие другие).

Второе — не все модули совместимы с любыми версиями Android. Некоторые из них рассчитаны на работу с определенными типами стоковых прошивок (например, с прошивками от Samsung или HTC) и могут вести себя непредсказуемо на других прошивках (хотя смартфон они не окирпичивают, конечно). Другие рассчитаны только на работу с определенной версией Android. Например, в репозитории есть два модуля GravityBox, один из которых рассчитан на работу в Jelly Bean (Android 4.1–4.3), другой — в KitKat (4.4). Чтобы не словить глюки, этот момент тоже нужно учитывать. Также следует быть осторожнее с планшетами на базе Android 4.0–4.1, в них используется несовместимый с телефонным интерфейс и многие модули не работают.

Читайте также:  Флеш плеер для андроид вирус

Отдельная история — кастомные прошивки. Обычно с ними никаких проблем не возникает, но случаются курьезы. Например, после установки GravityBox в OmniROM ты получишь два индикатора батареи. Происходит так потому, что в этой прошивке используется собственный, несовместимый со стоком механизм отображения индикатора батареи, о котором GravityBox ничего не знает. К счастью, проблема легко решается отключением индикатора либо в настройках самой прошивки, либо в GravityBox (останется только один индикатор).

[ad name=»UMI 600×313″]

Третье — модуль может быть не просто обособленным пакетом, а входить в состав обычного Android-приложения. Если ты установишь на смартфон приложение Greenify из Play Store, в Xposed появится соответствующий модуль. В случае с этим приложением он опционален и нужен для получения большего контроля над сном приложений. Многие другие приложения также используют Xposed для расширения своей функциональности: BubbleUPnP для стриминга аудиопотока из любого плеера, Cool Tool — для отображения разных данных в строке состояния и так далее.
Перейдем к модулям. В мой список самых самых вошли более двадцати модулей на любой вкус и цвет. Вот они:

GravityBox

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

Модуль способен кастомизировать строку состояния, изменять набор и расположение тайлов в шторке, позволяет изменять поведение кнопок навигации или вообще их отключить, расширяет меню перезагрузки (на манер кастомных прошивок), включает в себя реализацию PIE из Paranoid Android (аналог LMT Launcher), позволяет применить экранные фильтры, изменить поведение хардварных кнопок, поведение светодиода уведомлений и зарядки и многое-многое другое.

Фактически GravityBox — это сборник лучших функций из сторонних прошивок, с помощью которых можно изменить Android. Все функции поддаются тонкой настройке, однако в отличие от кастомных прошивок настройка производится с помощью специального и не слишком удобного меню, доступного через иконку GravityBox в меню приложений. Кроме GravityBox, в репозитории
можно найти и другие «модули-комбайны», такие, например, как Wanam и Xblast Tools, но по функционалу они уступают.

App Settings

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

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

XHaloFloatingWindow

Интересный модуль, имитирующий часть функциональности системы уведомлений Halo из прошивки Paranoid Android. Модуль позволяет запускать выбранные приложения в плавающем окне, размер и прозрачность которого можно менять как вздумается. По умолчанию никак себя не проявляет, и, чтобы получить возможность открывать приложение в плавающем окне, придется добавить его в «Белый список» в меню «Свойства» в настройках модуля. После перезапуска приложения оно будет открыто в отдельном окне.

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

XMultiWindow

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


Работает сразу после установки и перезагрузки; приложение, запущенное с рабочего стола, откроется в полноэкранном режиме, если же в момент запуска экран уже будет занят другим приложением, то он разделится надвое. Имеет те же проблемы совместимости, что и XHaloFloatingWindow, но сам по себе гораздо полезнее. Не поддерживает фирменные самсунговские возможности, такие как drag’n’drop между приложениями. К слову сказать, в настоящий момент многооконный режим из OmniROM выпилен (по причине падений некоторых приложений), поэтому можно использовать данный модуль для замены.

BootManager

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

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

Да, я знаю, что в маркете уже есть приложения для решения этой задачи, но BootManager выгодно отличается от них тем, что работает на самом низком системном уровне и делает блокировку загрузки приложений правильно и быстро.

StatusbarVolume

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

Читайте также:  Как скинуть настройки с андроида если забыл пароль

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

Burnt Toast, Jelly Toast, EnhancedToast

Три модуля для изменения поведения и внешнего вида сообщений, появляющихся на экране при определенных событиях (toast message).

Burnt Toast добавляет к сообщению иконку приложения, его вызвавшего (с возможностью кастомизации). Jelly Toast заменяет ущербный стиль оформления сообщений в KitKat (со скругленными углами и широкой рамкой) на простой и лаконичный из Jelly Bean.

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

[ad name=»Umi 600×217″]

Второй в моем личном списке наиболее полезных модуль (после StatusbarVolume). Делает одну простую вещь — автоматически разворачивает сокращенные ссылки перед их открытием в приложении. Зачем это нужно, когда любой браузер развернет их самостоятельно? Затем, что ссылка, ведущая, например на youtube.com, play.google.com или facebook.com, в стандартной ситуации открывается не в браузере, а в соответствующем приложении, что правильно и очень удобно.

Однако, если ссылка будет сокращена, система не сможет понять, кому ее отдать, и отправит дефолтовому браузеру, который появится на экране, развернет ссылку и лишь затем отдаст ее клиенту (и это в лучшем случае, в худшем — откроет внутри себя).

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

Xposed Call Blocker

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

LightningWall

Простой брандмауэр, позволяющий отключать передачу данных для отдельно взятых приложений в зависимости от типа сети. По сути, представляет собой аналог DroidWall с более правильной реализацией: не зависит от iptables, которого нет во многих стоковых прошивках, активируется еще до начала загрузки основных компонентов ОС, благодаря чему утечки исключаются (DroidWall запускается уже после полной загрузки ОС), правила активны всегда, а не назначаются заново при изменении сетевого подключения.

Другие модули

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

Sense 5/6 Toolbox — набор твиков и хаков для стоковых прошивок от HTC.
HTC One Tweaker — твики и хаки для HTC One.
MotoGuide — сборник твиков и хаков для Moto X.
Chrome New Tab — заставляет Chrome всегда открывать новые ссылки в новой вкладке.
Phab7 — позволяет переключаться между телефонным и планшетным режимами.
Ok Google for 3rd party launchers — добавляет автоматическое распознавание голоса в сторонние лаунчеры.
Master Key multi-fix — закрывает знаменитый баг Master Key.
NetworkSpeedIndicator — добавляет в строку состояния индикатор скорости передачи данных.
CpuTemp in Statusbar — показывает темпера туру процессора в строке состояния.
Holo Themer — позволяет на лету переключаться между светлой и темной темой оформления приложений.
YouTube AdAway — блокирует рекламу в приложении YouTube.
Allow Fullscreen Youtube with HDMI — активирует по-настоящему полноэкранный режим при выводе картинки из плеера YoutTube по HDMI.
AppOpsXposed — открывает доступ к функции AppOps (см. выше).
Complete Action Plus — позволяет кастомизировать диалоги выбора файлов и приложений.
DitheredHoloBackground — делает задний фон приложений истинно черным, без градиента (полезно для AMOLED-дисплеев).
DoubleTapToSleep — отправляет смартфон в сон после двойного тапа по строке состояния.
Extended Xposed Translation Component — автоматически переводит на русский прошивку MIUI.
Hide Apps Xposed — позволяет скрыть приложения в меню стандартного лаунчера.
Instagram Downloader — позволяет скачивать фото из Instagram.
Vine Downloader — позволяет скачивать видео из Vine.
LG PIE Support — поддержка функции PIE для прошивок от LG.
Multiple Users for phone — активирует много пользовательский режим на смартфоне.
neXus navbarz — позволяет изменять внешний вид и поведение софтверных кнопок навигации.
ScreenOffAnimation — набор анимаций выключения экрана.
UnbelovedHosts — позволяет применять свои собственные версии файла /etc/hosts без изменения основного (для блокировки рекламы).
Xposed Full Screen Call Picture — выводит фото звонящего абонента на полный экран (без обрезания снизу).
Xposed GEL Settings — кастомизатор для Google Now Launcher.

ВЫВОДЫ

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

Источник

Оцените статью