Jak Mogę uzyskać uprawnienia roota za pośrednictwem Android SDK?
Uczę się programowania na Androida i chcę stworzyć aplikację, która musi działać jako root. Logiczną rzeczą byłoby dodanie uprawnień roota w manifeście Androida.
Widziałem ten link w dokumentacji, a szczególnie zauważyłem pozwolenie FACTORY_TEST
:
To najlepszy sposób?
public static final String FACTORY_TEST
Od: API Level 1
Uruchom jako test producenta aplikacja, działająca jako użytkownik root. Dostępne tylko wtedy, gdy urządzenie jest uruchamianie w manufacturer tryb testowy. Wartość Stała: "android.pozwolenie.FACTORY_TEST "
Jeśli nie jest to możliwe przy użyciu SDK, jak Mogę sprawić, że aplikacja "root" będzie działać?
3 answers
To co musisz zrobić to coś w stylu:
Process root = Runtime.getRuntime().exec("su");
To powoduje wyświetlenie superużytkownika, co pozwala zezwolić lub zablokować dostęp roota. Takie podejście może nie działać, jeśli użytkownik nie jest zakorzeniony. tutaj jest sposób, aby go przetestować.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-14 01:11:57
Najpierw pozwól nam zrozumieć podstawy. Android uruchom jądro Linuksa pod spodem. Teraz, jeśli musisz uruchomić na nim swój proces z uprawnieniami super user (uruchom go jako root), jedynym sposobem jest wykonanie procesu przez command line
, ponieważ jest to jedyny sposób, w jaki możesz bezpośrednio współdziałać z jądrem. Ponadto musisz użyć su
przed uruchomieniem jakiegokolwiek polecenia. Jak również Chris wspomniał w swoim komentarzu do pierwszej odpowiedzi
Process process = Runtime.getRuntime().exec("su");
Prawie nic nie osiągnie. Będzie po prostu poprosić o przywilej super użytkowania korzystanie z okna dialogowego. To, co możesz zrobić, to zamiast po prostu wykonywać su
, możesz wykonać swój proces za pomocą su w następujący sposób
Process process = Runtime.getRuntime().exec(new String[] { "su", "-c", yourCommand});
Opcja -c
Jedną z najczęściej używanych opcji su jest -c, która mówi su to execute the command that directly follows it on the same line
. Takie polecenie jest wykonywane jako nowy użytkownik, a następnie okno terminala lub konsola, z której zostało uruchomione su natychmiast powraca do konta poprzedniego użytkownika po zakończeniu wykonywania polecenia lub po uruchomieniu dowolnego programu zamknięte.( więcej szczegółów )
Alternatywna Opcja
Alternatywą dla powyższej metody jest użycie wiersza poleceń do skopiowania aplikacji do katalogu /system/app/
. Następnie aplikacja uruchomi się automatycznie z uprawnieniami roota (tak samo jak aplikacje systemowe) (więcej na partycjach Android )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-28 11:12:20
SDK nie oferuje sposobu uruchamiania aplikacji jako root.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-14 01:06:13