Jak samodzielnie dodać uprawnienia roota do niektórych aplikacji?
11
Czy jest jakiś sposób, w jaki celowo udzielam uprawnień roota jakiejś aplikacji? Nie automatycznie przez SuperSU, gdy konkretna aplikacja prosi o uprawnienia roota, ale w sposób umożliwiający wybranie aplikacji za pomocą jakiegoś narzędzia i przyznanie jej uprawnień roota.
Na przykład dodaję swoją ulubioną aplikację tekstową do zatwierdzonej listy, a następnie mogę otwierać pliki root za pośrednictwem tej aplikacji.
Nie. Powinieneś poprosić o to programistę aplikacji.
W systemach takich jak UNIX, uprawnieniami zarządza się za pomocą czegoś zwanego UID.
Każdy proces ma jeden i decyduje o tym, do czego mogą uzyskać dostęp. Ponadto istnieją również grupy, które mają uprawnienia, z których mogą korzystać ich członkowie. Gdy aplikacja ma uprawnienia, takie jak Write to SD cardumieszczane w grupie, która ma to uprawnienie.
Uprawnienia roota są wyjątkiem, ponieważ nie są zadeklarowane w manifeście aplikacji, ale raczej w jej kodzie. Root nie jest także grupą, ale osobnym identyfikatorem UID (ponieważ jest to oddzielny użytkownik), więc aplikacja nie może tak łatwo z niego korzystać.
Aby to zrobić, aplikacje z prawami root muszą być wyraźnie napisane.
Działa to tak, że za każdym razem, gdy aplikacja chce zrobić coś root, musi poprosić o suplik binarny. suzapyta aplikację zarządzającą tymi uprawnieniami (np. SuperSU), czy aplikacja może uzyskać dostęp do konta root. Jeśli nie, poprosi cię o pozwolenie lub odmowę. Następnie akcja jest wykonywana jako root, a nie jako użytkownik aplikacji. Działania te nie są integralną częścią aplikacji, ale raczej zewnętrznym plikiem wykonywalnym.
Chociaż teoretycznie możliwe jest dodanie tego do aplikacji, byłby to trywialny proces wymagający znajomości pisania kodu smali, który jest wewnętrznym formatem maszyny wirtualnej Dalvik (części systemu, w której działa plik apk) o nazwie smali. I nawet wtedy istniałoby ogromne ryzyko bezpieczeństwa, gdyby aplikacja pozwalała innym aplikacjom na dostęp do niej: nie wiedziałaby, jak oddzielić uprzywilejowany dostęp do roota od jego normalnego dostępu. W rzeczywistości tak naprawdę nie jest to możliwe.
Dla tych, którzy nie wiedzą, co maĹ,ych jest: To zespół dialekt dla Androida Dalvik kodu maszyny wirtualnej i często wykorzystywane w inżynierii odwrotnej plików Dex. Co może być trochę niejasne: aplikacja musi sama zająć się programowym rootowaniem . Dlatego programista musi to uwzględnić. Dodanie go do SuperSU nie pomaga, dopóki aplikacja nie korzysta z praw root.
ce4
Więc nie mogę otworzyć jakiegoś głównego pliku tekstowego za pomocą mojego ulubionego edytora tekstów, jeśli programiści nie kodowali aplikacji, aby akceptowała otwieranie plików root?
AnDroDroo,
1
Absolutnie poprawne. Na przykład: jeśli aplikacja nie zostanie uruchomiona z rootem i spróbuje otworzyć jakiś „plik root”, otrzyma po prostu „odmowę dostępu” - ponieważ dostęp do pliku będzie nadal wykonywany za pomocą identyfikatora UID aplikacji (to będzie nie prosić prawami administratora, aby go otworzyć). Z drugiej strony, jeśli aplikacja zostanie uruchomiona przy użyciu głównego identyfikatora UID (tj. su <app>), Uzyska dostęp do tego pliku głównego jako root, a tym samym uzyska uprawnienia.
Izzy
Dlatego nie mogłem użyć innych edytorów tekstu do odczytu plików root :).
AnDroDroo,
1
@Izzy AFAIK nie można uruchomić zwykłej aplikacji na Androida z głównym identyfikatorem UID ani zmienić identyfikatora UID uruchomionej aplikacji. Jedyne, co możesz zrobić, to uruchomić programy wiersza polecenia za pomocą su, a zatem wykonać polecenia z uprawnieniami administratora.
Robert
1
Znalazłem sposób, który może ci pomóc. Użyłem tego, aby przyznać rootowi dostęp do Taskera .
Jeśli używasz emulatora terminala, aby przyznać dostęp do odczytu, ale nie zapisu do folderu za pomocą
su
chmod 775 /location/of/folder/
wtedy twój edytor tekstu będzie mógł odczytać ten katalog, więc jeśli możesz następnie spróbować zapisać plik w folderze, spróbuje poprosić o uprawnienia roota.
Wszystkie katalogi /location/of/folder/od zera do góry muszą być czytelne / możliwe do przejścia. SELinux może również odmówić dostępu. Takie podejście jest rzadko praktyczne.
su <app>
), Uzyska dostęp do tego pliku głównego jako root, a tym samym uzyska uprawnienia.Znalazłem sposób, który może ci pomóc. Użyłem tego, aby przyznać rootowi dostęp do Taskera .
Jeśli używasz emulatora terminala, aby przyznać dostęp do odczytu, ale nie zapisu do folderu za pomocą
su
chmod 775 /location/of/folder/
wtedy twój edytor tekstu będzie mógł odczytać ten katalog, więc jeśli możesz następnie spróbować zapisać plik w folderze, spróbuje poprosić o uprawnienia roota.
Może to również dać błąd zapisu.
źródło
/location/of/folder/
od zera do góry muszą być czytelne / możliwe do przejścia. SELinux może również odmówić dostępu. Takie podejście jest rzadko praktyczne.