Jeśli znasz nazwę zainstalowanego pliku apk (którym na niektórych urządzeniach może być myapp-1.apk lub myapp-2.apk zamiast tylko myapp.apk), możesz uzyskać bezpośredni dostęp do tego jako zwykły użytkownik, w tym ten adb działa jako na zabezpieczonym urządzeniu, więc powinieneś być w stanie go pociągnąć. Ale jeśli nie znasz zainstalowanej nazwy apk, nie możesz przeglądać katalogu / data / app bez uprawnień użytkownika root lub system_pomocy.
Być może warto po prostu zgadnąć zainstalowaną nazwę - wypróbuj ją prosto, wypróbuj z -1.apk i -2.apk itp.
Może być inny sposób: wierzę, że następujące będą działać na zabezpieczonym urządzeniu, ale nie mam go teraz przed sobą, aby go przetestować.
EDYCJA: Nowy pomysł na określenie dokładnej nazwy pliku APK
1) adb pull /data/system/packages.xml
2) Przejrzyj go w poszukiwaniu kodu codePath aplikacji
3) adb wyciągnij to
EDYCJA: W odniesieniu do starego pomysłu poniżej Matthew odkrył, że chociaż pliki poszczególnych procesów w / proc mają uprawnienia do odczytu na zabezpieczonym urządzeniu, są puste, gdy odczytywane są przez nieuprzywilejowany identyfikator użytkownika inny niż właściciela. Więc to nie zadziała.
1) Uruchom aplikację. Będziesz także potrzebował maszyny z adb.
2) typ
adb shell ps
i poszukaj wiersza z nazwą aplikacji:
app_1 11959 907 112984 27580 ffffffff afd0c5bc S com.clevername.myapp
3) weź liczbę w drugiej kolumnie, która jest identyfikatorem procesu, i zobacz jej mapę pamięci wirtualnej, w takim przypadku wpisałbym
adb shell cat /proc/11959/maps
i poszukaj linii, w której zamapował swój własny plik apk w pamięci
43e9c000-43ea3000 r--s 001f4000 b3:06 15393 /data/app/com.clevername.myapp-1.apk
4) To jest nazwa pliku, którą należy pobrać
adb pull /data/app/com.clevername.myapp-1.apk .
Badanie uprawnień do katalogu w / proc sugeruje, że powinno to działać dla nieuprzywilejowanego użytkownika, przepraszam, jeśli nie działa. Jeśli znasz użycie „grep”, możesz go użyć, aby uniknąć ręcznego skanowania wyników.
Dodatek: Nie jestem do końca pewien, jaka jest historia aplikacji zainstalowanych na karcie SD.
adb shell cat /proc/####/maps
nie zwraca nic, niestety.