Szukam sposobu dla mojego HTC Hero (Android 2.1), aby móc udostępniać zawartość mojej karty SD i pamięci telefonu przez sieć Wi-Fi jak zwykłe udostępnianie plików Windows. Chciałbym taki, który nie wymaga ode mnie rootowania telefonu i jestem gotów zapłacić za odpowiednią aplikację, aby nie musiała być darmowa.
Zastanawiam się nad użyciem serwera SMB i do tej pory znalazłem tylko:
- SambaAndroid, który wymaga dostępu do roota.
- androidsmb, który jest „implementacją Java serwera sieciowego SMB / CIFS i serwera udostępniania drukarek dla urządzeń z Androidem” hostowanego na Google Code, który nie ma dokumentacji i nie wydał żadnych plików.
Czy jest technicznie możliwe opracowanie serwera SMB na Androida, który można zainstalować bez dostępu do konta root?
wi-fi
root-access
cifs
Dzień
źródło
źródło
Wifi Explorer
( appbrain.com/app/wifi-file-explorer/... ) kilka razy i działa świetnie, nie wymaga rootowania . Nie jest to jednak SMB (i prawdopodobnie też nie jest FTP).Odpowiedzi:
Ponieważ na twoje pierwotne pytanie wciąż nie ma odpowiedzi i zastanawiałem się nad tym samym, oto odpowiedź.
Krótka odpowiedź: Nie, bez roota nie można uruchomić serwera SMB przy użyciu domyślnych portów, aby można go było znaleźć na komputerach z systemem Windows.
Długa odpowiedź: SMB działa na portach 137-139 (UDP i TCP) przy użyciu NetBIOS lub na nowszych systemach (od Windows Vista i nowszych) bezpośrednio na porcie TCP 445, gdzie w tym ostatnim przypadku nazwy komputerów są rozwiązywane przez LLMNR (lokalna multiemisja łącza) Name Resolution) protokół działający na porcie UDP 5355. Dlaczego jest to ważne? Aplikacje, które nie działają jako root, nie mogą łączyć się z nieuprzywilejowanymi portami (<1024). Możliwe jest użycie alternatywnych portów dla SMB, ale system Windows ma stałe połączenie tylko z domyślnymi. Sądzę więc, że jeśli używasz Linuksa lub osobnego klienta SMB dla Windows, który pozwala połączyć się z serwerem z niestandardowym numerem portu, prawdopodobnie jest to możliwe. Ale to nie jest tak naprawdę prosty sposób.
źródło
\\your.ip:port
...Chociaż uruchomienie serwera SMB bez roota lub przekierowanie portów może być niemożliwe , możliwe jest uruchomienie serwera WebDAV bez rootowania w celu uzyskania podobnego efektu.
Konfigurowanie serwera Android WebDAV
Na moim magazynie Nexus 7 zainstalowałem serwer WebDAV , otworzyłem go, kliknąłem przycisk Start i od razu byłem w stanie zobaczyć mój
/storage/sdcard
folder w przeglądarce internetowej pod adresem URL wyświetlanym przez aplikację, tj.http://192.168.x.y:8080
Zauważ, że w przypadku WebDAV masz również opcję wyboru Root (/) lub DCIM, a także SdCard jako root WebDAV .
Korzystanie z serwera WebDAV za pomocą Eksploratora Windows
Następnie zmapowałem
http://192.168.x.y:8080
jako Eksplorator Windows jako dysk sieciowy i mogłem uzyskać dostęp do zawartości mojego dysku pamięci, tak jakbym był podłączony przez MTP, ale za pomocą litery dysku.Niestety, to rozwiązanie jest niewiarygodnie wolne.
Każda zmiana katalogu zajmuje od 6 do 20 sekund, podobnie jak dostęp do większości plików. Po uzyskaniu dostępu do pliku plik jest przesyłany z odpowiednią prędkością (kopiowanie pojedynczego pliku 42 MB w Eksploratorze Windows zajęło około 60 sekund, a więc 700 KB / s).
Dlatego WebDAV za pośrednictwem Eksploratora Windows jest odpowiedni do pobierania kilku dużych plików, których lokalizację znasz, ale przeglądanie lub synchronizowanie całego urządzenia w ten sposób nie jest szybkie. Zsynchronizowałem 1,75 GB danych w około 6000 plików i 400 katalogach i zajęło to 10 godzin, tj. Średnio około 50 KB / s lub średnio 10 plików / katalogów na minutę.
Korzystanie z serwera WebDAV za pośrednictwem wiersza polecenia systemu Windows
Nawet z wiersza poleceń każda lista katalogów zajmuje 5-6 sekund, podobnie jak każdy dostęp do pliku. Skopiowanie tego samego pliku 42 MB z wiersza polecenia zajęło około 20 sekund, czyli około 2,1 MB / s.
Korzystanie z serwera WebDAV za pośrednictwem przeglądarki internetowej
Najszybszą opcją dla WebDAV jest jednak użycie przeglądarki internetowej bezpośrednio pod podanym adresem URL. Zmiana katalogu rzadko zajmuje więcej niż sekundę, a pobranie tego samego pliku 42 MB z przeglądarki internetowej trwało około 12 sekund, czyli około 3,6 MB / s.
Minusem korzystania z przeglądarki internetowej jest to, że pokazuje tylko datę (bez rozmiaru lub typu) i nie czyni rozróżnienia między plikami i katalogami, więc jeśli plik nie ma rozszerzenia (lub katalogu), może to nie być oczywiste jeśli kliknięcie linku przeniesie Cię do innej strony internetowej (dla katalogu) lub rozpocznie pobieranie (dla pliku).
Ostrzeżenia
Domyślnie system Windows ogranicza rozmiar pobrań WebDAV do 50000000 bajtów (47,6 MB), ale można to zmienić poprzez włamanie do rejestru (
FileSizeLimitInBytes
inHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
), jeśli wiesz, co robisz.Dostęp WebDAV nie jest bezpieczny . Nawet jeśli ustawisz hasło dla udziału WebDAV, połączenie nadal
http
nie jest dostępnehttps
, więc nie jest szyfrowane. Używaj WebDAV tylko w bezpiecznej sieci Wi-Fi i na pewno nie włączaj serwera WebDAV, gdy jesteś w kafejce internetowej lub innym niezabezpieczonym Wi-Fi.źródło
Problemem nie jest serwer samby, ale fakt, że Windows może uzyskać dostęp do udziału samby tylko na porcie 445, a na nierootowanym Androidzie normalna aplikacja nie może nasłuchiwać na porcie 445.
Możesz to jednak rozwiązać za pomocą mapowania portów TCP:
Wszystkie kroki opisałem szczegółowo tutaj na moim blogu http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html
Wypróbowałem inny serwer samby, a jedyna darmowa aplikacja działająca w tej konfiguracji to Samba Server
źródło
\\androids.ip:7777
w pasku adresu eksploratora?Alternatywnie możesz uruchomić serwer ftp w telefonie, aby uzyskać dostęp do zawartości karty SD. Sprawdź SwiFTP .
źródło
Obecnie ukończyłem aplikację ( na urządzenia nie zrootowane ) do udostępniania plików w sieci lokalnej. Moje wyciągnięte lekcje:
źródło
Mogę być nieporozumieniem, ale wygląda na to, że potrzebujesz klienta SMB, a nie serwera. Ponadto nie potrzebujesz dostępu do konta root. Aby użyć SMB do przesłania plików do komputera, możesz użyć Menedżera plików ASTRO z dodatkiem SMB lub istnieje File Expert, który jest również bezpłatny.
Możesz również użyć WebDAV zamiast SMB w aplikacji takiej jak WebSharing .
W przeszłości korzystałem z aplikacji, która z oprogramowaniem klienckim na moim komputerze pozwalała mi przesyłać pliki za pomocą eksploratora plików z dowolnego miejsca w sieci. To nie była pełna aplikacja VNC. Mam nowy telefon i teraz przez całe życie nie mogę znaleźć aplikacji.
źródło