Blu-ray Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Hola Consejero, mire por encima el software y llego a ver las diferentes partes del firmware, Preloader, uboot etc.. y lo que ocupan del firmware, pero no veo como desensamblar el código. Faltaría saber los startpoints de cada zona y con eso empezar a analizar los parches realizados por los rusos y poder realizarlos nosotros en futuras versiones de los chinos.
También se podrían analizar el preloader de los firmwares no downgradeables y buscar como poder hacerlo mas fácilmente que con el truco de puentear la zona de datos de la flash en el arranque.
Si conseguimos desemsamblar el código, parchear la activación no creo que sea difícil.
No se hasta donde estáis metidos en esto ni el interes que tenéis en ello.
Pero se podría aportar algo.

Un saludo.

Metidos hasta el punto de desemsamblar el FW creo que nadie por aquí, a mi la verdad me gustaría meterle mano, pero me falta algo de conocimiento y experiencia en el tema.

Se ve que tu esto ya lo has hecho antes, así que seguramente si contactas con el amigo ruso que lleva el tema, puede que te de algo más de información, supongo que el si que estará interesado en que alguien le pueda hacer parte del trabajo o ayudarle.

En un momento dado, si hay gente que sepa de esto y me guia un poco, puedo unirme e intentar echar una mano.

Ya nos cuentas si vas averiguando más cosas.

PD: Para la próxima versión me ha dicho un pajarillo oriental que van a intentar solucionar los nombres de las carpetas NFS para que no aparezcan numeradas y aparezcan con su nombre :disimulo

Saludos.
 
Si conseguimos desemsamblar el código, parchear la activación no creo que sea difícil.
No se hasta donde estáis metidos en esto ni el interes que tenéis en ello.
Pero se podría aportar algo.
.

En 5.08/5.09 la activación es basicamente un fichero con el numero de serie del aparato encriptado y firmado con RSA. Como los rusos son muy listos, sencillamente generaron un keypair suyo, parchearon el soft chino con la pública y usan la privada en el activador.

Para mirar el firmware has de usar una utilidad para squashfs sobre el root file system sacado con mkpio, en el foro ruso encontrarás uno. Por cierto, el programa de control del bicho es un ejecutable monolítico de la hostia divina de 25 MB, parece mas que obvio que los chinos que sacan esto tienen acceso a los fuentes de Pioneer.

Los fuentes de Uboot estan en la web de pioneer (por tema de licencia GPL) y es jugoso porque esta todo el upgrade con "upg" por el puerto serie.
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Hola,
Ya tengo mi bdp-140 funcionando a toda mecha.
Quiero dar las gracias a todos los que colaborais para ayudarnos a los que no sabemos, en especial quisiera dar unas GRACIAS enormes a consejero por su atención y rapidez en ayudar.

Saludos.
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Hola,
Ya tengo mi bdp-140 funcionando a toda mecha.
Quiero dar las gracias a todos los que colaborais para ayudarnos a los que no sabemos, en especial quisiera dar unas GRACIAS enormes a consejero por su atención y rapidez en ayudar.

Saludos.

Capetuso al final que firm le metistes el 4.02 o el 4.03, chao.
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Si conseguimos desemsamblar el código, parchear la activación no creo que sea difícil.
No se hasta donde estáis metidos en esto ni el interes que tenéis en ello.
Pero se podría aportar algo.
.

En 5.08/5.09 la activación es basicamente un fichero con el numero de serie del aparato encriptado y firmado con RSA. Como los rusos son muy listos, sencillamente generaron un keypair suyo, parchearon el soft chino con la pública y usan la privada en el activador.

Para mirar el firmware has de usar una utilidad para squashfs sobre el root file system sacado con mkpio, en el foro ruso encontrarás uno. Por cierto, el programa de control del bicho es un ejecutable monolítico de la hostia divina de 25 MB, parece mas que obvio que los chinos que sacan esto tienen acceso a los fuentes de Pioneer.

Los fuentes de Uboot estan en la web de pioneer (por tema de licencia GPL) y es jugoso porque esta todo el upgrade con "upg" por el puerto serie.

Hola, parece que ya lo has mirado con mas detenimiento. Como parece que los rusos van a ir regalando las nuevas versiones de los chinos, quizás sea mejor centrarse en como poder downgradear de los firms superiores en los 150/450. Por lo que pude ller del truco de puentear los datos de la flash, no me quedo claro los pasos a seguir, ya que ademas hay que tener en cuenta diferentes instantes.
Yo soy mas de hard que de soft. Por lo que veo y según los esquemas, estoy casi seguro que se puede leer la flash mediante jtag, pero bueno, sería mejor comentar un método asequible para cualquiera para poder realizar el downgrade.
No tengo muy claro que han capado en estos firmwares, por un lado parece que han cancelado la parada del u-boot (no poder actualizar por upg) y por otro lado el update normal no puede ser de una versión anterior. Si es así hay otra posibilidad. Y es intentar meter la misma versión de firmware pero un pelin modificada para que admita versiones anteriores, de esta manera no tocamos el hardware.
Pero primero alguien con un pionner version 1.05 en 150 o 2.09 en 450 debería de probar si puede meter la misma versión de firmware.
Esto lo digo porque por ejemplo esto lo comprobé en una cámara reflex Petax K5, y asi pude realizar un downgrade. Era necesario ya que la versión superior oficial que saco pentax tenía problemas y dejo colgada a mucha gente al no poder downgradear.

He visto que hay al final del firmware un checksum y una clave RSA (Firma).
Como el soft MTKpio permite modificar y calcular tanto el checksum como la RSAkey se podría crear ese firmware intermedio que usaríamos para poder downgradear y posteriormente meter cualquier firmware.
dday lo del squashfl no me ha quedado claro, yo suelo tirar del ida pro. No se como empezar para desemsamblar el codigo. Primero habría que saber en que zona del código (u-boot, preloader, etc) esta el upgrade normal, después saber en que dirección se ejecuta. Y entonces podremos verlo en el ida pro y saber que parchear.

Un saludo
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

haute,

downgrade/upgrade de FW 1.05/2.09 seria posible tambien. No me pregunta, como, por favor...

MTKPio es un "know-how" y deberia ser tratado por MP.
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

He visto que hay al final del firmware un checksum y una clave RSA (Firma).
Como el soft MTKpio permite modificar y calcular tanto el checksum como la RSAkey se podría crear ese firmware intermedio que usaríamos para poder downgradear y posteriormente meter cualquier firmware.

Ojo que la firma RSA que te genera MTKPio es con la clave que los rusos han metido en el firm ya parcheado, o sea no va a funcionar si el aparato tiene un soft de fabrica. Los rusos no tienen la clave RSA privada de Pioneer evidentemente (alucinantemente, los chinos si que la tienen parece ser).

dday lo del squashfl no me ha quedado claro, yo suelo tirar del ida pro. No se como empezar para desemsamblar el codigo. Primero habría que saber en que zona del código (u-boot, preloader, etc) esta el upgrade normal, después saber en que dirección se ejecuta. Y entonces podremos verlo en el ida pro y saber que parchear.

El U-boot arranca un Linux en toda regla. El filesystem esta repartido entre un initrd y dos particiones squashfs, mas un UBI. Lo que quiere decir eso es ni mas ni menos que una vez descomprimidos las partes correspondientes del FW tienes un file system asi:

Insertar CODE, HTML o PHP:
.\
acfg\
bin\
cpsm\
cust_part_1\
etc\
lib\
misc\
plugins\
res\
root\
sbin\
tmp\
usr\
var\
.ash_history
build.sh
description.xml
init
initrd.image
linuxrc
Una vez que U-Boot arranca el kernel se ejecuta el /etc/init.d/rcS:

Insertar CODE, HTML o PHP:
#! /bin/sh
source /etc/profile
echo "=rcS Start="

mknod /dev/decry2 c 162 0
insmod /etc/decry2.ko

/etc/init.d/rcSinit
RES=$?

rm -f /etc/decry2.ko

if [ $RES -ne 0 ]; then
echo "rcSinit fail: $RES"
exit $RES
fi

if [ -e /lib/fusion.ko ]; then
  insmod /lib/fusion.ko
fi

sh /etc/init.d/mtd_init.sh

#sh /etc/wifi.script/eprun.sh

echo "lircd_simulator start"
lircd_simulator &

ifconfig eth0 up
ifconfig lo up
/sbin/netinfd &

/sbin/ipcd &
hostname -F /etc/hostname




if [ -e /etc/init.d/rcS.custom ]; then
  sh /etc/init.d/rcS.custom || exit $?
fi

echo "simfile_prog start"
mknod /dev/simfile c 166 0
insmod /lib/modules/2.6.27/BDP/simfile_drv.ko
simfile_prog &
loop_subfile_prog &

#drop_cache &



bdpprog
RES=$?
echo "bdpprog result:$RES"
if [ $RES -eq 2 ]; then
  sh /etc/init.d/rc.shutdown
elif [ $RES -eq 3 ]; then
  sh /etc/init.d/rc.reboot
elif [ $RES -eq 4 ]; then
  sh /etc/init.d/upg_1.sh
elif [ $RES -eq 5 ]; then
  sh /etc/init.d/rc.fast_shutdown  
elif [ $RES -eq 6 ]; then
  sh /etc/init.d/rc.fast_reboot     
fi

echo "=rcS End="
exit 0
El bdpprog es el ejecutable que lo controla todo una vez arrancado el aparato, es este
Insertar CODE, HTML o PHP:
bdpprog    24,302,272
Destripar esa bestia en IDA es digamos jodido..

Aqui la subnormalidad de los mount NFS que solo aparecen como NFS0 etc;
Insertar CODE, HTML o PHP:
.text:008AF09C nfs_mount_root_path                     ; CODE XREF: mediacenter_lb_browser_handle_open+134p
.text:008AF09C                 PUSH    {R4,LR}
.text:008AF09E                 LDR     R3, =unk_17B4B68
.text:008AF0A0                 MOVS    R2, #1
.text:008AF0A2                 SUB     SP, SP, #0x20
.text:008AF0A4                 STRB    R2, [R3,#(byte_17B4B74 - 0x17B4B68)]
.text:008AF0A6                 STRB    R2, [R3,#(byte_17B4B75 - 0x17B4B68)]
.text:008AF0A8                 BL      nfs_get_root_path
.text:008AF0AC                 LDR     R1, =aNfsS      ; "nfs:%s"
.text:008AF0AE                 MOVS    R2, R0
.text:008AF0B0                 MOV     R0, SP          ; s
.text:008AF0B2                 BLX     j_sprintf
.text:008AF0B6                 MOVS    R0, #1
.text:008AF0B8                 LDR     R1, =0x1FF
.text:008AF0BA                 BLX     j_vset_dbg_level
.text:008AF0BE                 MOV     R1, SP
.text:008AF0C0                 LDR     R0, =aNfs_mount_root ; "nfs_mount_root_path: '%s'\n"
.text:008AF0C2                 BLX     j_dbg_level_printf
.text:008AF0C6                 MOV     R0, SP
.text:008AF0C8                 BL      misc_ipcmsg_update_path
.text:008AF0CC                 ADD     SP, SP, #0x20
.text:008AF0CE                 POP     {R4,PC}
.text:008AF0CE ; End of function nfs_mount_root_path
Aqui la razon por la que no funcionan ISOs de DVDs:
Insertar CODE, HTML o PHP:
.text:007B42A6                 MOVS    R1, R6          ; mount -o loop -t udf <escapedfilename>
.text:007B42A8                 BL      iso_file_name_handle_r0src_r1dest ; Add escape '\' to characters that need it
.text:007B42AC                 MOVS    R1, R6          ; src
.text:007B42AE                 MOVS    R0, R4          ; dest
.text:007B42B0                 BLX     strcat
.text:007B42B4                 LDR     R1, =(aIrPMn+5) ;  /mn
.text:007B42B6                 MOVS    R0, R4          ; dest
.text:007B42B8                 BLX     strcat
.text:007B42BC                 MOVS    R1, R7          ;  /mnt/wn
.text:007B42BE                 MOVS    R0, R4          ; dest
.text:007B42C0                 BLX     strcat
.text:007B42C4                 LDR     R1, =aHtempi    ; "htempi"
.text:007B42C6                 MOVS    R0, R4          ; dest
.text:007B42C8                 BLX     strcat          ;  /mnt/wnhtempi
.text:007B42CC                 LDR     R1, =(aLiblp_so+6) ; src
.text:007B42CE                 MOVS    R0, R4          ; dest
.text:007B42D0                 BLX     strcat          ;  /mnt/wnhtempi.so
.text:007B42D4                 MOVS    R0, R4          ; command
.text:007B42D6                 BLX     system
.text:007B42DA                 LDR     R3, =playingISO
.text:007B42DC                 MOVS    R2, #1
.text:007B42DE                 STRB    R2, [R3]
.text:007B42E0                 MOVS    R2, #0xCD0
.text:007B42E4                 ADD     R2, SP
.text:007B42E6                 LDR     R0, [R2]
.text:007B42E8                 BL      pb_dfb_set_isopath
.text:007B42EC                 BL      sub_7B3D90
.text:007B42F0                 CMP     R0, #0
.text:007B42F2                 BNE     loc_7B42F6
.text:007B42F4                 B       Exit
.text:007B42F6 ; ---------------------------------------------------------------------------
.text:007B42F6
.text:007B42F6 loc_7B42F6                              ; CODE XREF: mediacenter_lb_browser_open_file+2EEj
.text:007B42F6                 MOVS    R0, #1
.text:007B42F8                 BL      mediacenter_play_bd_in_hdd_folder
.text:007B42FC                 B       Exit
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Aqui la razon por la que no funcionan ISOs de DVDs:
Insertar CODE, HTML o PHP:
.text:007B42A6                 MOVS    R1, R6          ; mount -o loop -t udf <escapedfilename>
.text:007B42A8                 BL      iso_file_name_handle_r0src_r1dest ; Add escape '\' to characters that need it
.text:007B42AC                 MOVS    R1, R6          ; src
.text:007B42AE                 MOVS    R0, R4          ; dest
.text:007B42B0                 BLX     strcat
.text:007B42B4                 LDR     R1, =(aIrPMn+5) ;  /mn
.text:007B42B6                 MOVS    R0, R4          ; dest
.text:007B42B8                 BLX     strcat
.text:007B42BC                 MOVS    R1, R7          ;  /mnt/wn
.text:007B42BE                 MOVS    R0, R4          ; dest
.text:007B42C0                 BLX     strcat
.text:007B42C4                 LDR     R1, =aHtempi    ; "htempi"
.text:007B42C6                 MOVS    R0, R4          ; dest
.text:007B42C8                 BLX     strcat          ;  /mnt/wnhtempi
.text:007B42CC                 LDR     R1, =(aLiblp_so+6) ; src
.text:007B42CE                 MOVS    R0, R4          ; dest
.text:007B42D0                 BLX     strcat          ;  /mnt/wnhtempi.so
.text:007B42D4                 MOVS    R0, R4          ; command
.text:007B42D6                 BLX     system
.text:007B42DA                 LDR     R3, =playingISO
.text:007B42DC                 MOVS    R2, #1
.text:007B42DE                 STRB    R2, [R3]
.text:007B42E0                 MOVS    R2, #0xCD0
.text:007B42E4                 ADD     R2, SP
.text:007B42E6                 LDR     R0, [R2]
.text:007B42E8                 BL      pb_dfb_set_isopath
.text:007B42EC                 BL      sub_7B3D90
.text:007B42F0                 CMP     R0, #0
.text:007B42F2                 BNE     loc_7B42F6
.text:007B42F4                 B       Exit
.text:007B42F6 ; ---------------------------------------------------------------------------
.text:007B42F6
.text:007B42F6 loc_7B42F6                              ; CODE XREF: mediacenter_lb_browser_open_file+2EEj
.text:007B42F6                 MOVS    R0, #1
.text:007B42F8                 BL      mediacenter_play_bd_in_hdd_folder
.text:007B42FC                 B       Exit

dday,

donde puedo verlo?
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Esto
Insertar CODE, HTML o PHP:
 .text:007B42F8                 BL      mediacenter_play_bd_in_hdd_folder
Despues de montar el ISO siempre salta a reproducir BD sin mirar primero si es un DVD..
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

dday creo que me lo has dejado mas claro, seré sincero, esto me supera, al ver ya solamente los comentarios que has puesto en el desemsamblado no necesitaría ver mas para darme cuenta, estas a un nivel involucrado muy superior. De donde has salido?, jejej.
Se ve que lo visto en el foro era tan solo la punta del iceberg.. debajo había algo mucho mas grande cociéndose.
Mi propósito era solamente ayudar en lo que fuera a downgradear esos firmwares (todo el mundo pueda disfrutar de este futuro prometedor reproductor sin romperse la cabeza con veriones de firm) que como comentáis si es posible pero no públicamente, no quiero desvirtuar el espiritu del foro y menos siendo un mero espectador movido por la inquietud.
Si los firm mejoran y podemos comparar estos modelos con los DUNE hdi quizás pueda adquirirlo y ya os preguntaré.

thx dday por las explicaciónes, estaba un poco perdido. Ya descomprimí el rootfs_normal.bin y vi todos los ficheros. Nunca había tocado un sistema similar basado en linux.
No estaría mal dday que les pasaras a los chinos esos fallos para que los corrijan en los sources.

Un saludo
 
Me encanta lo animado que se a puesto el hilo con temas más elevados... Cualquier día le hacemos la competencia a unos y otros... Jaja, la tercera vía...

Ya en serio, si el amigo ruso no ha modificado nada de funcionamiento todavía, será porque no es fácil... Pero dday parece que sabe bastante bien de lo que habla, y lo mismo podemos hacer algo importante.

Saludos a todos, pedazo de hilo.

Enviado desde mi HTC One X usando Tapatalk 2
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

¿En qué versión de firmware se espera que estos aparatitos hagan el café? :D.
Mientras reproducen un bluray por supuesto.
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Tengo que reconocer que ni un sólo día puedo dejar de leer las interesantes aportaciones de este hilo.

Además de la gran ayuda que Consejero nos sigue prestando al igual que otros foreros, me han sorprendido gratamente los conocimientos sobre la materia de nuestro amigo 'ddey' el cuál me ha dejado literalmente con la boca abierta.

Ánimo y muchas gracias a todos por vuestra ayuda.

Casi disfruto más leyendo en este foro que utilizando mi querido BDP-140.

:hail:hail:hail
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Una preguntilla, ¿la carpeta BUDA que se crea cuando pinchas algo por usb, para que sirve?, ¿se puede configurar para que no se cree dicha carpeta?. Gracias.
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Una preguntilla, ¿la carpeta BUDA que se crea cuando pinchas algo por usb, para que sirve?, ¿se puede configurar para que no se cree dicha carpeta?. Gracias.

La sirve para BD-Live. Algo que se refiere a ello podria ser descargado y salvado en esta carpeta. No hagas caso.
 
Última edición:
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Estoy alucinado. A pesar de no entarme de las aportaciones que están realizando a tan alto nivel en los posts anteriores, cada día estoy más contento de haberme comprado el 450.
Primero por la calidad de imagen y segundo por las grandes posibilidades que ofrecen el desarrollo de los firms en manos de investigadores libres...chinos, rusos, españoles....Gracias.
 
Respuesta: Pioneer BDP-140/440[150/450]- Multizona y Custom FW (ver post 1 primero)

Como curiosidad... Creando una nueva carpeta en el QNAP y compartiéndola en la red, el Pio la reconoce por su nombre (peliculas). Las anteriores, por NFSx. No me preguntéis por qué. :?
 
Arriba Pie