WinBinFex, modificando el script.bin desde Windows

WinBinFex, modificando el script.bin desde Windows

JoseR

Notas:

  • WinBinFex es un software portable, para Windows, que permite convertir archivos BIN a FEX y vice-versa.
  • La herramienta es el equivalente a las bin2fex y fex2bin de las sunxi-tools, utilizadas para el mismo cometido, en Linux.
  • WinBinFex surge de la necesidad de modificar los archivos script.bin desde maquinas con sistema Windows, dado que las únicas herramientas existentes solo estaban disponibles para sistemas Linux.
  • Esta herramienta abre a mucha gente la posibilidad de modificar de manera fácil el archivo script.bin, por tanto, hay que decir que es un archivo muy “peligroso” ya que establece las configuraciones y límites del hardware, los cambios que se realicen sobre este archivo deben estar claros, modificar ciertos valores sin saber muy bien que se está haciendo, podría ocasionar, en caso de que se hayan tocado valores relacionados con las frecuencias o voltajes de trabajo, un mal-funcionamiento o incluso la destrucción del mismo SoC debido a un sobre-calentamiento excesivo.

Instrucciones:

1 - Descargamos la herramienta WinBinFex:

https://mega.nz/#F!KIBWQBRY!Fubljz9mQ4mhIen4lQKnXA


2 – Extraemos el archivo script.bin que queramos modificar, del sistema de arranque (directorio /boot) de la distro OPi específica que nos interese, y lo insertamos en Windows.


3 – Abrimos el WinBinFex.


4 – Seleccionamos el archivo script.bin (1) y presionamos el botón “Convert” (2). Hecho esto, nos pedirá que guardemos el nuevo archivo en la ruta que queramos.

5 – A continuación, podremos modificar el archivo FEX generado desde un editor de texto.


6 – Una vez finalizada la modificación del archivo FEX, podemos volver a convertir dicho archivo a BIN realizando el mismo proceso que seguimos en el punto 4, pero esta vez seleccionando el archivo FEX como archivo de entrada.


7 – El proceso nos devolvera un archivo BIN que, una vez renombrado a script.bin (si no lo habíamos exportado con ese nombre), podríamos pasarlo nuevamente a sistema de arranque de la distro de la OPi para comprobar los efectos de los cambios realizados.

Anexo – ¿Por qué he creado este software? ¿En qué consiste internamente y cual ha sido el proceso para desarrollarlo? ¿Dónde se pueden encontrar las fuentes?

Dada la necesidad de algunos usuarios por modificar el archivo script.bin desde Windows, e inspirado por la herramienta de Olimex, que ya existía pero no funcionaba con los script.bin de la Orange Pi (quizás porque se creó a partir de las fuentes de una antigua versión de las sunxi-tools, que aún no tendrían soporte para estos SoCs), se me ocurrió que debería ser posible compilar las sunxi-tools para Windows de alguna forma...

Así que, el primer paso, fue compilar las fuentes linux de las sunxi-tools para Windows. Para ello hice uso de msys2 (mingw32), y finalmente conseguí (a pesar de que daba error la compilación) generar el fexc.exe (la herramienta principal que utilizan tanto el bin2fex como el fex2bin para realizar las conversiones). Con este archivo es posible hacer las conversiones en Windows, y dado k lo generé con el msys2, se requieren de 2 dll para que funcione.

Los archivos generados en este punto los he subido al siguiente repositorio:

https://github.com/J-Rios/Sunxi-Tools-Win-src


Con lo anterior se pueden convertir archivos mediante línea de comando, pero ya que estamos en Windows, ¿por qué no meterle un entorno gráfico? De esta forma, lo siguiente ha sido desarrollar un software (en C#) con Windows form (para asegurarnos una compatibilidad hacia atrás de sistemas Windows) en Visual Studio, que internamente haga uso del archivo fexc.exe generado.

El proyecto desarrollado, junto con todos sus archivos, está disponible en el siguiente repositorio:

https://github.com/J-Rios/WinBinFex


Por último, el programa generado (WinBinFex), que es portable, está subido en el repositorio siguiente:

https://github.com/J-Rios/Sunxi-Tools-Win


El comentar el proceso de desarrollo a grandes rasgos, así como el proporcionar de forma pública todos los archivos, tiene el fin de que cualquier persona pueda acceder, re-utilizar, mejorar e implementar nuevas herramientas a partir de esta.

Report Page