Hola, estaba pensando como podría añadir más funciones al firmware y tenía en mente 2 problemas principales:
1) aunque todavía hay como 80M de espacio en el firmware que podría usarse, volver a flashear con mtktool no es es muy amigable, especialmente porque varios usuarios de oppo 203/205 han instalado el jailbreak con el método USB. Así que al final con este sistema no hace falta flashear el firmware.
2) Añadir nuevas características sin brickear el dispositivo.
Así que al final he hecho un pequeño overlay que se instala como una superposición del firmware con jailbreak en la partición ubi de escritura.
La primera versión se puede encontrar aquí:
https://mega.nz/file/tFQ3CaTD#6VTFZwM8f-K8w6lzOY5L9aeu-y6aoqctd61ml6ZMSfo
Instalación: La instalación se realiza con Autoscript, por lo que necesitáis el firmware chino o ruso con Autoscript:
- Formatea un pendrive y que esté completamente limpio (en FAT32).
- Copia la carpeta Autoscript del archivo que os habéis bajado.
- Apagad el reproductor.
- Conectadle el pendrive.
- Enciéndelo de nuevo y no lo toques hasta que la bandeja de discos se abra o se muestre un logo (o hayan pasado al menos 2 minutos )
Una vez hecho esto, el overlay se instala en la carpeta
/mnt /ubi_boot/jb_overlay y en el próximo reinicio tomará el control de la ejecución.
Configuración: hay una configuración mínima que se puede hacer editando el archivo
/mnt/ubi_boot/jb_overlay/config.ini, más abajo lo explico más detalladamente.
También hay registros mínimos para cada arranque en
/tmp/jb_overlay.log
Caracteristicas:
Una vez instalada, estas son las nuevas características que he añadido:
1)
Antibrick: Al arrancar, el script de inicio esperará 3 segundos para detectar si se ha presionado la tecla de expulsión de bandeja en el mando; si es así, desactivará permanentemente el overlay por seguridad. Para reactivarlo, es necesario conectarse a través de telnet con Autoscript y escribir este comando:
touch /mnt/ubi_boot/.nobrick
2)
Cambiar la contraseña de root: Ahora podéis cambiar la contraseña del usuario
root (por defecto: oppo) editando la línea
ROOT_PWD = en el
config.ini
3)
Telnet: Por fin podemos ejecutar Telnet sin necesitad de tener Autoscript, solo tenemos que tener la entrada
USE_TELNET = 1 (ya viene así tras instalar el overlay) en
config.ini
4)
SSH y FTP: He añadido un servidor ssh y sftp que se inicia automáticamente si está puesta la línea
USE_SSH = 1 (ya viene así tras instalar el overlay) en el
config.ini. Esto abre un abanico enorme de posibilidades ya que podemos conectarnos por ssh o añadir o descargar archivos desde un servidor FTP, SCP, Filezilla...
5)
Comandos OS: Al conectarnos mediante SSH, la mayoría de los comandos del sistema operativo se llaman desde el overlay (busybox), por lo que lsof, mount, df...funcionan perfectamente, lo cual abre un enorme camino para poder instalar decenas de scripts personalizados.
6)
Rclone: He recibido multitud de mensajes de usuarios diciendo que hay gente vendiéndoles el firmware con rclone integrado en telegram. rclone es gratuito y lo he agregado según esas peticiones. No lo compilé yo mismo, pero usé la versión armv7 disponible de su sitio web. Tened en cuenta que en la ruta predeterminada no se puede escribir para guardar el
rclone.config, por lo que siempre se debe usar rclone con el glag de montaje indicándole ya la ruta del archivo, como por ejemplo:
--config /mnt/usb_boot/jb_overlay/etc/rclone.config. Una buena idea es ponerlo por ejemplo aquí:
rclone --config /mnt/usb_boot/jb_overlay/etc/rclone.config config
7)
Autoinicio: ahora es posible iniciar scripts al encender el dispositivo sin necesidad de Autoscript, directamente copiándolos a la ruta
/mnt/ubi_boot/jb_overlay/autostart.sh. Aún así tenemos dos limitaciones:
- La red aparentemente está configurada por la aplicación del reproductor y no por el sistema operativo
- Los montajes de carpetas NFS/SMB serán visibles en la interfaz gráfica de usuario solo si se realizan en un dispositivo montado en usb en /mnt/sda1 (el pendrive). Estoy intentando ver como solucionarlo.
Por esas razones, hay 2 parámetros
AUTOSTART_WAIT_NETWORK y
AUTOSTART_WAIT_USB en el config.ini que, si se configuran en 1 (ya viene así tras instalar el overlay) en el
config.ini, hará que el dispositivo espere a tener red y además a tener el pendrive conectado antes de iniciar los scripts de inicio automático.
8)
Seguridad: Finalmente el overlay intentará arrancar el archivo
/mnt/ubi_boot/jb_overlay/bdp/ bdpprog si está presente, si no, lanzará la versión original del firmware. Con esto nos evitamos problemas de brickeos en el dispositivo.
Mañana sacaré la segunda versión con más características nuevas.