Поскольку бессистемный рут доступен в течение нескольких лет, стало «труднее» определить, является ли устройство рутованным или нет. Я начал искать возможное решение, чтобы определить, является ли устройство рутованным без системы или нет, и я до сих пор не могу найти решение. Проверка, существует ли файл по заданным путям (в / system), не имеет смысла, так как он не может быть , если устройство рутовано без системы.
Кроме того, поиск приложений, управляющих корневым доступом, может не иметь смысла, так как пользователь может их не устанавливать / или просто использовать другие, не такие популярные, как Magisk, SuperSu и т. Д.
Итак, я думал, что выполняет команду "su" и затем проверяет, работает ли оболочка в корневом режиме ("#") или нет ("$"). Но как я могу проверить, в каком режиме он работает? Насколько я знаю, после простого выполнения команды:
Runtime.getRuntime().exec("su");
Процесс завершается, потому что «пользователь SU» больше не используется (?).
Простое представление о том, что я имею в виду с использованием ADB:
user@user:~$ adb shell
device:/ $ su
если после выполнения этой команды она становится:
device:/ #
будет знать, является ли устройство рутованным, если его вернуть «Отказано в разрешении», будет известно, что устройство не рутировано. Можно ли добиться чего-то подобного в приложении для Android?