website/docs/ru_RU/guide/module-config.md
KernelSU предоставляет встроенную систему конфигурации, которая позволяет модулям хранить постоянные или временные настройки в формате ключ-значение. Конфигурации хранятся в бинарном формате по пути /data/adb/ksu/module_configs/<module_id>/ и имеют следующие характеристики:
persist.config): сохраняется после перезагрузки до явного удаления или деинсталляции модуляtmp.config): автоматически очищается на этапе post-fs-data при каждой загрузкеПри чтении конфигурации временные значения имеют приоритет над постоянными для одного и того же ключа.
Все скрипты модуля (post-fs-data.sh, service.sh, boot-completed.sh и др.) выполняются с установленной переменной окружения KSU_MODULE, содержащей ID модуля. Вы можете использовать команды ksud module config для управления конфигурацией модуля:
# Получить значение конфигурации
value=$(ksud module config get my_setting)
# Установить постоянное значение конфигурации
ksud module config set my_setting "some value"
# Установить временное значение конфигурации (очищается после перезагрузки)
ksud module config set --temp runtime_state "active"
# Установить значение из stdin (полезно для многострочного или сложного текста)
ksud module config set my_key <<EOF
многострочное
текстовое значение
EOF
# Или передать через pipe из команды
echo "значение" | ksud module config set my_key
# Явный флаг stdin
cat file.json | ksud module config set json_data --stdin
# Вывести все записи конфигурации (объединенные постоянные и временные)
ksud module config list
# Удалить запись конфигурации
ksud module config delete my_setting
# Удалить временную запись конфигурации
ksud module config delete --temp runtime_state
# Очистить все постоянные конфигурации
ksud module config clear
# Очистить все временные конфигурации
ksud module config clear --temp
Система конфигурации применяет следующие ограничения:
^[a-zA-Z][a-zA-Z0-9._-]+$ (как ID модуля)
0x4b53554d ("KSUM") и проверкой версииСистема конфигурации идеальна для:
::: tip ЛУЧШИЕ ПРАКТИКИ
ksud module config list для отладки проблем с конфигурацией
:::Система конфигурации модулей предоставляет специальные ключи конфигурации для расширенных сценариев использования:
Вы можете динамически переопределить поле description из module.prop, установив ключ конфигурации override.description:
# Переопределить описание модуля
ksud module config set override.description "Пользовательское описание, отображаемое в менеджере"
При получении списка модулей, если существует конфигурация override.description, она заменит исходное описание из module.prop. Это полезно для:
Модули могут объявлять, какими функциями KernelSU они управляют, используя шаблон конфигурации manage.<feature>. Поддерживаемые функции соответствуют внутреннему перечислению FeatureId в KernelSU:
Поддерживаемые функции:
su_compat - Режим совместимости SUkernel_umount - Автоматическое размонтирование ядра# Объявить, что этот модуль управляет совместимостью SU и включает её
ksud module config set manage.su_compat true
# Объявить, что этот модуль управляет размонтированием ядра и отключает его
ksud module config set manage.kernel_umount false
# Удалить управление функцией (модуль больше не контролирует эту функцию)
ksud module config delete manage.su_compat
Как это работает:
manage.<feature> указывает, что модуль управляет этой функциейtrue/1 для включения, false/0 (или любое другое значение) для отключенияУправляемые функции доступны через API списка модулей как поле managedFeatures (строка, разделённая запятыми). Это позволяет:
::: warning ТОЛЬКО ПОДДЕРЖИВАЕМЫЕ ФУНКЦИИ
Используйте только предопределённые имена функций, перечисленные выше (su_compat, kernel_umount). Они соответствуют реальным внутренним функциям KernelSU. Использование других имён функций не вызовет ошибок, но не будет иметь никакого функционального назначения.
:::