Podczas próby przesłania pliku ze zdalnego serwera na urządzenie z Androidem napotkałem problemy z uprawnieniami.
Okazuje się, że nie mam uprawnień do zapisu w miejscu karty SD (/ mnt / extSdCard).
Używam SSHDroid jako serwera ssh na urządzeniu z Androidem i vSSH jako klienta ssh do angażowania się w ssh na urządzeniu z Androidem.
Ponieważ zarówno sudo, jak i su wydają się nieobecne w aplikacji serwera ssh (SSHDroid), zastanawiam się, jak mogę zmienić / uzyskać pozwolenie na zapis w lokalizacji karty SD. A może przywilej rootowania nie wystarcza, aby zmienić uprawnienia do zapisu, i czy jest to zatem regulowane wyłącznie przez system operacyjny Android, a więc ograniczenie systemu operacyjnego?
To, co mogę zrobić, to napisać do domowej ścieżki serwera ssh (SSHDroid). Ta ścieżka jest jednak bardzo uciążliwa i nie można do niej dotrzeć z poziomu zwykłego interfejsu API przeglądarki plików dla systemu Android. To jest powód, dla którego chciałem przenieść plik na dostępną ścieżkę, taką jak karta SD.
Suplement. Wersja Androida to 4.4.2. Wersja jądra to 3.4.0-1539356 # 1.
źródło
Odpowiedzi:
Jednym z ograniczeń wprowadzonych w 4.4-kitkat było przeniesienie
WRITE_EXTERNAL_STORAGE
uprawnień na poziom ochrony „SignatureOrSystem”, co oznacza, że nawet na żądanie, „normalna aplikacja” (tj. Taka, którą instalujesz sam jako „zwykły użytkownik” bez żadnych specjalizacji root) nie będzie dłużej otrzymuj to. Jest więc bardzo niewiele rzeczy, które możesz zrobić, aby „obejść” to:<sdcard>/Android/data/<package_name>/
ponieważ jest to jedyne miejsce, w którym aplikacja może pisać na SD za pomocą Kitkat)źródło
Zawsze możesz wyjąć zewnętrzną kartę SD z urządzenia i podłączyć ją do komputera. Większość komputerów nie obsługuje kart micro-SD, ale możesz użyć adaptera. Więcej informacji tutaj: https://en.wikipedia.org/wiki/Secure_Digital#Micro
Jeśli zewnętrzna karta SD jest zamontowana w komputerze, możesz odczytywać i zapisywać na niej wszystkie pliki :-)
źródło