Potrzebuję uzyskać absolutną ścieżkę pliku przy użyciu deskryptora pliku, który został zwrócony przez getFileDescriptor(). Jak mogę to zrobić?Jak uzyskać ścieżkę do pliku za pomocą deskryptora pliku na urządzeniu z systemem Android?
Odpowiedz
W systemie działającym pod kontrolą jądra Linux, które byłyby wszystkie obecne Android implementacje każdy deskryptor pliku będzie mieć wpis w /proc/[processid]/fd
który jest dowiązaniem symbolicznym do celu deskryptora pliku - nie tylko dla zwykłych plików , ale także dla wielu innych możliwych celów, takich jak rury i gniazda.
Oto częściowy przykład dla biegania cat > /mnt/sdcard/foo
procesowego na urządzeniu android
$ ls -l /proc/3528/fd
lrwx------ shell shell 2013-06-06 10:31 0 -> /dev/pts/1
l-wx------ shell shell 2013-06-06 10:31 1 -> /mnt/sdcard/foo
lrwx------ shell shell 2013-06-06 10:31 2 -> /dev/pts/1
lrwx------ shell shell 2013-06-06 10:31 6 -> socket:[188850]
Czytanie łączy symbolicznych w Javie „pozostawiamy jako ćwiczenie dla czytelnika”.
Na komputerze stacjonarnym znajduje się narzędzie lsof
, które przegląda te katalogi dla wszystkich procesów i zrzuca listę otwartych plików - jednak nie byłoby to zbyt użyteczne na Androidzie, gdzie korzystanie z aplikacji ograniczyłoby użytkownika takie trolling. Ale nadal możesz wyszukać fd należące do samej aplikacji lub dowolny inny proces działający pod tym samym identyfikatorem użytkownika.
- 1. Jak uzyskać strumień FILE * z deskryptora pliku?
- 2. Dostęp do bazy danych sqlite na urządzeniu z systemem Android
- 3. Wstawianie zbiorcze na urządzeniu z systemem Android
- 4. Jak zainstalować zaufany certyfikat CA na urządzeniu z systemem Android?
- 5. Jak narysować ścieżkę na mapie za pomocą pliku kml?
- 6. Jak uzyskać ścieżkę pliku .ipa
- 7. Jak parametryzować opcje menu na urządzeniu z systemem Android?
- 8. Jak uzyskać pełną ścieżkę, podając nazwę pliku?
- 9. Jak mogę uzyskać dostęp do pliku logcat na urządzeniu
- 10. Android 6 pobierz ścieżkę do pobranego pliku
- 11. Jak uzyskać bieżącą ścieżkę pliku w javascript
- 12. Jak usunąć jedną ścieżkę z pliku wideo za pomocą ffmpeg?
- 13. Rysowanie tła niestandardowego widoku z pliku .png na urządzeniu z systemem Android
- 14. Fałszywe połączenie przychodzące na urządzeniu z systemem Android
- 15. jak uzyskać ścieżkę do pliku folderu zasobów w Androidzie
- 16. Programowa zmiana języka na urządzeniu z systemem Android
- 17. Zmiana uprawnień do odczytu/zapisu deskryptora pliku
- 18. Jak uzyskać ścieżkę układ pliku z Pythona na Windows
- 19. Jak uzyskać pełną ścieżkę dostępu do pliku z wejściem plików
- 20. Sterownik urządzenia linuksowego, czy można uzyskać mniejszy numer za pomocą deskryptora pliku?
- 21. React Native: Zmień ścieżkę pliku wejściowego index.android.js na określoną ścieżkę niestandardowego pliku
- 22. Jak uzyskać dostęp do dźwięku "Tryb priorytetu" na urządzeniu z systemem Android 5.0?
- 23. jak uzyskać ścieżkę bezwzględną dla pliku symlink?
- 24. Jak uzyskać nazwę pliku z formularza przesyłania za pomocą jQuery?
- 25. Jak uzyskać ścieżkę do aktualnie uruchomionego skryptu za pomocą JavaScript?
- 26. Szyny - Jak uzyskać ścieżkę pliku (nie ścieżkę URL) dla zasobów?
- 27. nie można uruchomić pliku node.js na telefonie z systemem Android?
- 28. Używanie unique_ptr do kontrolowania deskryptora pliku
- 29. jak uzyskać załadowaną ścieżkę pliku konfiguracyjnego mongodb
- 30. Analizowanie notatek na urządzeniu z systemem Android nie będzie działało.
Dobry pomysł na zbadanie tych plików urządzeń USB! Jeśli tworzysz pakiet debugowania, możesz użyć powłoki adb "run-as your.package.name", aby uzyskać powłokę jako identyfikator użytkownika aplikacji, a następnie, gdy jest uruchomiony, użyj ls -l z tej powłoki na wejściach/proc procesu aplikacji sprawdzać łącza fd, zamiast zastanawiać się, jak to zrobić z java. –