Połączyłem się z moim urządzeniem na żywo za pomocą adb i następujących poleceń:
C:\>adb -s HT829GZ52000 shell
$ ls
ls
sqlite_stmt_journals
cache
sdcard
etc
system
sys
sbin
proc
logo.rle
init.trout.rc
init.rc
init.goldfish.rc
init
default.prop
data
root
dev
$ cd data
cd data
$ ls
ls
opendir failed, Permission denied
Byłem zaskoczony, widząc, że odmówiłem dostępu. Dlaczego nie mogę przeglądać katalogów za pomocą takiego wiersza poleceń?
Jak uzyskać dostęp do konta root na moim telefonie?
Odpowiedzi:
Są dwie rzeczy do zapamiętania, jeśli chcesz przeglądać wszystko na swoim urządzeniu.
adb root
źródło
Począwszy od poziomu API 8 (Android 2.2), w przypadku aplikacji do debugowania (tej zbudowanej cały czas przez Android Studio, chyba że zażądano kompilacji wersji), możesz użyć
run-as
polecenia powłoki, aby uruchomić polecenie lub plik wykonywalny jako określony użytkownik / aplikacja lub po prostu przełącz się na identyfikator UID aplikacji, aby uzyskać dostęp do katalogu danych .Wyświetl zawartość katalogu swojej aplikacji:
Przełącz się na identyfikator UID aplikacji com.yourapp i uruchom wszystkie dalsze polecenia, używając tego identyfikatora użytkownika (aż do wywołania
exit
):Uwaga 1 : znany problem dotyczy niektórych telefonów HTC Desire. Z powodu niestandardowego właściciela / uprawnień do
/data/data
katalogurun-as
polecenie nie działa na tych telefonach.Uwaga 2 : Jak wskazano w komentarzach @Avio:
run-as
ma również problemy z telefonami Samsung Galaxy S z systemem Cyanogenmod w dowolnej wersji (od 7 do 10.1), ponieważ na tej platformie/data/data
jest dowiązanie symboliczne/datadata
. Jednym ze sposobów rozwiązania tego problemu jest zastąpienie dowiązania symbolicznego właściwym katalogiem (niestety zwykle wymaga to dostępu do konta root).źródło
run-as com.mypackage
. Problem, na który wpadłem, tosqlite3 /data/data/com.mypackage/databases/mydb
„sqlite3: odmowa uprawnień”. Czy sqlite3 może być uruchamiany tylko przez root?zanim zaczniemy, czy masz zrootowany telefon? jeśli nie, zdecydowanie sugeruję, że czas wykonać skok. 99% samouczków, które pomogą ci to zrobić, wymaga posiadania zrootowanego telefonu (wiem, że b / c spędziłem około godziny na poszukiwaniu sposobu na zrobienie tego bez posiadania zrootowanego telefonu ... nie mogłem znaleźć żadnego ... ) także, jeśli się nad tym zastanowić, Twój iPhone musi być również zrootowany, aby wykonać to samo zadanie. To jest całkowicie rozsądne. Więcej o rootowaniu na końcu odpowiedzi.
z typu wiersza poleceń:
to przeniesie Cię do linii poleceń powłoki Androida (powinieneś zobaczyć coś takiego:
shell@android:/ $
teraz wpisz:powinno to zabrać Cię bezpośrednio do katalogu danych
com.domain.yourapp
:jeśli nie (tj. jeśli pojawi się błąd), prawdopodobnie nie masz zrootowanego telefonu lub nie korzystałeś z uprawnień użytkownika root. Aby skorzystać z uprawnień użytkownika root, wpisz
su
w wierszu polecenia adb i zobacz, co się stanie, jeśli wystąpi błąd, telefon nie jest zrootowany. Jeśli nie, najpierw zrootuj, a następnie kontynuuj te instrukcje.stamtąd możesz wpisać,
ls
a zobaczysz wszystkie katalogi, w tym dbs:potem możesz użyć narzędzia sqlite3 do przeglądania bazy danych. Jeśli nie masz go zainstalowanego (możesz go znaleźć, pisząc
sqlite3
, jeśli go otrzymaszcommand not found
, musisz go zainstalować. Aby zainstalować program sqlite, postępuj zgodnie z instrukcjami tutaj .na temat rootowania: jeśli nigdy wcześniej nie zrootowałeś swojego telefonu i martwisz się, że to zepsuje telefon, mogę z całą pewnością powiedzieć, że nie ma się czym martwić. istnieją tony szybkich i łatwych samouczków rootowania telefonu dla prawie wszystkich nowych i starych modeli, i możesz zrootować swój telefon, nawet jeśli masz komputer Mac (zrootowałem mój s3 na moim Macu).
źródło
run-as
. Właśnie wypróbowałem to na produkcyjnej wersji Galaxy Nexus S.build the application as debuggable (either by building it with the Eclipse, or ant debug command)
mogą wydawać się trywialne, ale trochę mnie zastraszają. Wydaje mi się, że moja odpowiedź jest bardziej dla ludzi, którzy czują się dobrze w rootowaniu swoich telefonów z Androidem, ale nie są dobrze zaznajomieni ze światem deweloperów Androida. Ale cieszę się, że prowadzimy tę dyskusję. Chcę, aby czytelnicy mojej odpowiedzi byli świadomi innych alternatywnych rozwiązań$ adb shell
$ cd / data
$ ls
opendir nie powiodło się, odmowa dostępu
Powinieneś to zrobić:
DOBRZE!
źródło
Miałem podobny problem podczas próby działania na zrootowanym Samsungu Galaxy S. Wydawanie polecenia z powłoki komputera
kończy się niepowodzeniem z komunikatem „nie można uruchomić jako root w kompilacjach produkcyjnych”. Oto prosta metoda, która pozwala na rootowanie.
Zamiast poprzedniego wydawaj następujące dwa polecenia jeden po drugim
Po pierwszym poleceniu, jeśli monit zmienił się z „>” na „$”, jak pokazano powyżej, oznacza to, że wszedłeś do środowiska powłoki adb. Jeśli następnie monit zmienił się na „#” po wydaniu drugiego polecenia, oznacza to, że jesteś teraz rootem. Teraz, jako root, możesz robić z urządzeniem wszystko, co chcesz.
Aby wrócić do „bezpiecznej” powłoki, wydaj
Zobaczysz, że ponownie pojawia się monit „$”, co oznacza, że jesteś w powłoce adb jako użytkownik, a nie jako root.
źródło
adb shell + su
rozwiązane irytujące pozwolenie na zawsze. Miałem problemsu: not found
z Androidem 4.3, ale od czasu aktualizacji do 4.4.2 problem zniknął. Wydaje się, że 4.3 ma problemy.Miałem też z tym wiele problemów. Nadal nie w pełni rozumiem uprawnienia i uruchomienie roota, ale to zadziałało dla mnie (częściowo jedna z poprzednich odpowiedzi), aby skopiować plik bazy danych z / data / data / [nazwa pakietu] /databases/my_db.db. Uruchamianie powłoki root lub su z powłoki z jakiegoś powodu nie działało, nie kopiowałem pliku db (mogłem jednak przejść do katalogu), ani też sqlite3 .
To zadziałało! W wierszu polecenia DOS:
Teraz przejdź do katalogu SDCARD i pobierz plik db_copy.db. Nawet to było ukryte, ale udało mi się to wysłać pocztą e-mail. W systemie Windows mogłem otworzyć plik db za pomocą przeglądarki SQLite Database Browser. :)
źródło
Oto dwa kroki, aby uzyskać dostęp do roota:
źródło
kompilacje produkcyjne nie mogą wejść / danych / aplikacji
może potrzebować zmiany odpowiedniego właściciela, aby móc z niego korzystać.
źródło
Problemem może być to, że musimy specjalnie dać dostęp do katalogu głównego adb w opcjach programistycznych najnowszych CM. Oto co zrobiłem.
po zmianie opcji programistycznych ...
źródło
jeśli znasz pakiet aplikacji, możesz
cd
bezpośrednio przejść do tego folderu.na przykład
cd data/data/com.yourapp
spowoduje to przeniesienie Cię do katalogu, w
read/writable
którym możesz zmieniać pliki w razie potrzeby. Ponieważ folder jest taki samemulator
, możesz go użyć, aby uzyskać ścieżkę do folderu.źródło
Jeśli chcesz tylko zobaczyć swoje DB i tabele, najprostszym sposobem jest użycie
Stetho
. Całkiem fajne narzędzie dla każdego programisty Androida, który używaSQLite
buit byFacobook developed
.Steps to use the tool
Teraz skompiluj aplikację. Gdy aplikacja jest uruchomiona, możesz przeglądać bazę danych aplikacji, otwierając chrome w adresie URL:
Zrzuty ekranu tego samego są jak poniżej_
Mam nadzieję, że to pomoże wszystkim! :)
źródło
Działa to, jeśli twoje urządzenie z Androidem jest zrootowane w jakikolwiek sposób (nie jestem pewien, czy to działa na nierootowanych).
adb shell
- uzyskać dostęp do powłokisu
- zostań superużytkownikiem.Możesz teraz czytać wszystkie pliki we wszystkich katalogach.
źródło
bez rootowania urządzenia możesz uzyskać dostęp do plików, wykonując następujący zrzut ekranu cmd:
uruchom adb za pomocą cmd z folderu platform-tools zgodnie z twoim użytkownikiem
może znajdować się w innym folderze, w zależności od miejsca instalacji.
wyświetlić działające urządzenia.
na przykład odpowiedzią na to polecenie
napisz polecenie
otworzy się za
4.Dostęp do plików, wyświetl listę wszystkich plików
i tak dalej zmień katalog do dowolnego innego miejsca, takiego jak folder danych
źródło
su
) nie działa / jest niedozwolone. Testowanie w systemie Android 4.3.Gdy jesteś w katalogu powłoki dla urządzenia. Po prostu biegnij
Następnie powinieneś mieć dostęp do danych / folderu.
źródło