Zezwól na zapisywanie na określonych ścieżkach, takich jak karta SD (extSdCard)

10

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.

Mussé Redi
źródło
3
To ograniczenie KitKata (nazywają to „bezpieczeństwem”, ale w rzeczywistości jest to raczej „force2cloud”). Nie będziesz w stanie obejść tego bez zrootowania urządzenia. Z wyjątkiem wyboru wewnętrznej karty SD, ponieważ tam możesz pisać.
Izzy
@Izyzy Jeśli umieściłbyś to w odpowiedzi, to pytanie byłoby odpowiedzią na pytanie .
Mussé Redi,
Gotowe, z kilkoma dodatkowymi szczegółami. Chciałem dać ci lepszą odpowiedź (z wygodniejszym rozwiązaniem), ale Google zabrania, aby ...
Izzy
Naprawdę? Uczyłem ich, gdzie jest wielkim fanem ducha open source.
Mussé Redi,
„Rób tak, jak mówię, nie rób tak jak ja”. Rozróżnij kwiaty i owoce. Ogłoszone jako „open source”, Google miesza między innymi wiele zastrzeżonych rzeczy. A „wolność” staje się coraz bardziej ograniczona z każdą nową wersją Androida. Ale to nie temat na ten temat :)
Izzy

Odpowiedzi:

9

Jednym z ograniczeń wprowadzonych w było przeniesienie WRITE_EXTERNAL_STORAGEuprawnień 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:

  • oczywiście: zrootowanie urządzenia i usunięcie tego limitu
  • korzystanie z „osobistego” katalogu aplikacji jako miejsca do przechowywania zsynchronizowanych plików (tj. <sdcard>/Android/data/<package_name>/ponieważ jest to jedyne miejsce, w którym aplikacja może pisać na SD za pomocą Kitkat)
  • używanie karty jako pamięci (ponieważ tutaj ograniczenie nie ma zastosowania)
Izzy
źródło
Jakie są wady rootowania urządzenia z Androidem? Czy gwarancja staje się nieaktualna?
Mussé Redi,
Najprawdopodobniej. W UE istnieje takie prawo, które odróżnia gwarancję od gwarancji. Jeden z nich jest egzekwowany przez prawo (i nie może być nieaktualny przez zrootowanie), drugi to nieobowiązkowa oferta producenta, a wraz z nim decyzja podjęta przez niego. Wygląda inaczej poza UE, więc nie ma tu jednoznacznej odpowiedzi.
Izzy
1

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 :-)

guettli
źródło
To było bardziej ćwiczenie, aby zobaczyć, jak daleko można posunąć się za pomocą ssh na urządzeniu z Androidem, niż uzyskać dostęp do zawartości na karcie SD.
Mussé Redi,