RKNHardering Help

Сводка нативных root-индикаторов

ID: ROOT_INDICATORS Категория: Root и состояние системы Статус в RKNHardering 2.10.0: Активная проверка Роль в вердикте: Служебная

Эта страница описывает фактическую реализацию RKNHardering 2.10.0. Здесь отдельно указано, что можно сделать без root, что требует root, а также где способ только уменьшает один сигнал, но не скрывает VPN целиком.

Что проверяется и зачем

Это зонтичный ID для состояния root-проверки. Когда nativeDetectRoot() не возвращает ни одной строки, checker показывает информационное «нативные root-признаки не найдены» с ROOT_INDICATORS. При наличии артефактов используются отдельные ID: su, properties, management paths, mounts, SELinux, UID и Magisk properties.

Точное условие срабатывания

Отдельного положительного trigger нет. Положительные данные распределяются по девяти дочерним страницам.

Что означает результат

Clean означает только, что фиксированный список нативных артефактов не дал строк. Он не проверяет bootloader, Play Integrity, аппаратную аттестацию, все варианты KernelSU/APatch и все пользовательские mount namespaces.

Как строка влияет на отчёт: Это зонтичный или резервный ID. Он связывает группу строк с документацией, но не всегда имеет отдельный положительный producer.

Ограничения и возможные ложные срабатывания

Любая root-detector модель является эвристической. Скрытый su может не попасть в список, а тестовая OEM-сборка может иметь test-keys без пользовательского root.

Важно оценивать эту строку вместе с соседними сигналами. Один чистый API не перекрывает Java Binder, libc, raw netlink/syscall, procfs/sysfs, локальные сокеты и серверные признаки одновременно.

Рекомендации для этого вектора

Без root

Если root не нужен, надёжное исправление — вернуть устройство к штатному состоянию официальным способом: удалить root через его менеджер либо прошить заводские boot/init_boot и системные разделы именно от установленной сборки. Разблокированный загрузчик, кастомное ядро и оставшиеся каталоги могут продолжить выдавать модификацию даже после удаления менеджера. Перед восстановлением сделайте резервную копию; повторная блокировка загрузчика на изменённой прошивке способна привести к потере данных или неработоспособности устройства.

С root

С root можно лишь уменьшать наблюдаемую поверхность, а не доказать отсутствие root. Ограничьте выдачу su минимальным числом приложений, не давайте её RKNHardering, отключите ненужные модули и не переводите SELinux в permissive. App Profile/DenyList и mount-изоляция проверяются на конкретной прошивке. SUSFS и сходные решения относятся к экспериментальным: они требуют совместимого ядра и могут сами добавлять следы. Для эталонного теста всё равно нужен отдельный стоковый телефон.

Как проверить результат

Откройте дочерние detail. Для общей ориентации:

adb shell getprop ro.build.tags
adb shell getprop ro.debuggable
adb shell id
adb shell cat /sys/fs/selinux/enforce 2>/dev/null

Shell UID не воспроизводит mount namespace приложения.

После любого изменения сделайте force-stop RKNHardering и VPN-клиента, запустите их заново и повторите полный scan. Для Zygisk/Xposed/kernel-модулей обычно нужна перезагрузка. Сравнивайте не только эту строку, но и соседние сигналы: частичный hook часто создаёт несогласованность между API.

Необходимые права и риски

Сама проба выполняется с обычными правами приложения и не запрашивает root. ADB-команды ниже служат только для ориентира: adb shell работает под другим UID и может видеть больше или меньше, чем процесс приложения. Решающий тест — повторный запуск самой проверки после force-stop.

Риски

Ошибочно считать агрегат clean полной гарантией. Восстановление стокового состояния может стереть данные, а relock на несовместимой прошивке — заблокировать загрузку.

Откат

Для диагностических действий откат не нужен. Для unroot используйте официальный rollback выбранного root-решения и сохранённый заводской образ.

Уровень доказательности

Служебная. Проверено по ветке rootFindings.isEmpty() в evaluateRootIndicators() и по nativeDetectRoot().

Статус стороннего решения не переносится автоматически на это устройство. Заявление разработчика модуля — это исходная гипотеза; подтверждением служит повторяемый результат RKNHardering на конкретной версии Android, прошивки и ядра.

Источники и дата последней проверки

Связанные сигналы: root-su-binary, root-management, root-suspicious-mount, root-selinux.

К справочнику Native signs