Ошибка приложения com.android.settings — как исправить
Ошибка приложения com.android.settings — как исправить
Com.android.settings — исполнительный процесс, отвечающий за запуск установленных системных настроек в устройстве. Сбой в работе данной службы может происходить по самым разным причинам, начиная от кривых прошивок или обновлений и заканчивая аппаратными неполадками.
Если ошибка появляется постоянно, тогда нужно обнулить приложения Настроек. Для этого пройдите в Настройки/Диспетчер приложений/Все . Там отыщите следующие программы — Настройки и Мастер настроек. Дальше все стандартно — очищаем данные и кэш, останавливаем.
Если из-за постоянной ошибки вы не можете выполнить предыдущий пункт — тогда делаем следующее: выключаем телефон, вынимаем аккумулятор и sd-карту, запускаем и вновь пробуем очистить приложения.
Если вышеописанное также не поможет, тогда стоит сделать сброс до заводских( через recovery или сервисный код, как правило для аппаратов Lenovo это ####7777# — если не подошел, то смотрим в ветке аппарата) или прошить аппарат с ПК.
Источник
Com android settings apk
Краткое описание:
Настройка своего профиля под каждое приложение.
Описание:
Различные приложения должны иметь различные конфигурации настроек. Это приложение поможет вам переключиться на другие параметры для каждого приложения в отдельности. Оно включает в себя громкость, ориентацию, состояние сети, подключение Bluetooth, яркость экрана, предотвращать отключение экрана в приложении, и т.д..
Вы можете создать профиль для каждого приложения. Когда вы запускаете приложение, будет применяться соответствующий профиль. После этого, вы можете настроить параметры, как обычно. Также есть профиль по умолчанию. Он будет применяться, когда вы работаете в других приложениях, и когда ваш экран выключен.
Это поможет вам сэкономить время и заряд, потому что вам не нужно переключать настройки системы вручную. Вы можете уменьшить яркость экрана, когда это необходимо, и выключить его снова в профиле по умолчанию. Также можно настроить такие функции, такие как автоповорот экрана Wi-Fi и Bluetooth.
Можно настроить поведение приложения, регулируя профиль для этого приложения. Например, когда вы читаете новости и просматриваете видео, вы можете настроить профиль, указать ориентацию и держать экран включенным.
* Пожалуйста, не используйте его с другими инструментами настройки профиля, чтобы избежать конфликта.
Требуется Android: 3.0
Русский интерфейс: Нет
версия: 1.0.112 Patched Pro Settings app (Пост Alex0047 #62098269)
версия: 1.0.108 Patched Pro Settings app (Пост Alex0047 #61223437)
Версия: 1.0.108 GP Settings app (Пост vitaxa978 #61035517)
версия: 1.0.103 Pro Settings app (Пост Alex0047 #58616087)
версия: 1.0.103 Settings app (Пост vitaxa978 #58400359)
версия: 1.0.95 Pro Settings app (Пост Vista_21 #48626716)
версия: 1.0.100 Settings app (Пост vitaxa978 #55043568)
версия: 1.0.87 Settings_App_1.0.87[1].apk ( 1.92 МБ )
версия: 1.0.87 mod (перевел, убрал рекламу) settings_app_rus_1.0.87[1].apk ( 1.92 МБ )
Сообщение отредактировал iMiKED — 29.02.20, 16:10
Источник
Com android settings apk
Текущая версия: 5.5.4 от 16.09.2018
Версия 5.5.3 (09.09.2018):
framework.jar — версия 5.5.3
SystemUI.apk — версия 5.5.3
framework-res.apk — версия 5.5.1
Версия 5.5.2 (02.09.2018):
framework.jar — версия 5.5.2
SystemUI.apk — версия 5.5.1
framework-res.apk — версия 5.5.1
Версия 5.5.1 (02.09.2017):
framework.jar — версия 5.5.1
SystemUI.apk — версия 5.5.1
framework-res.apk — версия 5.5.1
Версия 5.5 (13.08.2017):
framework.jar — багфикс от 14.08.2017
framework.jar — версия 5.5
SystemUI.apk — версия 5.5
framework-res.apk — версия 5.5
Версия 5.4.1 (05.06.2017):
framework.jar — версия 5.4.1
SystemUI.apk — версия 5.4
framework-res.apk — версия 5.4
Версия 5.4 (03.06.2017):
framework.jar — версия 5.4
SystemUI.apk — версия 5.4
framework-res.apk — версия 5.4
Версия 5.3 (22.05.2017):
framework.jar — версия 5.3
SystemUI.apk — версия 5.3
framework-res.apk — версия 5.3
Версия 5.2 (06.05.2017):
framework.jar — версия 5.2
SystemUI.apk — версия 5.1
framework-res.apk — версия 5.0
Версия 5.1 (04.05.2017):
framework.jar — версия 5.1
SystemUI.apk — версия 5.1
framework-res.apk — версия 5.0
Версия 5.0 (29.04.2017):
framework.jar — версия 5.0
SystemUI.apk — версия 5.0
framework-res.apk — версия 5.0
.method private static warnOrThrowForUndesiredSecureSettingsMutationForTargetSdk(ILjava/lang/String;)V
.locals 2
.param p0, «targetSdkVersion» # I
.param p1, «name» # Ljava/lang/String;
.prologue
.line 1169
const/16 v0, 0x16
# if-gt p0, v0, :cond_1
.line 1170
sget-object v0, Landroid/provider/Settings$System;->PRIVATE_SETTINGS:Ljava/util/Set;
Способ-2:
Понизить версию targetSdkVersion приложения до 22.
Способ-3:
Положить приложение в папку /system/priv-app, установив необходимые разрешения (755 для папки и 644 для приложения).
————
v5.5.4:
(изменены: framework, framework-res, AutoSet. без изменений: SystemUI).
— введено автоматическое определение истинного пути папки /vendor, благодаря чему происходит корректное определение папки монтирования (/system или /vendor) для всех версий Android.
— папками по умолчанию для скриптов и патчей теперь снова являются /system/vendor/scripts/ и /system/vendor/overlay/, соответственно.
— ограничение версии 5.5.3 (см.ниже) на расположение папки автозагрузки скриптов снято, теперь можете располагать ее там, где вам удобно (как и раньше).
— для настроек типа AutoListPreference добавлен новый параметр notify-patch, позволяющий включить всплывающие уведомления при копировании в папку /system/vendor/overlay.
v5.5.3:
(изменены: framework, SystemUI, AutoSet. без изменений: framework-res).
— исправлена критическая ошибка, из-за которой могло происходить зацикливание запроса суперпользователя при выполнении скриптов.
— для версий Android 8.0 и выше автоматически изменяется путь по умолчанию для папок скриптов и патчей — вместо /system/vendor/scripts/ и /system/vendor/overlay/ теперь используются, соответственно, пути /vendor/scripts/ и /vendor/overlay/. Это сделано на случай, если производитель смартфона установил дополнительную защиту на папку vendor (как у меня) и работать со скриптами и патчами через монтирование /system не представляется возможным (смотрите ниже для версии 5.5.2, где я об этом писал), поэтому напрямую монтируется папка /vendor.
— Важно. из предыдущего пункта нововведений следует, что теперь папка автозагрузки скриптов, если она расположена НЕ во внутренней памяти и НЕ на SD-карте, должна обязательно лежать внутри папки vendor, иначе не будет копирования, удаления скриптов и их выполнения после перезагрузки. Это временное решение, в последующих версиях это ограничение будет снято.
v5.5.2:
(изменены: framework, AutoSet. без изменений: framework-res, SystemUI).
— на Android 8.1 из-за отсутствия перемонтирования раздела /system из режима «запись» в режим «только для чтения» после использования его в автономных настройках, смартфон отказывается загружаться (проявляется не у всех), поэтому добавил принудительное перемонтирование в режим «только для чтения«.
— изменена папка по-умолчанию для скриптов, выполняемых при загрузке — вместо /system/vendor/scripts теперь используется просто /system/scripts. Это связано с тем, что на Android 8.0 и выше на некоторых смартфонах (в частности, на моем Asus ZenFone Max Pro (M1) ZB602KL) стоит дополнительная защита на изменения в папке vendor, обойти пока не удалось.
— скрипты теперь действительно выполняются после перезагрузки из всех типов настроек, а не только из AutoListPreference.
— если заданы пустые параметры runscript, runscript-on или runscript-off, то запрос суперпользователя не производится.
— в Android 8.0 и выше в SystemUI больше нет смали Lcom/android/systemui/statusbar/BaseStatusBar, поэтому используйте, например, Lcom/android/systemui/SystemBars.
v5.5.1:
(изменены: код смали для framework.jar и SystemUI.apk, ресурсы для framework-res.apk, программа AutoSet.apk для автономного применения).
— устранен баг с крашем настроек при попытке изменения пути к исходной папке для списков скриптов, патчей, изображений, звуков и файлов.
— для списков изображений, звуков и файлов при значении параметра typevalue=»uri» теперь возвращается оригинальное значение URI, без обратного преобразования. Но выбор при этом происходит сразу, без предварительного формирования списка.
— добавлено экранирование служебных символов «, \, $ при передаче параметров в скрипты.
v5.5 bugfix 1:
— устранен баг с крашем настроек, если ключ, используемый для автозагрузки скриптов не существует, не используется или пустой. Для этого изменены два смали для framework.jar, фикс положить в папку автономных настроек с заменой. Корректировка программы AutoSet не требуется.
v5.5:
(изменены: код смали для framework.jar и SystemUI.apk, ресурсы для framework-res.apk, программа AutoSet.apk для автономного применения).
— расширены возможности параметров broadcast, broadcast-on и broadcast-off — теперь в интент всегда добавляются текущие значения настройки, как extra-параметры с ключом «autoset_value_sendbroadcast«, которые можно прочитать в вашем моде при помощи системного метода getStringExtra(. ).
— расширены возможности параметров runscript, runscript-on и runscript-off — теперь в скрипты всегда передаются текущие значения настройки в качестве параметров, которые скрипты могут принимать при выполнении (скрипт должен содержать стандартный код для приема таких параметров). Параметры скриптам передаются не только при одноразовом выполнении, но и при автозагрузке после ребута устройства. Также, теперь по умолчанию скрипты добавляются в папку автозагрузки скриптов, но при использовании специальных префиксов «o:» и «b:«, соответственно, их можно выполнять одноразово без копирования в папку автозагрузки (как было раньше) или копировать в папку автозагрузки без немедленного выполнения.
— AutoSeekBarPreference навсегда переименован в AutoSeekPreference, в связи с будущими и уже состоявшимися раширениями возможностей, о которых далее в логе.
— в AutoSeekPreference добавлен новый тип слайдера — круговой, а также появилась возможность располагать слайдеры не только под заголовком или в окне диалога, но и справа от заголовков, по типу чекбоксов и переключателей. Также добавились возможности: вращение слайдеров на 90, 180 и 270 градусов, изменение размера в единицах dip, возможность отображения единиц измерения. Добавлены новые параметры: typeseek, location, rotation, sweepangle, size, clockwise, unit. Удален параметр signdialog.
— формат лайотов AutoColorPickerPreference переработан, а также добавлены новые возможности: два новых вида палитры — круговая и в виде цветка, превью возле заголовка можно отображать в виде круга или квадрата. Добавились новые параметры: typepicker, lightslider, typeview, coloredit, density.
— улучшение совместимости с программно-аппаратными платформами, отличными от процессоров Qualcomm.
v5.4.1:
(изменены: код смали для framework.jar и программа AutoSet.apk для автономного применения. Код смали для SystemUI.apk и ресурсы для framework-res.apk остались без изменений).
— устранен баг с определением папки автозагрузки по умолчанию для скриптов, что приводило к краху настроек или формированию пустых списков скриптов (спасибо за баг-репорт lexadjsss).
— попутно исправлены возможные похожие проблемы с крашами настроек или формированием пустых списков оверлей-патчей.
v5.4:
(изменены: код смали для framework.jar и SystemUI.apk, ресурсы для framework-res.apk, программа AutoSet.apk для автономного применения).
— устранены утечки памяти, приводившие к внезапным бутлупам телефона, из-за вынужденного использования множества статических ссылок на объекты (спасибо ivan-68 за баг-репорты и источники информации).
— для настроек в виде списков массивов значений введены аналоги системных параметров android:entries и android:entryValues — entries и entryvalues, соответственно. В новых параметрах можно использовать как обычный способ прописывания массивов через ссылки вида «@array/. » или «@android:array/. «, так и простое задание в виде строковой последовательности, где в качестве разделителя используется «;» (точка с запятой), а в качестве префикса всей последовательности — «string/. » (без знака @) или «android:string/. » (без знака @) при чтении строк массива из ресурсов, либо без префикса для чтения строк массива непосредственно из последовательности.
— для настроек в виде списков в параметре drawablearray теперь также можно задавать массив иконок в виде строковой последовательности (см. выше), где в качестве разделителя используется «;» (точка с запятой), а в качестве префикса всей последовательности — «drawable/. » (без знака @) или «android:drawable/. » (без знака @) для чтения иконок из ресурсов. Непосредственно прописать иконки в строку, как вы понимаете, нельзя.
— для настроек в виде списков введен новый параметр filterlist, позволяющий фильтровать вывод любых типов списков по значениям и названиям, а для списков активити, сервисов и ресиверов — также по действиям и категориям.
— для настроек типа чекбокс и свитч отображение текстовых пояснений android:summaryOn и android:summaryOff теперь зависит от параметра переопределения DEPEND-OUT, который позволяет инвертировать состояние ВКЛЮЧЕНО/ОТКЛЮЧЕНО.
— для всех типов настроек (кроме чекбоксов и свитчей, т.к. для них существуют соответствующие системные параметры) введены новые параметры summary-on и summary-off — для возможности задания текстовых пояснений при разных состояниях настроек (ВКЛЮЧЕНО/ОТКЛЮЧЕНО).
— для всех типов настроек расширен параметр needreboot — добавлена возможность перезагрузки домашнего экрана по умолчанию (needreboot=»home»), а также возможность остановки любого заданного в параметре приложения (needreboot=»имя пакета приложения»). При этом, для каждого вида ребута во всплывающих окнах содержатся соответствующие именно им сообщения.
v5.3:
(изменены: код смали для framework.jar, ресурсы для framework-res.apk, код смали для SystemUI.apk, программа AutoSet.apk для автономного применения).
— введен новый класс (смали) AutoPreference, для облегчения взаимодействия с автономными настройками из ваших модов. В настоящее время содержит общие методы для запуска/останова приложений, запуска активити, запуска/останова сервисов. Набор общих методов с каждой новой версией автономных настроек будет пополняться.
— добавлены 3 новых типа списков (пока без фильтрации): активити (typelist=»activity»), сервисы (typelist=»service») и broadcast-ресиверы (typelist=»receiver»). Не для всех активити и сервисов можно визуально увидеть факт запуска/останова, поскольку далеко не все они имеют какой-либо интерфейс, к тому же многие потребуют от вас добавления дополнительных разрешений в ваше приложение, но даже это не гарантирует запуск в силу ограничений безопасности андроид.
— добавлены расширения для списков скриптов — типы script-n и script-n*, в таких списках выполнение скриптов не производится, изменяются только значения в ключе настройки.
— для списков скриптов, патчей, звуковых и произвольных файлов теперь можно назначить пользовательский массив иконок, как для списков значений.
— для всех настроек появился 3-й вид перезагрузки — только интерфейс, для чего необходимо установить параметр needreboot=»ui» (спасибо Hal9k за командную строку), требуются права суперпользователя.
— для SystemUI больше не надо править манифест, так как перезагрузка приложений при изменении пути папки автозагрузки скриптов теперь осуществляется из командной строки с запросом прав суперпользователя (см.пункт выше).
— для автономной настройки AutoColorPickerPreference добавлен отдельный лайоут панели выбора цвета в ландшафтной ориентации (спасибо Hal9k за лайоут).
— исправлены баги:
. сброс настроек в Android Nougat на дефолтные значения при очистке данных приложений, в которых используются автономные настройки, происходил только для самой первой настройки в списке.
. в приложении AutoSet использование автономной настройки AutoColorPickerPreference из фрейма приводило к краху AutoSet из-за получения лайоута по другому пути.
. в одиночных списках звуковых файлов на Android Nougat при прослушивании мелодий визуальное переключение отсутствовало.
v5.2:
(изменен код смали для framework.jar и программа AutoSet.apk для автономного применения, код смали для SystemUI.apk и ресурсы для framework-res.apk остались без изменений).
— в параметре typeset всех автономных настроек теперь можно задавать произвольные хранилища настроек в виде описания их полных путей, что позволяет использовать не только стандартные хранилища андроид, но и специфичные хранилища производителей устройств. В связи с этим изменено описание параметра и добавлены примеры задания параметра для моделей Motorola.
— для списков изображений, звуковых или произвольных файлов добавлен новый параметр typevalue, позволяющий задать тип хранения значения ключа в виде специального идентификатора URI (Uniform Resource Identifier), по простому — ссылки на файл. Это позволяет использовать автономные настройки без изменения некоторых модов, в которых пути к файлам используются в виде таких ссылок. В связи с этим обновлено и дополнено описание параметров списков. В программу AutoSet добавлены примеры.
— для списков скриптов, патчей, изображений, звуковых или произвольных файлов добавилась возможность выбора (в том числе множественного) сразу, без предварительного формирования списков. Для этого в параметре typelist к основному типу списка надо просто добавить символ * (звездочка). В связи с этим обновлено и дополнено описание параметров списков. В программу AutoSet добавлены примеры.
— для списков изображений изменен вид масштабирования изображений в списке и в виде иконки возле заголовка списка. Теперь изображение сохраняет соотношение сторон.
v5.1:
— для версий анроид выше MM 6.0.1 в автономные настройки введено прослушивание факта сброса данных конкретного приложения, для предотвращения несанкционированного сброса настроек на дефолтные значения в приложении Settings.apk (возможно не только для него). В связи с этим обновлен код смали для framework.jar и SystemUI.apk, а также описание для установки в SystemUI.apk. Обновлено описание общих способов применений в связи с выходом новой версии. Ресурсы для framework-res.apk остались без изменений. Программа Autoset.apk для автономного применения осталась без изменений.
v5.0:
— во все типых настроек добавлена автоматическая очистка ключа, если ранее он использовался для другого типа настроек. В предыдущих версиях подобная ситуация приводила к краху приложения, в котором использовалась автономная настройка, если предварительно не была производена очистка данных приложения.
— для настройки типа AutoListPreference добавлены широкие возможности по формированию и выбору различных типов списков (параметр typelist): обычных массивов значений, приложений с лаунчером и без, скриптов, оверлей-патчей, изображений, звуков, произвольных файлов. Выбранные скрипты могут выполняться однократно и автоматически после загрузки устройства, только автоматически после загрузки или только однократно. Скрипты могут отображаться в списке с произвольным названием, задаваемым в теле скрипта по специальному формату. Выбранные оверлей-патчи автоматически копируются в системную папку /system/vendor/overlay и, при наличии поддержки со стороны прошивки, применяются в реальном времени, либо после перезагрузки устройства. Оверлей-патчи могут иметь произвольное название и иконку, если вы специально определите их в ресурсах патча. Для изображений динамически формируются их мини-версии, позволяющие осуществлять предпросмотр в списке. Звуки в списке при выборе можно прослушать системным плеером.
— для настройки типа AutoListPreference добавлен параметр pathlist, определяющий для списков скриптов, оверлей-патчей, изображений, звуков или произвольных файлов путь до папок их выбора. При отсутствии параметра выбор происходит по всему устройству при помощи системного браузера.
— для настройки типа AutoListPreference добавлен параметр multichoice, определяющий возможность выбора сразу нескольких пунктов списка (множественный выбор), при этом в строке ключа выбранные значения разделяются ; (точкой с запятой).
— для настройки типа AutoListPreference добавлен параметр search, определяющий наличие/отсутствие строки поиска в списке.
— для настройки типа AutoListPreference добавлен параметр visiblevalue, определяющий видимость в списке самих значений.
— для настройки типа AutoEditTextPreference добавлена возможность отправки широковещательных сообщений и выполнения скриптов прямо из поля ввода значений: с введенными в начале поля префиксами broadcasts: ИЛИ scripts:, соответственно.
— во все типы настроек добавлен параметр notify-broadcast, определяющий необходимость появления всплывающего уведомления при отправке широковещательных сообщений.
— во всех типах настроек к параметру broadcast добавились параметры broadcast-on и broadcast-off, определяющие широковещательные сообщения, которые надо отправлять при изменении состояния настройки ВКЛЮЧЕНО/ОТКЛЮЧЕНО, соответственно. Параметр broadcast имеет приоритет (при его применении «дочерние» параметры игнорируются) и отправка сообщений происходит при любом состоянии настройки.
— во все типы настроек добавлен параметр notify-script, определяющий необходимость появления всплывающего уведомления при выполнении скриптов.
— во все типы настроек добавлены параметры runscript, runscript-on, runscript-off, определяющие пути до скриптов, которые надо однократно выполнять: при любом изменении настройки или при изменении состояния настройки ВКЛЮЧЕНО/ОТКЛЮЧЕНО, соответственно.
Параметр runscript имеет приоритет (при его применении «дочерние» параметры игнорируются).
— во все типы настроек добавлен параметр depend-out, определяющий, при каком текущем значении зависимые от нее настройки будут неактивны. Имеет приоритет перед значениями по-умолчанию.
— теперь зависимость текущей настройки возможна от любого другого типа настроек.
— во все типы настроек добавлен параметр depend-in, определяющий, при каком значении ключевой (dependency) настройки текущая настройка будет активна. Имеет приоритет перед значениями по-умолчанию.
— во все типы настроек добавлен параметр needreboot, определяющий необходимость обычной или быстрой перезагрузки устройства, с запросом.
v4.0 bugfix:
— исправил баг с неотображением лайотов настроек в виде списка, колорпикера и сикбара (ползунка).
v4.0:
— автономные настройки теперь работают, помимо хранилища Settings$System, с хранилищами Settings$Global и Settings$Secure.
Для этого в автономные настройки добавлено новое поле typeset=, описание по спойлером
Описание автономных настроек -> Описание общих полей настроек -> Необязательные поля -> typeset=.
Изменений в ресурсах нет, только в смали.
v3.0 fix 2:
— для полной совместимости со всеми версиями дрюшки поменял оставшиеся поля лайотов: layout_toEndOf на layout_toRightOf, и layout_alignEnd на layout_alignRight. Изменений в смали нет, только в ресурсах.
v3.0 fix:
— для лучшей совместимости поменял поля лайотов: вместо alignParenStart и alignParenEnd — alignParentLeft и alignParentRight, соответственно. Изменений в смали нет, только в ресурсах.
— дополнил описание поля android:dependency — забыл написать, что другие настройки теперь могут зависеть также и от значения прогресса слайдера ( 0)
v3.0:
— добавил для списка возможность назначать массив иконок, соответствующих массиву значений,
в зависимости от наличия специально введеного поля drawablearray.
— добавил возможность отображения слайдера (он же ползунок, он же сикбар) в виде диалога,
в зависимости от значения и наличия специально введеного поля «signdialog«.
— добавил для настроек типов AutoColorPickerPreference, AutoSeekBarPreference, AutoListPreference, AutoEditTextPreference
возможность задания индивидуального цвета фона диалога, в зависимости от значения и наличия специально введеного поля color.
— поправил и дополнил описание некоторых полей.
— добавил описание необязательных полей android:icon и android:dialogIcon, т.к. в системе есть возможность назначать индивидуальные иконки для заголовков настроек и заголовков диалогов.
v2.1:
— как оказалось, работает и на ICS.
— поправил описание полей android:summary и summary.
— поправил последнюю микробяку в AutoCheckBoxPreference и AutoSwitchPreference.
v2.0:
— поправил одну бяку в AutoCheckBoxPreference и AutoSwitchPreference.
v1.0:
— начало начал.
Все начальные версии (до v4.0 bugfix включительно) автономных настроек находятся здесь.
2. AutoColorPickerPreference:
Палитра в виде панели фотошопа —
автор: Sergey Margaritov, исходники: https://github.com/att…ColorPickerPreference/
Круговая палитра и в виде цветка —
автор: QuadFlask, исходники: https://github.com/QuadFlask/colorpicker/
Адаптировал для автономных настроек.
3. AutoSeekPreference:
Линейный слайдер — из фреймворка системы.
Круговой слайдер —
автор: neild001, исходники: https://github.com/neild001/SeekArc/
Адаптировал для автономных настроек.
4. AutoCheckBoxPreference, AutoSwitchPreference, AutoListPreference, AutoEditTextPreference:
на основе стоковых CheckBoxPreference, SwitchPreference, ListPreference, EditTextPreference из framework.jar,
Переделал для автономной работы.
5. 6htGear Rom control V2.1
Подсмотрел способ формирования динамических списков, когда массив не задан.
Для чего все это делалось.
Как известно, добавление настроек для некоего мода всегда представляет собой довольно нетривиальную задачу.
На сегодня существует, как минимум, 3 способа их добавления:
1. Использование сторонних программ типа UniPrefs от sk0t или m7parts от 7OH.
Данный способ простой, под силу новичкам, но многим не нравится такой способ в силу субъективных причин.
К тому же, в указанных программах довольно ограниченный набор добавляемых типов настроек (только чекбокс, переключатель и список).
2. Использование сравнительно новых сторонних программ типа RomControl с сайта XDA или некой CustomSettings, тоже вроде бы с сайта XDA (не видел, но слышал про нее).
Данный способ также сравнительно простой и под силу новичкам, но многим не нравится в силу тех же субъективных причин.
3. Использование каждый раз для нового мода кучки новых непонятных смали, вставляемых в стоковое приложение
(сеттингс, звонилку и т.д. и т.п.), либо трудоемкое добавление обработки каждого ключа в стоковые смали приложения.
К тому же, новичкам это, как правило, не под силу.
Я хочу представить 4-й способ.
Один раз добавив в framework.jar мой набор смали, в framework-res.apk несколько лайотов, картинок и строк, а также, добавив в SystemUI.apk один смали и поправив один стоковый, можно без новых заморочек в дальнейшем со смалями добавлять ЛЮБЫЕ свои настройки в ЛЮБЫЕ приложения, в которых есть какие-то настройки.
Вам больше не понадобится думать как и куда добавить инструмент изменения той или иной настройки мода.
А также, отпадет необходимость использования сторонних программ для изменения настроек ваших модов.
Хотя, те же самые автономные настройки можно использовать и отдельно внутри тех же приложений типа UniPrefs / m7parts / RomControl / CustomSettings.
Настройки применяются САМОСТОЯТЕЛЬНО в реальном времени.
Определения автономных настроек можно вставлять отдельно в любой xml-файл любых настроек любых приложений, либо в составе собственного блока настроек, вставляемого в другие блоки.
Автономные настройки также можно использовать локально внутри любого приложения, скопировав необходимые выбранные смали в ваше приложение и соответственно изменив пути в смали и определениях.
Цель создания автономных настроек — сделать настройки модов максимально удобными и логичными.
На текущий момент (версия 5.5.4) поддерживаются следующие типы настроек:
- Чекбокс
- Переключатель
- Поле ввода значений (текста)
- Слайдер (ползунок) — круговой и линейный
- Панель выбора цвета (колорпикер), три вида палитры — обычная, в виде цветка, в виде круга
- Списки:
- значений
- приложений
- активити
- сервисов
- broadcast-ресиверов
- скриптов
- оверлей-патчей
- изображений
- звуковых файлов
- произвольных файлов
Для применения достаточно в xml-файл настроек вашего приложения вставить вызовы автономных настроек, в таких видах:
Естественно, строки и массивы, определяющие содержимое настроек, при этом надо будет также добавить в ваше приложение (сеттингс, звонилка, мэйл и т.д. и т.п.).
И, конечно же, обработку собственно самого действия при изменения ключа вашего мода, никто не отменял и она остается за вами :yes2:
На текущий момент автономные настройки позволяют определить наибольшее количество типов и видов используемых вообще в приложениях настроек, чем где-либо ранее.
Источник