Zajmuję się tworzeniem aplikacji ukierunkowanych na urządzenia iOS z jailbreak. Ma to pomóc w automatyzacji niektórych zadań. Potrzebuję utworzyć prosty plik tekstowy (w rzeczywistości plik .lua) w/private/var/mobile/Library. Oczywiście, debugger rzuca wyjątek odmowy dostępu. Aplikacja nosi teraz nazwę "CreateFile" do celów testowych.Uprawnienia roota dla aplikacji iOS
próbowałem następujące czynności w celu uzyskania dostępu do konta root:
- Budowanie aplikacji normalnie.
- Utwórz kopię pliku wykonywalnego w pakiecie aplikacji.
Otwórz oryginalny plik wykonywalny i zastąpienie jej treści z tego skryptu:
#!/bin/bash dir=$(dirname "$0") exec "${dir}"/CreateFile "[email protected]"
Bezpośrednio uruchomienie aplikacji korzeń nie na iOS. Dlatego zastępujemy główny plik wykonywalny aplikacji skryptem, który uruchamia główny plik wykonywalny.
W terminalu przejdź do pakietu aplikacji.
chmod 0775
oryginalny plik wykonywalny ichmod 6775
skopiowany plik wykonywalny.- Skopiuj pakiet aplikacji do/Applications na urządzenie. Zrestartuj SpringBoard i powinieneś być gotowy. Jeśli aplikacja się nie uruchomi, powtórz krok 5 & 6 na urządzeniu.
Za pomocą tej metody mogę pomyślnie zainstalować aplikację w folderze/Applications i uruchomić ją, jednak oczekuję, że nadal nie mam uprawnień roota, ponieważ gdy tylko aplikacja spróbuje operacji zapisu, ulegnie awarii.
Jeśli ktokolwiek może rzucić trochę światła na tę sytuację, byłbym bardzo wdzięczny!
Edit:
Czy jakieś dodatkowe testy na poradę @creker „s. Kiedy próbuję utworzyć plik w dozwolonym katalogu, takim jak dokumenty aplikacji, tworzy się dobrze bez żadnych problemów. Z tego powodu jestem pewien, że tworzenie pliku nie powoduje awarii i że jest to wyłącznie niedostępna ścieżka do folderu.
Również w poradniku @creker próbowałem zainstalować aplikację na/Applications bez żadnych skryptów uruchamiania. Aplikacja ulega awarii po otwarciu w ten sposób. Jeśli wykonam chmod aplikacji wykonywalnej na 775 po instalacji, aplikacja otworzy się, ale nadal ulega awarii podczas próby utworzenia pliku.
Zajrzałem do rejestru syslog z programu do zgłaszania awarii. tutaj jest linia awarii:
System.UnauthorizedAccessException: Access to the path "/private/var/mobile/Library/test.txt" is denied
Nadal mamy nadzieję, że uda się rozwiązać problem, wszelkie pomysły są mile widziane!
Nie potrzebujesz uprawnień root'a, aby utworzyć plik w '/ var/mobile/Library'. '/ var/mobile' to katalog domowy użytkownika' mobilnego'. O ile nie jesteś ograniczony przez reguły piaskownicy, katalog ten jest w pełni dostępny. – creker
Następnie muszę być ograniczony przez reguły piaskownicy, ponieważ dostaję odmowę dostępu, gdy próbuję pisać do tego katalogu. Czy kroki, by to obejść, są inne? – Kikootwo
Nie, po prostu musisz znajdować się w katalogu '/ Applications'. Nie potrzebujesz nawet skryptu uruchamiania. Może twoja aplikacja ulega awarii z innego powodu. – creker