diff --git a/website/docs/.vitepress/locales/index.ts b/website/docs/.vitepress/locales/index.ts index 5e5ee57e..de728a6a 100644 --- a/website/docs/.vitepress/locales/index.ts +++ b/website/docs/.vitepress/locales/index.ts @@ -5,6 +5,7 @@ import zh_TW from './zh_TW' import vi_VN from './vi_VN' import id_ID from './id_ID' import ja_JP from './ja_JP' +import ru_RU from './ru_RU' export default defineConfig({ locales: { @@ -43,6 +44,12 @@ export default defineConfig({ lang: id_ID.lang, themeConfig: id_ID.themeConfig, description: id_ID.description + }, + ru_RU: { + label: 'Русский', + lang: ru_RU.lang, + themeConfig: ru_RU.themeConfig, + description: ru_RU.description } } }) diff --git a/website/docs/.vitepress/locales/ru_RU.ts b/website/docs/.vitepress/locales/ru_RU.ts new file mode 100644 index 00000000..a26e42ff --- /dev/null +++ b/website/docs/.vitepress/locales/ru_RU.ts @@ -0,0 +1,61 @@ +import { createRequire } from 'module' +import { defineConfig } from 'vitepress' + +const require = createRequire(import.meta.url) +const pkg = require('vitepress/package.json') + +export default defineConfig({ + lang: 'ru-RU', + description: 'Решение на основе ядра root для устройств Android GKI.', + + themeConfig: { + nav: nav(), + + lastUpdatedText: 'последнее обновление', + + sidebar: { + '/ru_RU/guide/': sidebarGuide() + }, + + socialLinks: [ + { icon: 'github', link: 'https://github.com/tiann/KernelSU' } + ], + + footer: { + message: 'Выпускается под лицензией GPL3.', + copyright: 'Авторские права © 2022-текущее Разработчики KernelSU' + }, + + editLink: { + pattern: 'https://github.com/tiann/KernelSU/edit/main/website/docs/:path', + text: 'Редактировать эту страницу на GitHub' + } + } +}) + +function nav() { + return [ + { text: 'Руководство', link: '/ru_RU/guide/what-is-kernelsu' }, + { text: 'Github', link: 'https://github.com/tiann/KernelSU' } + ] +} + +function sidebarGuide() { + return [ + { + text: 'Руководство', + items: [ + { text: 'Что такое KernelSU?', link: '/ru_RU/guide/what-is-kernelsu' }, + { text: 'Установка', link: '/ru_RU/guide/installation' }, + { text: 'Как собрать?', link: '/ru_RU/guide/how-to-build' }, + { text: 'Реализация в устройствах, не относящихся к GKI', link: '/ru_RU/guide/how-to-integrate-for-non-gki'}, + { text: 'Неофициально поддерживаемые устройства', link: '/ru_RU/guide/unofficially-support-devices.md' }, + { text: 'Руководство по разработке модулей', link: '/ru_RU/guide/module.md' }, + { text: 'Профиль приложений', link: '/ru_RU/guide/app-profile.md' }, + { text: 'Выход из циклической загрузки', link: '/ru_RU/guide/rescue-from-bootloop.md' }, + { text: 'FAQ', link: '/ru_RU/guide/faq' }, + { text: 'Скрытые возможности', link: '/ru_RU/guide/hidden-features' }, + ] + } + ] +} \ No newline at end of file diff --git a/website/docs/ru_RU/guide/difference-with-magisk.md b/website/docs/ru_RU/guide/difference-with-magisk.md index 067256cb..d1096747 100644 --- a/website/docs/ru_RU/guide/difference-with-magisk.md +++ b/website/docs/ru_RU/guide/difference-with-magisk.md @@ -1,8 +1,8 @@ -# Различия с Magisk +# Различия с Magisk {#title} Несмотря на большое количество сходств между модулями KernelSU и модулями Magisk, неизбежно возникают и различия, обусловленные совершенно разными механизмами их реализации. Если вы хотите, чтобы ваш модуль работал как на Magisk, так и на KernelSU, вы должны понимать эти различия. -## Сходства +## Сходства {#similarities} - Формат файлов модулей: оба используют формат zip для организации модулей, и формат модулей практически одинаков - Каталог установки модулей: оба расположены в `/data/adb/modules`. @@ -13,7 +13,7 @@ - sepolicy.rule: полностью совпадает - BusyBox: скрипты запускаются в BusyBox с включенным "автономным режимом" в обоих случаях -## Различия +## Различия {#differences} Прежде чем разбираться в различиях, необходимо знать, как отличить, в каком режиме работает ваш модуль - KernelSU или Magisk. Для этого можно использовать переменную окружения `KSU` во всех местах, где можно запустить скрипты модуля (`customize.sh`, `post-fs-data.sh`, `service.sh`). В KernelSU эта переменная окружения будет установлена в значение `true`. diff --git a/website/docs/ru_RU/guide/how-to-integrate-for-non-gki.md b/website/docs/ru_RU/guide/how-to-integrate-for-non-gki.md index c3ce9b98..0a74cc6f 100644 --- a/website/docs/ru_RU/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/ru_RU/guide/how-to-integrate-for-non-gki.md @@ -1,4 +1,4 @@ -# Как интегрировать KernelSU для не GKI ядер? +# Как интегрировать KernelSU для не GKI ядер? {#introduction} KernelSU может быть интегрирован в ядра, отличные от GKI, и был перенесен на версии 4.14 и ниже. @@ -11,7 +11,7 @@ KernelSU может быть интегрирован в ядра, отличн 1. Автоматически с помощью `kprobe` 2. Вручную -## Интеграция с kprobe +## Интеграция с kprobe {#using-kprobes} KernelSU использует kprobe для выполнения хуков ядра, если *kprobe* хорошо работает в вашем ядре, то рекомендуется использовать именно этот способ. @@ -40,7 +40,7 @@ CONFIG_KPROBE_EVENTS=y закомментируйте `ksu_enable_sucompat()` и `ksu_enable_ksud()` в файле `KernelSU/kernel/ksu.c`, если устройство загружается нормально, то может быть нарушена работа kprobe. ::: -## Ручная модификация исходного кода ядра +## Ручная модификация исходного кода ядра {#modify-kernel-source-code} Если kprobe не работает в вашем ядре (возможно, это ошибка апстрима или ядра ниже 4.8), то можно попробовать следующий способ: diff --git a/website/docs/ru_RU/guide/installation.md b/website/docs/ru_RU/guide/installation.md index 32c10a7a..8aeb3427 100644 --- a/website/docs/ru_RU/guide/installation.md +++ b/website/docs/ru_RU/guide/installation.md @@ -1,6 +1,6 @@ -# Установка +# Установка {#title} -## Проверьте, поддерживается ли ваше устройство +## Проверьте, поддерживается ли ваше устройство {#check-if-supported} Скачайте приложение менеджера KernelSU с сайта [GitHub Releases](https://github.com/tiann/KernelSU/releases) или [Coolapk market](https://www.coolapk.com/apk/me.weishu.kernelsu) и установите его на устройство: @@ -11,7 +11,7 @@ Для устройств, показывающих `Unsupported`, здесь находится [Unofficially-support-devices](unofficially-support-devices.md), вы можете скомпилировать ядро самостоятельно. ::: -## Резервное копирование стокового файла boot.img +## Резервное копирование стокового файла boot.img {#backup-boot-image} Перед прошивкой необходимо создать резервную копию файла boot.img. Если возникнет ошибка загрузки, вы всегда сможете восстановить систему, перепрошив ее на заводскую загрузку с помощью fastboot. @@ -19,9 +19,9 @@ Прошивка может привести к потере данных, поэтому обязательно выполните этот шаг перед переходом к следующему шагу!!! При необходимости можно также создать резервную копию всех данных на телефоне. ::: -## Необходимые знания +## Необходимые знания {#acknowage} -### ADB и fastboot +### ADB и fastboot {#adb-and-fastboot} По умолчанию в этом руководстве вы будете использовать инструменты ADB и fastboot, поэтому, если вы их не знаете, рекомендуем сначала воспользоваться поисковой системой, чтобы узнать о них. @@ -43,13 +43,13 @@ w .x .y -zzz -k -something Обратите внимание, что SubLevel в версии ядра не является частью KMI! Это означает, что `5.10.101-android12-9-g30979850fc20` имеет тот же KMI, что и `5.10.137-android12-9-g30979850fc20`! ::: -### Версия ядра и версия Android +### Версия ядра и версия Android {#kernel-version-vs-android-version} Обратите внимание: **Версия ядра и версия Android - это не обязательно одно и то же!** Если вы обнаружили, что версия ядра `android12-5.10.101`, а версия системы Android - Android 13 или другая, не удивляйтесь, поскольку номер версии системы Android не обязательно совпадает с номером версии ядра Linux; Номер версии ядра Linux обычно соответствует версии системы Android, поставляемой с **устройством при его поставке**. При последующем обновлении системы Android версия ядра, как правило, не меняется. При необходимости прошивки **укажите версию ядра!!!**. -## Введение +## Введение {#installation-introduction} Существует несколько способов установки KernelSU, каждый из которых подходит для разных сценариев, поэтому выбирайте их по своему усмотрению. @@ -58,7 +58,7 @@ w .x .y -zzz -k -something 3. Установка с помощью fastboot с использованием boot.img, предоставленного KernelSU 4. Восстановить boot.img вручную и установить его -## Установка с помощью пользовательского Recovery +## Установка с помощью пользовательского Recovery {#install-by-recovery} Необходимые условия: На устройстве должен быть установлен пользовательский Recovery, например TWRP; если его нет или доступен только официальный Recovery, воспользуйтесь другим способом. @@ -70,7 +70,7 @@ w .x .y -zzz -k -something PS. Данный способ подходит для любой установки (не ограничиваясь начальной установкой или последующими обновлениями), если вы используете TWRP. -## Установка с помощью Kernel Flasher +## Установка с помощью Kernel Flasher {#install-by-kernel-flasher} Необходимые условия: Ваше устройство должно быть рутованным. Например, вы установили Magisk, чтобы получить root, или установили старую версию KernelSU и должны обновить ее до другой версии; если ваше устройство не укоренено, попробуйте другие методы. @@ -87,11 +87,11 @@ PS. Данный способ подходит для любой установ PS. Этот способ более удобен при обновлении KernelSU и может быть выполнен без компьютера (сначала сделайте резервную копию!). . -## Установка с помощью boot.img, предоставленного KernelSU +## Установка с помощью boot.img, предоставленного KernelSU {#install-by-kernelsu-boot-image} Этот способ не требует наличия TWRP и root-прав на телефоне; он подходит для первой установки KernelSU. -### Найти подходящий boot.img +### Найти подходящий boot.img {#found-propery-image} KernelSU предоставляет общий boot.img для устройств GKI, и его необходимо прошить в загрузочный раздел устройства. @@ -105,7 +105,7 @@ KernelSU предоставляет общий boot.img для устройст 3. Для устройств Pixel следуйте приведенным ниже инструкциям. ::: -### прошить boot.img на устройство +### прошить boot.img на устройство {#flash-boot-image} Используйте `adb` для подключения устройства, затем выполните `adb reboot bootloader` для входа в режим fastboot, после чего используйте эту команду для прошивки KernelSU: @@ -117,7 +117,7 @@ fastboot flash boot boot.img Если устройство поддерживает `fastboot boot`, можно сначала использовать `fastboot boot boot.img`, чтобы попытаться использовать boot.img для загрузки системы. Если произойдет что-то непредвиденное, перезагрузите его снова для загрузки. ::: -### перезагрузка +### перезагрузка {#reboot} После завершения прошивки необходимо перезагрузить устройство: @@ -125,7 +125,7 @@ fastboot flash boot boot.img fastboot reboot ``` -## Исправить boot.img вручную +## Исправить boot.img вручную {#patch-boot-image} Для некоторых устройств формат boot.img не так распространен, например, не `lz4`, `gz` или несжатый; наиболее типичным является Pixel, его boot.img имеет формат `lz4_legacy` со сжатием, ramdisk может быть `gz`, также может быть `lz4_legacy` со сжатием; в это время, если напрямую прошить boot.img, предоставляемый KernelSU, телефон может не загрузиться; в это время можно вручную исправить boot.img для достижения цели. @@ -136,13 +136,13 @@ fastboot reboot Среди них Android-Image-Kitchen подходит для работы на ПК, а magiskboot нуждается в сотрудничестве мобильного телефона. -### Подготовка +### Подготовка {#patch-preparation} 1. Получите стоковый boot.img вашего телефона; его можно получить у производителя устройства, возможно, вам понадобится [payload-dumper-go](https://github.com/ssut/payload-dumper-go) 2. Загрузите zip-файл AnyKernel3, предоставленный KernelSU, который соответствует версии KMI вашего устройства (можно обратиться к разделу *Установка с помощью пользовательского Recovery*). 3. Распакуйте пакет AnyKernel3 и получите файл `Image`, который является файлом ядра KernelSU. -### Использование Android-Image-Kitchen +### Использование Android-Image-Kitchen {#using-android-image-kitchen} 1. Загрузите программу Android-Image-Kitchen на свой компьютер. 2. Поместите файл boot.img в корневую папку Android-Image-Kitchen. @@ -150,7 +150,7 @@ fastboot reboot 4. Замените `boot.img-kernel` в каталоге `split_img` тем `образом`, который вы извлекли из AnyKernel3 (обратите внимание на изменение названия на boot.img-kernel). 5. Выполните команду `./repackimg.sh` в корневом каталоге 在 Android-Image-Kitchen; Вы получите файл с именем `image-new.img`; Прошейте этот boot.img с помощью fastboot (см. предыдущий раздел). -### Использование magiskboot +### Использование magiskboot {#using magiskboot} 1. Загрузите последнюю версию Magisk с [Release Page](https://github.com/topjohnwu/Magisk/releases). 2. Переименуйте Magisk-*.apk в Magisk-vesion.zip и разархивируйте его. @@ -161,7 +161,7 @@ fastboot reboot 7. Замените `kernel` на `Image`: `mv -f Image kernel`. 8. Выполните команду `./magiskboot repack boot.img`, чтобы перепаковать boot img, и получите файл `new-boot.img`, прошейте его на устройство с помощью fastboot. -## Другие методы +## Другие методы {#other-methods} На самом деле все эти способы установки имеют только одну основную идею - **заменить исходное ядро на ядро, предоставляемое KernelSU**; если это возможно, то установка возможна; например, возможны следующие способы. diff --git a/website/docs/ru_RU/guide/module.md b/website/docs/ru_RU/guide/module.md index f9773e1e..f22a032f 100644 --- a/website/docs/ru_RU/guide/module.md +++ b/website/docs/ru_RU/guide/module.md @@ -1,4 +1,4 @@ -# Модульные справочники +# Руководство по разработке модулей {#introduction} KernelSU предоставляет механизм модулей, позволяющий добиться эффекта модификации системного каталога при сохранении целостности системного раздела. Этот механизм принято называть "бессистемным". @@ -22,7 +22,7 @@ KernelSU предоставляет механизм модулей, позво BusyBox в KernelSU теперь использует бинарный файл, скомпилированный непосредственно из проекта Magisk. **Поэтому вам не нужно беспокоиться о проблемах совместимости между скриптами BusyBox в Magisk и KernelSU, поскольку они абсолютно одинаковы! ::: -## Модули KernelSU +## Модули KernelSU {#kernelsu-modules} Модуль KernelSU - это папка, размещенная в каталоге `/data/adb/modules` и имеющая следующую структуру: @@ -100,7 +100,7 @@ description= - Другими, не упомянутыми выше, могут быть любые **однострочные** строки. - Обязательно используйте тип перевода строки `UNIX (LF)`, а не `Windows (CR+LF)` или `Macintosh (CR)`. -### Сценарии командной оболочки +### Сценарии командной оболочки {#shell-scripts} Чтобы понять разницу между `post-fs-data.sh` и `Service.sh`, прочитайте раздел [Boot Scripts](#boot-scripts). Для большинства разработчиков модулей `service.sh` должно быть достаточно, если вам нужно просто запустить загрузочный скрипт. @@ -110,7 +110,7 @@ description= С помощью переменной окружения KSU можно определить, выполняется ли сценарий в KernelSU или в Magisk. Если скрипт выполняется в KernelSU, то это значение будет равно true. ::: -### каталог `system` +### каталог `system` {#system-directories} После загрузки системы содержимое этого каталога будет наложено поверх раздела /system с помощью overlayfs. Это означает, что: @@ -156,7 +156,7 @@ REPLACE=" Если для вашего модуля требуются дополнительные патчи sepolicy, добавьте эти правила в данный файл. Каждая строка в этом файле будет рассматриваться как утверждение политики. -## Установщик модулей +## Установщик модулей {#module-installer} Инсталлятор модуля KernelSU - это модуль KernelSU, упакованный в zip-файл, который может быть прошит в APP-менеджере KernelSU. Простейший установщик модуля KernelSU - это просто модуль KernelSU, упакованный в zip-файл. @@ -174,7 +174,7 @@ module.zip Модуль KernelSU НЕ поддерживается для установки в пользовательское Recovery!!! ::: -### Персонализация +### Персонализация {#customizing-installation} Если вам необходимо настроить процесс установки модуля, то в качестве опции вы можете создать в программе установки скрипт с именем `customize.sh`. Этот скрипт будет _источником_ (не исполняться!) сценария установщика модуля после извлечения всех файлов и применения стандартных разрешений и secontext. Это очень удобно, если ваш модуль требует дополнительной настройки в зависимости от ABI устройства, или вам необходимо установить специальные разрешения/секонтекст для некоторых файлов модуля. @@ -200,7 +200,7 @@ module.zip В KernelSU MAGISK_VER_CODE всегда равен 25200, а MAGISK_VER всегда равен v25.2. Пожалуйста, не используйте эти две переменные для определения того, запущен ли он на KernelSU или нет. ::: -#### Функции +#### Функции {#functions} ```txt ui_print diff --git a/website/docs/ru_RU/guide/rescue-from-bootloop.md b/website/docs/ru_RU/guide/rescue-from-bootloop.md index 62603534..4382ff86 100644 --- a/website/docs/ru_RU/guide/rescue-from-bootloop.md +++ b/website/docs/ru_RU/guide/rescue-from-bootloop.md @@ -1,4 +1,4 @@ -# Выход из циклической загрузки +# Выход из циклической загрузки {#intruduction} При прошивке устройства могут возникать ситуации, когда устройство становится "окирпиченным". Теоретически, если использовать fastboot только для прошивки загрузочного раздела или установить неподходящие модули, из-за которых устройство не загружается, то это можно восстановить соответствующими операциями. В данном документе описаны некоторые экстренные методы восстановления работоспособности "окирпиченного" устройства. @@ -23,13 +23,13 @@ 1. Обновление AB 2. Восстановление при нажатии клавиши уменьшения громкости -#### AB-обновление +#### AB-обновление {#ab-update} Механизм обновления модулей в KernelSU основан на механизме AB-обновления, используемом в OTA-обновлениях системы Android. При установке нового модуля или обновлении существующего он не будет напрямую изменять текущий файл модуля. Вместо этого все модули будут встроены в другой образ обновления. После перезагрузки системы она попытается начать использовать этот образ обновления. Если система Android успешно загрузится, то модули будут действительно обновлены. Поэтому самым простым и наиболее часто используемым методом спасения устройства является **принудительная перезагрузка**. Если после прошивки модуля не удается запустить систему, можно нажать и удерживать кнопку питания более 10 секунд, после чего система автоматически перезагрузится; после перезагрузки произойдет откат к состоянию до обновления модуля, а ранее обновленные модули будут автоматически отключены. -#### Спасение, с зажатой клавишей уменьшения громкости. +#### Спасение, с зажатой клавишей уменьшения громкости {#volume-down} Если обновление AB не помогло решить проблему, можно попробовать использовать **Безопасный режим**. В безопасном режиме все модули отключены. diff --git a/website/docs/ru_RU/guide/what-is-kernelsu.md b/website/docs/ru_RU/guide/what-is-kernelsu.md index 83c45ed4..9e9a7447 100644 --- a/website/docs/ru_RU/guide/what-is-kernelsu.md +++ b/website/docs/ru_RU/guide/what-is-kernelsu.md @@ -1,21 +1,21 @@ -# Что такое KernelSU? +# Что такое KernelSU? {#introduction} KernelSU - это root-решение для устройств Android GKI, работающее в режиме ядра и предоставляющее root-права пользовательским приложениям непосредственно в пространстве ядра. -## Особенности +## Особенности {#features} Основной особенностью KernelSU является то, что он **основан на ядре**. KernelSU работает в режиме ядра, поэтому он может предоставить интерфейс ядра, которого раньше не было. Например, мы можем добавить аппаратную точку останова любому процессу в режиме ядра; мы можем получить доступ к физической памяти любого процесса без чьего-либо ведома; мы можем перехватить любой syscall в пространстве ядра; и т.д. Кроме того, KernelSU предоставляет систему модулей через overlayfs, что позволяет загружать в систему пользовательские плагины. Также предусмотрен механизм модификации файлов в разделе `/system`. -## Как использовать +## Как использовать {#how-to-use} Пожалуйста, обратитесь к: [Установка](installation) -## Как собрать +## Как собрать {#how-to-build} [Как собрать](how-to-build) -## Обсуждение +## Обсуждение {#discussion} - Telegram: [@KernelSU](https://t.me/KernelSU)