Estoy buscando una forma de mi HTC Hero (Android 2.1) para poder compartir el contenido de mi tarjeta SD y la memoria del teléfono a través de la red WiFi como un archivo compartido de Windows normal. Me gustaría uno que no requiera que rootee mi teléfono, y estoy dispuesto a pagar por la aplicación correcta para que no tenga que ser gratuita.
Estoy pensando en usar el servidor SMB y todo lo que he encontrado hasta ahora son:
- SambaAndroid que requiere acceso de root.
- androidsmb, que es una "implementación Java del archivo de red SMB / CIFS y el servidor de impresora compartida para dispositivos Android" alojado en Google Code que no tiene documentación y no ha publicado ningún archivo.
¿Es técnicamente posible desarrollar un servidor SMB en Android que se pueda instalar sin acceso de root?
wi-fi
root-access
cifs
Día
fuente
fuente
Wifi Explorer
( appbrain.com/app/wifi-file-explorer/… ) varias veces y funciona muy bien, no se requiere root. Sin embargo, no es SMB (y probablemente tampoco sea FTP).Respuestas:
Como su pregunta original aún no ha sido respondida y me preguntaba lo mismo, aquí está la respuesta.
Respuesta corta: No, sin root no es posible ejecutar un servidor SMB utilizando los puertos predeterminados para que lo encuentren las PC con Windows.
Respuesta larga: SMB se ejecuta en los puertos 137-139 (UDP y TCP) usando NetBIOS o en sistemas más nuevos (desde Windows Vista en adelante) directamente en el puerto TCP 445 donde, en el último caso, los nombres de las computadoras son resueltos por LLMNR (Multidifusión local de enlace) Protocolo de resolución de nombres) que se ejecuta en el puerto UDP 5355. ¿Por qué es importante? Las aplicaciones que no se ejecutan como root no pueden vincularse a puertos no privilegiados (<1024). Es posible utilizar puertos alternativos para SMB, pero Windows está conectado para escuchar los predeterminados. Entonces, supongo que si usa Linux o un cliente SMB separado para Windows que le permite conectarse a un servidor con un número de puerto personalizado, probablemente sea posible. Pero no es realmente una forma directa.
fuente
\\your.ip:port
...Si bien puede que no sea posible ejecutar un servidor SMB sin root o usar el reenvío de puertos , es posible ejecutar un servidor WebDAV sin root para un efecto similar.
Configurar un servidor Android WebDAV
En mi Nexus 7 de stock, instalé el servidor WebDAV , lo abrí , hice clic en el botón de inicio y pude ver inmediatamente mi
/storage/sdcard
carpeta en mi navegador web en la URL que muestra la aplicación, es decirhttp://192.168.x.y:8080
Tenga en cuenta que con WebDAV, también tiene la opción de seleccionar Root (/) o DCIM , así como SdCard como raíz de WebDAV .
Usando el servidor WebDAV a través del Explorador de Windows
Luego lo mapeé
http://192.168.x.y:8080
como una unidad de red en el Explorador de Windows y pude acceder a los contenidos de mi unidad de almacenamiento, como si estuviera conectado a través de MTP, pero a través de una letra de unidad.Lamentablemente, esta solución es increíblemente lenta.
Cada cambio de directorio toma entre 6 y 20 segundos, al igual que el acceso a la mayoría de los archivos. Sin embargo, una vez que se accede a un archivo, se transfiere a una velocidad razonable (copiar un solo archivo de 42 MB en el Explorador de Windows tomó alrededor de 60 segundos, por lo que 700 KB / s).
Por lo tanto, WebDAV a través del Explorador de Windows está bien para descargar algunos archivos grandes cuya ubicación conoces, pero navegar o sincronizar un dispositivo completo de esta manera no es rápido. Sincronicé 1.75GB de datos en alrededor de 6000 archivos y 400 directorios y me llevó 10 horas, es decir, alrededor de 50 KB / so 10 archivos / directorios por minuto en promedio.
Usando el servidor WebDAV a través de la línea de comando de Windows
Incluso desde la línea de comando, cada listado de directorio tarda 5-6 segundos, al igual que cualquier acceso a archivos. Copiar el mismo archivo de 42 MB desde la línea de comandos tomó alrededor de 20 segundos, por lo que alrededor de 2.1 MB / s.
Usar el servidor WebDAV a través de un navegador web
Sin embargo, la opción más rápida para WebDAV es usar su navegador web, directamente a través de la URL proporcionada. El cambio de directorio rara vez lleva más de un segundo y la descarga del mismo archivo de 42 MB desde el navegador web tomó alrededor de 12 segundos, por lo que alrededor de 3.6 MB / s.
La desventaja de usar el navegador web es que solo muestra la fecha (sin tamaño ni tipo) y no hace distinción entre archivos y directorios, por lo que si un archivo no tiene una extensión (o un directorio sí lo tiene), entonces puede que no sea obvio si hace clic en un enlace lo llevará a otra página web (para un directorio) o comenzará una descarga (para un archivo).
Advertencias
De manera predeterminada, Windows limita el tamaño de las descargas de WebDAV a 50000000 bytes (47.6MB), aunque esto se puede cambiar a través de un corte de registro (
FileSizeLimitInBytes
inHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
) si sabe lo que está haciendo.El acceso a WebDAV no es seguro . Incluso si establece una contraseña en el recurso compartido WebDAV, la conexión aún
http
no es asíhttps
, por lo que no está encriptada. Solo use WebDAV en una red wifi segura y ciertamente no habilite el servidor WebDAV mientras esté en un cibercafé u otro wifi no seguro.fuente
El problema no es el servidor de samba, sino el hecho de que Windows puede acceder a un recurso compartido de samba solo en el puerto 445, y en un Android no rooteado, una aplicación normal no puede escuchar en el puerto 445.
Pero puede superar esto con algunos mapas de puertos TCP:
Describí todos los pasos en detalle aquí en mi blog http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html
He probado diferentes servidores de samba, y la única aplicación gratuita que funciona en esta configuración se llama Samba Server
fuente
\\androids.ip:7777
en la barra de direcciones del explorador?Alternativamente, puede ejecutar un servidor ftp en su teléfono para obtener acceso al contenido de su tarjeta SD. Echa un vistazo a SwiFTP .
fuente
Actualmente terminé una aplicación ( para dispositivos no rooteados ) para compartir archivos en la red local. Mis lecciones aprendidas:
fuente
Puedo estar malentendidos, pero parece que necesita un cliente SMB, no un servidor. Además, no necesita acceso de root. Para usar SMB para transferir archivos a su computadora, puede usar ASTRO File Manager con el complemento SMB , o existe File Expert, que también es gratuito.
También puede usar WebDAV en lugar de SMB con una aplicación como WebSharing .
En el pasado, utilizaba una aplicación que con el software del cliente en mi computadora me permitía transferir archivos a través del explorador de archivos desde cualquier lugar a través de la web. No era una aplicación VNC completa. Tengo un teléfono nuevo y ahora por mi vida no puedo encontrar la aplicación.
fuente