Общеизвестно, что каждое приложение для Android — это отдельный пользователь. У меня установлен эмулятор терминала Android от имени пользователя u0_a5 .
u0_a5@android:/ $ whoami u0_a5 u0_a5@android:/ $ группы u0_a5 sdcard_rw sdcard_r инет all_a5
В adb любая попытка использовать команду su для входа в качестве эмулятора терминала Android удается лишь частично. Как показано в следующем сеансе adb, группы разрешений, к которым принадлежит эмулятор терминала Android, не наследуются, за исключением группы пользователей по умолчанию u0_a5 .
root@android:/ # su - u0_a5 Неизвестный идентификатор: u0_a5 1|root@android:/ # су - 10005 app_5@android:/ $ whoami u0_a5 app_5@android:/ $ группы u0_a5
Как пользователь 10005 я могу удалять файлы, принадлежащие пользователю u0_a5 . Но я не могу выполнять команды, для которых требуются специальные разрешения Android, такие как «busybox wget protocol://some.uri», для которого требуется, чтобы приложение принадлежало к группе inet .
Итак, есть ли способ выдать себя за приложение и запустить его в своей конкретной среде разрешений? Или это мой единственный (не)выбор?
Да, использование root - единственный выход.
Все другие группы или имена пользователей заблокированы в пользовательской среде Android с помощью метода, известного как песочница . Это функция безопасности, реализованная в ядре, поэтому вам нужно будет переработать Android, если вы все еще хотите добиться успеха.
Иззи