Uno de los puntos flacos de FreeBSD como sistema de esritorio son sus limitaciones en cuanto a reproducción de contenido multimedia desde plataformas de streaming como Netflix o HBO entre otras, mediante linuxulator es posible instalar un navegador que simule Linux pero los pasos son complejos y enrevesados. En este artÃculo vamos a recurrir a un pequeño truco con el que podremos hacer streaming de nuestro móvil en el pc, la idea es habilitar el modo debug-USB y hacer streaming por este.
El artÃculo se compone de varias partes:
Habilitar el debug-USB:
Para poder habilitar el debug por USB primero debemos habilitar las opciones de desarrollador, para ello accedemos a los prámetros de configuración de Android, Settings -> Información del teléfono:
Buscamos el número de compilación y le damos 7 veces:
Aparecerá un cartelito advirtiéndonos de que hemos activado las opciones de desarrollo:
Accedemos a la sección Settings -> Sistema:
Sección Avanzado:
Opciones para desarrolladores:
Depuración -> Depuración por USB:
Al activarlo aparecerá la siguiente advertencia:
Conectamos el teléfono al pc y en el dmesg veremos:
ugen0.9: <Xiaomi SDM660-MTP SN:4420871C> at usbus0
En el teléfono nos pedirá confirmación de acceso:
Streaming de video:
Ahora instalamos el software de streaming de video:
Ejecutamos como root el servidor adb:
* daemon not running; starting now at tcp:5037
* daemon started successfully
No hace falta ejecutar scrcpy como root asà que lo lanzamos como usuario regular:
En estos momentos ya seremos capaces de controlar nuestro teléfono desde el pc:
Streaming de audio:
Instalamos VLC ya que es una dependencia de sndcpy:
El software de streaming de audio es un apk que instalaremos en el teléfono, se supone que trae un script que pushea e instala al apk mediante adb, pero en mi caso no ha hecho mas que darme problemas, asà que lo instalaré a mano.
Nos bajamos el apk dede el repositorio del proyecto:
cd sndcpy
fetch https://github.com/rom1v/sndcpy/releases/download/v1.0/sndcpy-v1.0.zip
unzip sndcpy-v1.0.zip
Yo en mi caso voy a transferir el apk al teléfono por Telegram, pero para poder instalar aplicaciones inseguras desde una app en Android tendremos que configurar los ajustes de esta:
Y autorizar la descarga de esta fuente:
Ahora ya podemos instalarla:
No hace falta abrir la aplicación, asà que le damos a listo:
Mediante adb forwardeamos el puerto 28200 del móvil a nuestro pc:
Arrancamos la aplicación recién instalada:
En el móvil veremos la ventana para iniciar la grabación del audio, le damos a Iniciar Ahora:
Ahora le indicamos a VLC que reproduzca el audio recibido en localhost:28200 a través del forward anteriormente configurado:
Y ya lo tenemos, todas las aplicaciones del móvil en el pc, tanto video como audio funcionando, si ponemos a reproducir una pelÃcula tan solo debemos maximizar la ventana y listo.
NOTA: Si sndcpy se nos resistiese siempre podrÃamos vincular unos auriculares/altavoz bluetooth al teléfono y reproducir el audio por estos.
Relanzamiento:
Si reiniciamos el teléfono debemos rehabilitar el debug USB(tan solo el último paso):
Si por el contrario reiniciamos el pc podemos utilizar el siguiente script:
#!/usr/local/bin/bash
sudo /usr/local/bin/adb kill-server
sudo /usr/local/bin/adb start-server
killall scrcpy 2>/dev/null
nohup scrcpy &
adb forward tcp:28200 localabstract:sndcpy
adb shell am start com.rom1v.sndcpy/.MainActivity
echo "-- Press ENTER when mobile audio recording is started"
read AA
killall vlc 2>/dev/null
nohup vlc -Idummy --demux rawaud --network-caching=50 --play-and-exit tcp://localhost:28200 &
Asignamos los permisos necesarios:
Configuramos sudo para que permita ejecutar los comandos que precisan permisos de root:
# ADB
kr0m ALL=(ALL) NOPASSWD: /usr/local/bin/adb kill-server
kr0m ALL=(ALL) NOPASSWD: /usr/local/bin/adb start-server
Troubleshooting:
Podemos consultar los dispositivos detectados por adb:
List of devices attached
2d70b8a device
Podemos consultar los logs del teléfono mediante adb:
Además podemos habilitar el debug, tan solo debemos exportar el valor de la variable ADB_TRACE antes de ejecutar cualquier comando adb: