Samsung Galaxy S III Subforo para hablar del espectacular Galaxy S3 de Samsung

Respuesta
 
Herramientas
  #1  
Viejo 23/01/13, 05:04:18
Array

[xs_avatar]
Adelaiglesia Adelaiglesia no está en línea
Miembro del foro
 
Fecha de registro: jul 2012
Localización: Madrid
Mensajes: 50
Modelo de smartphone: Samsung GT-i9505
Tu operador: Movistar
Lightbulb S3 Muerte Súbita: ¿Por qué? [Técnico]

Lo he colocado aquí porque no me encaja en desarrollo, si no lo consideran bien ubicado, muévanlo a donde les parezca oportuno.

Como todo en esta vida, creo que a todos nos gustaría entender qué está pasando con las eMMCs de nuestros S3, y que ha hecho Samsung al respecto. Aquí es donde entra en juego este post.

Pues bien, voy a intentar explicar a que se debe el error, y como lo ha arreglado Samsung. En primer lugar, deciros que es muy difícil leer, en primer lugar el ARM descompilado del kernel, y en segundo lugar, el dump de la RAM del MMC. Así que no estoy seguro al 100% que lo que digo sea cierto, sin embargo si estoy casi seguro al 99.9999%. Leer un DUMP de una RAM es muy complicado.

Asi que, ¿Qué pasa?

En primer lugar nos vamos al parche del firmware para el eMMC que publicó Samsung y encontramos lo siguiente:

(Ver el parche completo)

Código:
    if (!strncmp(host->card->cid.prod_name, "VTU00M", 6) &&
        (host->card->cid.prod_rev == 0xf1) &&
        (mmc_start_movi_smart(host->card) == 0x2))
        host->card->movi_ops = 0x2;
 
    if (host->card->movi_ops == 0x2) {
        err = mmc_start_movi_operation(host->card);
        if (err) {
            pr_warning("%s: movi operation is failed\n",
                            mmc_hostname(host));
            goto remove_card;
        }
    }
Esto viene a significar en castellano de cervantes, que cada vez que se encuentra la MMC "VTU00M" con la revisión 0xf1 (La problemática), se lee un Smart report. ¿Qué es un Smart report? Si nos vamos a la documentación de Samsung sobre el chip, nos dice que (página 12) "Samsung provee la herramienta Smart Report para que el cliente se de cuenta de el estado del dispositivo ante un error". Esta funcionalidad está indicada para corregir errores en el desarrollo del controlador de la tarjeta. Pues buen, si estos datos se cumplen, esto nos lleva a la función int mmc_start_movi_smart(struct mmc_card *card) que está en la línea 680 hasta la 715. La vemos abreviada:

Código:
int mmc_start_movi_smart(struct mmc_card *card) {
(...)
if (date !=  0x20120413) {
err = -1;
return err;
}
(...)
}
Esto lo primero que nos dice que los chips que están defectuosos llevan fecha de firmware 13/04/2012. (Esto puede significar que si hay chips VTU00M 0xf1 que no tienen ese firmware están sanos, aunque de momento parece que no se ha visto ningún caso, de todas maneras yo avisaría para que cuando la gente lo compruebe, se fijaran en la fecha, y si no es esa, mandarles ejecutar unas cosas para comprobar). En caso de que la fecha no sea esa se lanza -1 y no se aplica el parche. En caso de que la fecha sea esa, la función devuelve 0x2 al nivel superior, por lo que se ejecuta host->card->movi_ops = 0x2;.

A continuación pasa lo siguiente: Cuando la eMMC se inicializa se ejecuta mmc_movi_cmd(card->host, 0xEFAC62EC); y mc_movi_cmd(card->host, 0x10210000);, por lo que la tarjeta entra en modo de escritura a la RAM de la misma. Ahora lo que hace es escribir en la RAM con MMC_ERASE_GROUP_START(Dirección) MMC_ERASE_GROUP_END(Valor) MMC_ERASE(0). Los dos grupos escritos son:

Código:
10B5034A9047002800D1FEE710BD0000739D0500 para la dirección 0x40300 y
E3F789FD para la 0x5C7EA
Lo que nos lleva a instrucciones ARM del tipo Thumb, cocretamente una instrucción push.

(Si os interesa aquí os dejo el juego de instrucciones Thumb de ARM)

Código:
00040300   PUSH    {R4,LR}
00040302   LDR     R2, =0x59D73
00040304   BLX     R2
00040306   CMP     R0, #0
00040308   BNE     locret_4030C
0004030A
0004030A loc_4030A   ; CODE XREF: loc_4030Aj
0004030A   Bloc_4030A
0004030C 
0004030C
0004030C locret_4030C; CODE XREF: 00040308j
0004030C   POP     {R4,PC}
0004030C
Entonces vemos que se ha escrito la posición el bloque 0x40300 de la RAM del chip. Tras extraer el DUMP de la RAM con las modificaciones del kernel pertinentes:

Nos encontramos con que en la pila de llamadas, están los manejadores de MMC24 y MMC25. Dichos handlers pertenecen a MMC_WRITE_BLOCK y MMC_WRITE_MULTIPLE_BLOCK.

Si vemos este trozo de DUMP:
Código:
0005C7DE R4, R0
0005C7E0 R0, SP, #0x1D8+1d4
Nos encontramos con el error (si previamente hemos analizado la ram, que por cuestiones de espacio no voy a pegar un dump aquí, obviamente). Lo que ocurre es que el bit que controla el wear lev cuando trata de escribir al final de la tarjeta, se pasa, devolviendo una dirección de memoria que no corresponde (por desbordamiento), y escribiendo así el bootloader = móvil que no enciende. En resumen (aunque no ocurre así exactamente) el wear, que apunta a donde debe escribir, se le va la pinza y se pone a escribir en direcciones que no existen, estas direcciones provocan que el inicio de la eMMC sea sobreescrito).

Así que un pequeño Q&A:
¿Se degrada la eMMC por tener el bug?
Después de lo visto, me atrevo a afirmar que NO. Una eMMC con el BUG no tiene motivos para estar más degradada que otra.

¿Podemos encontrar algún patrón que describa el problema?
Diría que SI (aunque no puedo confirmarlo). El patrón será teléfonos que contienen muchos datos en su memoria, y que son reescritos habitualmente. Es decir, tienes la memoria casi llena, y cambias los datos de ella de vez en cuando. Por ejemplo, la tienes a tope de música y cambias canciones por otras nuevas porque no te entran.

También entraría en este patrón la gente que no tiene la memoria muy llena, pero si la cambia a menudo. (Instala muchas roms, copia muchas cosas a la memoria interna desde el PC...)

Esto ocurre cuando el wear leveling llega al final de la eMMC, en ciertas ocasiones y tras un numero de ciclos de escrituras, se salta el final de la tarjeta, y bueno, los que lo halláis estudiado, ya sabéis que un bit que no exista en la memoria supone escribir en una parte que no quieres.


¿Debería no fallar con el parche de Samsung?
Si, debería no fallar, sin embargo el parche contiene una singularidad. Si ocurriera el bug durante el funcionamiento del dispositivo (recordemos que qué el bug ocurra desde el punto de la probabilidad es improbable) el kernel entraría en un loop infinito bloqueando el teléfono. Esto es una medida de prevención (a mi parecer). Asi que recuerda, si se te ha quedado el teléfono bloqueado durante el arranque con alguna versión parcheada, y no sabes por qué, quizás sea porque se acaba de producir el bug y el kérnel ha impedido que destroce el teléfono. La probabilidad de que esto ocurra es tan baja que porbablemente tu bloqueo sea motivo de otra cosa. Si esto ocurriera, tras in reinicio volvería a funcionar. De hecho, en estadísitca de andar por casa, esto ocurriría en 1 de cada 20 millones de encendidos, acercándose la probabilidad a 1/128 cada vez que se copian datos a la eMMC en todos los bloques tras unas 10000 lecturas de cada uno de ellos. La probabilidad de que ocurriese en uno de cada 128 reinicios (la más desfavorable) sería tras escribir 156 Teras de información en el chip. Si copiarais en la memoria 10GB al día (cosa que nadie hace) el teléfono quedaría inútil en 43 años con el BUG. Esto indicaría que la memoria moriría antes por uso que el teléfono por el bug con el fix apilcado. No toméis al pie de la letra esta estadística, por favor.

¿Qué modelos fallan?
Curiosamente, según nos indica el kernel, no fallan todos los modelos de VTU00M 0xf1, si no sólo los que tienen el firmware fecha 13/04/2012. Los de otras fechas (si existiesen) no fallarían.

Última edición por Adelaiglesia Día 23/01/13 a las 05:29:19. Razón: Corrijo URLS que estan mal puestas && aclaro cosa que tras releer no quedaba clara
Responder Con Cita
Los siguientes 203 usuarios han agradecido a Adelaiglesia su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 23/01/13, 05:12:31
Array

[xs_avatar]
astraopc2010 astraopc2010 no está en línea
Miembro del foro
 
Fecha de registro: jul 2011
Localización: Chile
Mensajes: 415
Modelo de smartphone: Nokia c7, Nexus S, Galaxy S2, S3, S4 y S5, Lg G3
Tu operador: ENTEL
Excelente post, clarifica muchas cosas!!!! y pese a que es técnico no es difícil de entender....muy bien explicado..saludos desde chile.
__________________
sígueme en twitter @cabogvaldivia si te gusta la tecnología.
Responder Con Cita
  #3  
Viejo 23/01/13, 05:20:28
Array

[xs_avatar]
oscar.feas oscar.feas no está en línea
Usuario muy activo
 
Fecha de registro: sep 2012
Localización: Santiago de Compostela
Mensajes: 657
Modelo de smartphone: Galaxy SIII
Tu operador: Movistar
los de otras fechas si existiesen? existen y bastantes el mio es un VTU00M 0xf1 y es de noviembre el chip, y el movil de diciembre, quiere decir que no tengo peligro?
Responder Con Cita
  #4  
Viejo 23/01/13, 05:21:58
Array

[xs_avatar]
Adelaiglesia Adelaiglesia no está en línea
Miembro del foro
 
Fecha de registro: jul 2012
Localización: Madrid
Mensajes: 50
Modelo de smartphone: Samsung GT-i9505
Tu operador: Movistar
 Cita: Originalmente Escrito por oscar.feas Ver Mensaje
los de otras fechas si existiesen? existen y bastantes el mio es un VTU00M 0xf1 y es de noviembre el chip, y el movil de diciembre, quiere decir que no tengo peligro?
Supuestamente (y estoy convencido de ello) no, pero no te lo puedo asegurar porque mi certeza depende del fix que ha realizado Samsung. Yo diría que NO.
Responder Con Cita
  #5  
Viejo 23/01/13, 05:32:09
Array

[xs_avatar]
astraopc2010 astraopc2010 no está en línea
Miembro del foro
 
Fecha de registro: jul 2011
Localización: Chile
Mensajes: 415
Modelo de smartphone: Nokia c7, Nexus S, Galaxy S2, S3, S4 y S5, Lg G3
Tu operador: ENTEL
 Cita: Originalmente Escrito por oscar.feas Ver Mensaje
los de otras fechas si existiesen? existen y bastantes el mio es un VTU00M 0xf1 y es de noviembre el chip, y el movil de diciembre, quiere decir que no tengo peligro?
y como supiste que es de noviembre?? lo pregunto porque se ha dicho reiteradamente que la fecha que aparece al ejecutar el programa EMMC CHECK no es la que corresponde a la fecha de firmware de dicho chip, por lo tanto aunque te aparezca noviembre (como mi caso también) también podrías estar afectado.
__________________
sígueme en twitter @cabogvaldivia si te gusta la tecnología.
Responder Con Cita
  #6  
Viejo 23/01/13, 05:34:10
Array

[xs_avatar]
Adelaiglesia Adelaiglesia no está en línea
Miembro del foro
 
Fecha de registro: jul 2012
Localización: Madrid
Mensajes: 50
Modelo de smartphone: Samsung GT-i9505
Tu operador: Movistar
 Cita: Originalmente Escrito por astraopc2010 Ver Mensaje
y como supiste que es de noviembre?? lo pregunto porque se ha dicho reiteradamente que la fecha que aparece al ejecutar el programa EMMC CHECK no es la que corresponde a la fecha de firmware de dicho chip, por lo tanto aunque te aparezca noviembre (como mi caso también) también podrías estar afectado.
Desde luego, si el eMMC checker no lee la fecha mediante el método descrito en el post, de poco va a servir. Sería contactar con el desarollador a ver de donde saca la fecha.
Responder Con Cita
Gracias de parte de:
  #7  
Viejo 23/01/13, 06:03:01
Array

[xs_avatar]
oscar.feas oscar.feas no está en línea
Usuario muy activo
 
Fecha de registro: sep 2012
Localización: Santiago de Compostela
Mensajes: 657
Modelo de smartphone: Galaxy SIII
Tu operador: Movistar
aa pues si, me basaba en eso, entonces ni idea, bueno, estoy parcheado ya con la 4.1.2
Responder Con Cita
  #8  
Viejo 23/01/13, 08:15:16
Array

[xs_avatar]
sehergar sehergar no está en línea
Miembro del foro
· Votos compra/venta: (7)
 
Fecha de registro: jun 2009
Localización: Salamanca
Mensajes: 273
Modelo de smartphone: Note 3, Huawei Mate 8
Tu operador: Movistar
¿Entonces a partir de ahora todas la rom que salgan tienen que llevar el parche?
__________________
Responder Con Cita
Gracias de parte de:
  #9  
Viejo 23/01/13, 08:28:44
Array

[xs_avatar]
alfvg alfvg no está en línea
Usuario muy activo
 
Fecha de registro: abr 2011
Localización: Madrid
Mensajes: 1,311
Modelo de smartphone: Z2, S3 y HTC Desire HD
Tu operador: Vodafone
Muy buen post, si señor...
Aclarado y más tranquilo aún, por si no lo estaba...
Responder Con Cita
  #10  
Viejo 23/01/13, 09:14:19
Array

[xs_avatar]
tanyo85 tanyo85 está en línea ahora
Usuario muy activo
· Votos compra/venta: (15)
 
Fecha de registro: ago 2012
Localización: Palma
Mensajes: 1,800
Modelo de smartphone: Google pixel 7 pro
Tu operador: Pepephone
Muy buen post,me quito el sombrero si señor. Yo soy uno de los que tiene el VTU00M 0xf1 y estaba preocupado por el desgaste que pudiera haber sufrido en estos meses, pero la verdad, ojalá tengas razón y no exista tal desgaste.
Responder Con Cita
Gracias de parte de:
  #11  
Viejo 23/01/13, 09:18:37
Array

[xs_avatar]
ephreon ephreon no está en línea
Curioso!!!
· Votos compra/venta: (3)
 
Fecha de registro: ago 2010
Localización: Madrid, Spain
Mensajes: 1,567
Modelo de smartphone: Nexus One, S2, S3, G2, G3, Iphone6
Tu operador: Movistar
Me ha gustado mucho la explicación, muy entendible.

Una duda, si el eMMC Check no da la fecha del firmware, como se puede obtener?
Responder Con Cita
  #12  
Viejo 23/01/13, 09:53:00
Array

[xs_avatar]
kikolacalle kikolacalle no está en línea
Usuario novato en la web
 
Fecha de registro: mar 2011
Mensajes: 4
Modelo de smartphone: s3
Tu operador: Yoigo
Muchas gracias, es un trabajo extraordinario y muy útil.
Responder Con Cita
  #13  
Viejo 23/01/13, 10:21:06
Array

[xs_avatar]
CopyRight90 CopyRight90 no está en línea
Usuario poco activo
 
Fecha de registro: sep 2012
Mensajes: 30
Modelo de smartphone: OnePlus One
Tu operador: Orange
Uau! Alucinante.... llevaba dias buscando un Post asi me has acalarado muchas cosas. Gracias!
Responder Con Cita
  #14  
Viejo 23/01/13, 10:28:06
Array

[xs_avatar]
rcortes rcortes no está en línea
Miembro del foro
 
Fecha de registro: oct 2009
Mensajes: 95
Modelo de smartphone: Omnia -> Wave -> Galaxy S -> Galaxy S3
Tu operador: Simyo
Preguntilla tonta. Aunque yo se programar, reconozco que se me queda grande el problema. ¿Es muy complicado hacer un pequeño programilla que chequee la fecha del chip?

Creo que hay gran parte del código del parche que se puede reutilizar... el problema es disponer del entorno de desarrollo adecuado.
Responder Con Cita
  #15  
Viejo 23/01/13, 10:40:22
Array

[xs_avatar]
wiki wiki wiki wiki no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: ago 2012
Localización: Tenerife
Mensajes: 10,009
Modelo de smartphone: Nokia 3310
Tu operador: Simyo
Re: S3 Muerte Súbita: ¿Por qué? [Técnico]

Te hubiera entendido más si hubieras escrito en Chino :confused::confused::confused:pero te pongo el gracias, por el curro que te has pegado!! Saludos
Responder Con Cita
  #16  
Viejo 23/01/13, 11:07:48
Array

[xs_avatar]
jlocke jlocke no está en línea
Usuario novato en la web
 
Fecha de registro: jun 2010
Mensajes: 6

Gracias por la descripción del problema. Muy clara a la vez que rigurosa . Otras explicaciones que hay por ahí sobre las repetidas lecturas en el chip me sonaban tan extrañas que me hacian dudar de que el bug hubiese sido cazado. Ahora estoy más tranquilo.
Responder Con Cita
  #17  
Viejo 23/01/13, 11:11:10
Array

[xs_avatar]
revengeofdoh revengeofdoh no está en línea
Usuario muy activo
 
Fecha de registro: ene 2012
Mensajes: 896
Modelo de smartphone: xperia z1
Tu operador: Simyo
Gracias por el curro y compartirlo.
Responder Con Cita
  #18  
Viejo 23/01/13, 11:19:30
Array

[xs_avatar]
loco_tuning loco_tuning no está en línea
Miembro del foro
 
Fecha de registro: feb 2009
Mensajes: 197
Modelo de smartphone: Samsung galaxy S4
Tu operador: Vodafone
Gracias tío, muy buena explicación +10
Responder Con Cita
  #19  
Viejo 23/01/13, 11:33:54
Array

[xs_avatar]
kanai87 kanai87 no está en línea
Miembro del foro
· Votos compra/venta: (1)
 
Fecha de registro: ene 2013
Localización: Murcia
Mensajes: 499
Modelo de smartphone: Galaxy S6/ one plus 3t/ one plus 6t
Tu operador: Movistar
muchas gracias, la verdad que el post esta genial.
gracias
Responder Con Cita


  #20  
Viejo 23/01/13, 12:00:45
Array

[xs_avatar]
ThePunisher ThePunisher no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: jun 2009
Localización: Valladolid
Mensajes: 551
Modelo de smartphone: Samsung Galaxy S24 Ultra
Tu operador: O2
Muy útil el post y excelentemente explicado.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Samsung > Otros smartphones de Samsung antiguos > Samsung Galaxy S III



Hora actual: 16:39:46 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /