sexta-feira, 14 de dezembro de 2012

tutorial definitivo para ressuscitar seu tablet wm 8650 da tela preta morte hard blick



Este guia requer habilidades de solda / eletrônica.

Tente o botão de reset, bateria de desconexão e outros truques antes de seguir este guia.



O reset 
O primeiro momento de pânico e a primeira sensação ja era , Temos três estados possíveis: "on", "off" e "suspensão". Quando ligamos para a primeira vez o  nosso tablet , vemos o famoso robô verde que vem à vida, então a palavra "Android" que se acende e então surge o desktop com as diferentes aplicações disponíveis.
O comprimido é alimentado e operacional. Agora, quando você pressionar e solta o botão on / off, a tela se apaga e o tablet é "suspenso" estado em que não usa quase nem um recurso  e será capaz de voltar a trabalhar imediatamente quando apertamos novamente, brevemente o botão on off /. A retomada das operações ou quando vc toca tela isso varia  de maneiras diferentes de tablet para tablet.

Na minha experiência prática em três tablets  diferentes, eu poderia afirmar que a fase de "suspensão" pode  drenar a bateria consideravelmente. O que acontece então? O que acontece é que se você deixar o comprimido nesse estado e retomar depois de um dia ou dois, não liga mais, porque a bateria está fraca. Então você acha que você se conectar
o adaptador CA para recarregar a bateria, convencido de que, assim que ele é carregado, ele vai trabalhar novamente. Bem, não é. O tablet, mesmo com a bateria totalmente carregada, continuar a não ligar.
Então ... ir na internet para pedir ajuda, conselhos, desesperado para escrever frases: "Meu tablet está quebrado!" . Calma, o remédio existe e está em um buraco minúsculo, quase invisível, localizado na parte inferior do tablet (nem todos estão no mesmo lugar, você deve tentar). Este buraco, que em alguns casos tenha escrito um "reset" e outros absolutamente nada, permite pressionar um pequeno botão no interior , redefinir o tablet permitindo, pressionando o  on / off  botão, o que faz voltar funcionar tablet . Para mim, tudo o que eu descrevi aconteceu a sério e não pode imaginar o suspiro de alívio que eu fiz quando o tablet vivo . Pude, então, criar danos muito mais substancial, mas isso vai ser objecto de publicações posteriores 
Nota: O botão de reset está dentro de poucos milímetros, então você tem que "pesquisa" com o equipamento (o clipe de papel aberto) para encontrá-lo. Você deve ouvir um "clique" para obter a reposição. Em algum tablet é mais fácil porque não há um suporte de plástico que preenche a lacuna entre a borda do plástico e da chave, mas outros não e você tem que olhar com cuidado e cautela. Operações súbitas e violentas podem faltar no pequeno botão e possivelmente danificar os componentes eletrônicos que estão localizados na placa de circuito próximo a ele; calma, então.
Na foto abaixo você pode ver onde está, tipicamente, o buraco (clique na miniatura para ampliar).


Se o seu WM8650 ligar, mas aparece uma tela  preta , então você tem a "tela preta da morte" (ou thard brick). Então, vamos tentar recuperado !


************ U-Boot ************

U-Boot é o boot do tablet . Quando o WM8650 é ligado, ele começa a ler o SPI Flash.

Aqui está a seqüência de boot:
1 - U-boot é carregada  o  SPI Flash apartir  CPU.
2a - inicialização norma l: kernel Linux é carregado de NAND Flash pelo  u-boot.
2b - boot pelo  SDCard: Kernel Linux é carregado a partir do cartão SD pelo  u-boot. Esta Linux executar um script (autorun.sh) para reprogramar o Flash NAND e SPI Flash,  e fazer leitura dos arquivos do cartão SD.

Se SPI flash é corrupto ou inválido, o WM8650 não pode inicializar e apresenta a tela da morte

Você precisa ter acesso as portas hardware do WM8650  para verificar se U-boot ainda funciona .
O aparelho deve ser aberto para conectar a porta serial do PC no WM8650-.
Alguns tablet vêm com um adaptador 30pin  uma porta Ethernet e duas portas USB.
Este adaptador pode ser desmontado para acessar os pinos da porta serial, e evitar a abertura do Tablet.


FERRAMENTAS NECESSÁRIAS ******** ********

1 - FIRMWARE
Obter o firmware original do seu modelo de tablet, ou um firmware que você sabe que é compatível.

2 - conversor de série
Este esquema se conecta à porta serial de WM8650 (3 volts) à porta serial do PC (12 volts):

esquema




Este circuito converte níveis de lógica TTL para EIA-RS232 níveis e é alimentado 3V. A IC pode ser usado MAX3232 ou ST3232 ou semelhante a partir de outras fontes. ICs tais são adequados para tensão de operação de 3 Volts. Liguei o PC para um tablet clone China usando essa interface e placa de expansão NET / USB do tablet (mostrado na foto). Por favor, note que o RX e TX fios deve ser invertido  nesta aplicação






Se o seu PC não tem uma porta serial, use um cabo USB / conversor serial.


mais detalhado 
 A porta serial
Para obter alguns resultados, você deve primeiro equipar-se com um mínimo de ferramentas de hardware e software. Começamos com um "pedaço fácil", conectar  um LED para a expansão do tablet . A alguns tablets vem  com dois conectores USB e um conector RJ45 para LAN. se abrirmos o tablet , verificando o sircuitoo circuito ... surpresa ... também tem 4 furos 2,54 milímetros com os sinais da série "ttyS0" sistema operacional Linux porta atrás de Android.
Primeiro, eu sugiro que você solda um conector strip  para ser capaz de conectar todas as interfaces seriais. 


O dispositivo mais simples que possa se conectar para ver se o nosso tablet ainda realizar alguma operação de "boot" é composto de um LED regular (na foto é verde, mas é bom o amarelo ou vermelho) e um resistor. Aqui está um exemplo construtivo: (clique na miniatura para ampliar a imagem)


Quando este circuito está conectado e você ligar o tablet (ligado), você vê a luz do LED se e cintilação. Isto significa que o sistema Linux está a enviando um sinal para  terminal (o qual pode ser ligado) toda a lista de actividades. Quando o sistema estiver totalmente carregado (e você vê a bela tela do Android), a atividade do LED será visível apenas com um "blip" rápido uma vez a cada 60 segundos. Isso é porque o Linux, uma vez por minuto, executar uma saída serial para convidar qualquer usuário conectado ao login terminal. Assim, o primeiro teste a ser feito em um tablet "preso" é ligar esta interface e ver como ele se comporta na LED.
4. O terminal 
Se o "Teste de LED" foi positivo ou seja o led acendeu , por isso estamos confiantes de que o nosso tablet enviar caracteres a partir do porto de série, podemos ir em frente e tentar interagir com ele através de um "terminal" RS232. 
Precisamos de duas coisas: um software e hardware. Para o software, Windows e Linux, há uma abundância de escolha para o XP, o número de terminais de série era (com o perdão do trocadilho) do Windows, do Win7 foi eliminado (com a precisão M $ remove programas mais úteis a cada nova versão) e você tem que encontrá-lo em outro lugar. Eu costumo usar RealTerm no Win XP e CuteCom no Linux (eu sou um fanático do Puppy Linux). Se você quiser um miniterminal essencial, mas ainda está em execução, você pode usar o escrito por mim (ele é chamado miterm-en). Você pode baixá-lo a partir desta link . . O programa foi escrito e compilado com FreeBASIC para Windows e é executado silenciosamente em Win7. Não há necessidade de instalar: basta levar o arquivo ZIP, extraia o arquivo EXE executável e clique em. O programa esta por padrão default  COM4 porta serial. Se a sua porta serial (ou USB-RS232) tem um número diferente, o programa irá erro e pede-lhe para introduzir uma porta diferente ou para dar o "retorno" sem digitar nada, para sair. Na imagem abaixo você pode ver a tela de início no meu PC. A interface USB-RS232 que ira usar , instala em seu sistema na  porta com19 COM19 quando o programa inicializa e diz  não ser capaz de usar a porta padrão COM4.
A outra coisa que precisamos é a interface de hardware. Temos falado até agora de conversores
usb-rs232, mas a porta serial do tablet está em sinais de nível TTL (APENAS amplitude positiva de 3,3 Volts), de modo que não pode conectar diretamente os sinais TXD e RXD DB9, uma vez que estes têm níveis diferentes (positivo e negativo e lógica inversa), mas temos que convertê-los com um circuito especial. Eu percebi que tem uma versão pessoal, usando um built-in tipo SMD MAX-3232 (ou ST-3232, mais barato) e projetar um circuito impresso adequado. Todo o material (PDF esquemático e desenho em escala 1:1 para gravação placa de circuito impresso) está disponível para download neste link 
conversor de série
Este esquema se conecta à porta serial de WM8650 (3 volts) à porta serial do PC (12 volts):

esquema



Este circuito converte níveis de lógica TTL para EIA-RS232 níveis e é alimentado 3V. A IC pode ser usado MAX3232 ou ST3232 ou semelhante a partir de outras fontes. ICs tais são adequados para tensão de operação de 3 Volts. Liguei o PC para um tablet clone China usando essa interface e placa de expansão NET / USB do tablet (mostrado na foto). Por favor, note que o RX e TX fios deve ser invertido  nesta aplicação







Existem, naturalmente, também produtos comerciais que fazem o mesmo. um usb-interface serial TTL, no mercado livre vende 
 Se você usar esse usb-interface serial TTL, você só precisa conectar os três fios GND, TXD, RXD diretamente do PC para o tablet. Conexão direta, e GND GND, TXD e RXD TXD e RXD com, ao contrário do que você tem que fazer se você usar minha interface em que você precisa para se conectar TAMBÉM o Volt 3,3 e os sinais RXD e TXD estão cruzados. Adicionar uma nota que pode ser útil com a interface "chinês" e, geralmente, com todas as interfaces USB-RS232, pode ser necessário ajustar a configuração da porta serial para desativar o buffer FIFO, a fim de eliminar os atrasos e latências introduzidas pela drivers. O circuito descrito, se você compra, você não receberá nenhum driver de disco, porque é baseado no chip Silicon Labs CP2102 que é imediatamente reconhecido pelo sistema.
Se as coisas do seu PC ir de outra forma, procure o site Silicon Labs e baixar de lá o driver atualizado para CP210x para o seu sistema operacional.

5. Caça da U-Boot 

Bem, nós construímos (ou compramos ) a interface, temos instalado o programa para o terminal e estamos prontos para ver o que transmite o nosso tablet. Iniciamos o programa para o seu PC e ligar o tablet ... 
Isso é só pegar a primeira mensagem:
WonderMedia Technologies, Inc.
W-Load Version : 0.15.00.01
UPDATE_ID_0_4_3_0_2_256MB_0150001
ethaddr............found
wloader finish
Isto diz-nos que o nosso tablet é baseado em um processador WonderMedia, normalmente o WM8650, ou, se mais velho, o WM8505. A carga W fase é bem sucedida e, em seguida, começou o U-Boot. Aqui é como continuar as mensagens:
U-Boot 1.1.4 (May 12 2011 - 15:34:56)
WonderMedia Technologies, Inc.
U-Boot Version : UPDATEID_0.04.00.00.07
U-Boot code: 03F80000 -> 03FC2A30 BSS: -> 03FCCC4C
boot from spi flash.
SF0: ManufID = 20, DeviceID = 2013 (Missing or Unknown FLASH)
Use Default - Total size = 8MB, Sector size = 64KB
SF1: ManufID = 0, DeviceID = 0 (Missing or Unknown FLASH)
Use Default - Total size = 8MB, Sector size = 64KB
flash:
Bank1: FF800000 -- FFFFFFFF
Bank2: FF000000 -- FF7FFFFF
Flash: 16 MB
sfboot NAND:env nand config fail, use default flash id list info
pllb=0xc30, spec_clk=0x190a0fff
T1=3, clk1=16, div1=7, Thold=1, tREA=25+delay(9)
T2=2, clk2=18, div2=8, Thold2=1, comp=1
Tim1=524288 , Tim2=442368
T2=1, clk2=34, div2=15, Thold2=1, comp=1
Tim1=442368 , Tim2=557056
T2 is greater and not use
T=2, clk=18, divisor=8, Thold=0x601
divisor is set 0x8, NFC_timing=0x2424
USE_HW_ECC ECC24bitPer1K
1 Nand flash found.

Nand Flash Size: 2048 MB

In: serial
Out: serial
Err: serial
### main_loop entered: bootdelay=1
E aqui é a coisa que me fez louco. Na última linha que você vê o comentário dizendo que você entrou na fase principal e mostra que o BootDelay é igual a 1. Isto significa que o programa, antes de iniciar o carregamento do resto, ele deve esperar por um segundo para permitir que qualquer usuário conectado ao terminal serial parar tudo e passar para os comandos U-Boot, fase em que é possível modificações úteis para corrigir quaisquer problemas. não é assim. A versão de U-Boot que me fez suar sete camisas NÃO parar qualquer informação  é enviado a partir do terminal, ou CTRL-C ou espaço, ou qualquer outra coisa. Eu até escrevi um pequeno programa que enviou um caráter triplete "adequado" imediatamente após receber a mensagem "loop_principal entrou", pensando que talvez eu estava muito lento (Eu sou apenas um ser humano) para enviar os caracteres em que segundo momento. Bem, não era. Simplesmente esta versão especial de U-Boot não pára-JUST. Se você está nesta situação, você não pode parar o U-Boot e então você não pode fazer alterações.O programa continua e nós enviar outras mensagens:
logocmd="nandrw r ${wmt.nfc.mtd.u-boot-logo} ${wmt.display.logoaddr} 10000; nandrw r ${wmt.nfc.mtd.u-boot-logo2} ${wmt.display.logoaddr2} 40000; nandrw r ${wmt.nfc.mtd.kernel-logo} ${wmt.kernel.animation.addr} 80000; display init force; decompanima -f ${wmt.display.logoaddr2} 0x3000000; decompanima -f ${wmt.display.logoaddr} 0x3000000"
Load Image From NAND Flash
col=0x2150, row = 0x3ff80
block2047 tag=42627430 version =1
col=0x2150, row = 0x3ff00
block2046 tag=31746242 version =1
bbt table is found
USE_HW_ECC ECC24bitPer1K
Too Many Error
Too Many Error
Too Many Error
Err1 at 11080
Load Image From NAND Flash
USE_HW_ECC ECC24bitPer1K
Too Many Error
Too Many Error
Err1 at 11100
Load Image From NAND Flash
USE_HW_ECC ECC24bitPer1K
Too Many Error
Too Many Error
Err1 at 11280
[VOUT] ext dev : LCD
[VOUT] int dev : NO
[LCD] wmt default lcd (id 4,bpp 24)
vpp_config(800x480@60),pixclock 40000000
div_addr_offs=0x35c PLL_NO=1
[VPP] get base clock PLLC : 400000000
1div_addr_offs=0x374 PLL_NO=2
find the equal valuePLLN64, PLLD5, PLLP2, divisor2 freq=40000000Hz
PLL0x5440, pll addr =0xd8130208
PLLN64, PLLD5, PLLP2, div2 div_addr_offs=0x374
read divisor=2, pll=0x5440 from register
[GOVRH] set clock 40000000 ==> 40000000
div_addr_offs=0x374 PLL_NO=2
[VPP] get base clock PLLB : 40000000
vo_lcd_visible(1)
Neste ponto, meu tablet congelou, porque (como pode ser visto a partir dos inúmeros erros listados) tinha modificado com um editor hexadecimal dados do logotipo (o robô verde) a criação de um erro grave. Se as falhas de U-Boot antes da verificação dos dados no cartão SD externo, obviamente, não pode realizar o carregamento de uma nova versão de ROM, e então tudo ainda é. Tela preta, sem atividades subseqüentes. Nesta situação terrível, mas não encontrou qualquer software outra solução, decidi abrir o tablet, dessoldar a memória SPI, reprogramá-lo com um par W de carga e U-Boot "fresco" (e com a BootDelay colocar um 3/2, ai  Eu tenho muito tempo para detê-lo!) e então re-soldar o chip no PCB. Infelizmente eu arruinei dois "blocos" e eu tive que fazer uma operação de recuperação meticuloso. Encontre toda a descrição mais abaixo no tutorial . Com o novo U-Boot eu finalmente tenho a mensagem que diz que você pressione um botão 
para entrar em qualquer modo de comando. Eu apertei um botão e finalmente entrou em modo de comando! Eu apertei o caractere '? que geralmente começa a lista de comandos (ajuda) e aqui é o que eu tenho:
WMT # ?
?       - alias for 'help'
autoscr - run script from memory
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootm   - boot application image from memory
bootp\0x09- boot image via network using BootP/TFTP protocol
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
dhcp\0x09- invoke DHCP client to obtain IP/boot params
diskboot- boot from IDE device
show    -
echo    - echo args to console
erase   - erase FLASH memory
exit    - exit script
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatstore - store binary file to a dos filesystem
flinfo  - print FLASH memory information
go      - start application at address 'addr'
help    - print online help
icrc32  - checksum calculation
ide     - IDE sub-system
iloop   - infinite loop on address range
imd     - i2c memory display
iminfo  - print header information for application image
imls    - list all images found in flash
imm     - i2c memory modify (auto-incrementing)
ims  - set i2c device context from memory
imw     - memory write (fill)
inm     - memory modify (constant address)
iprobe  - probe to discover valid I2C chip addresses
itest\0x09- return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loop    - infinite loop on address range
memory bit operation :
Format : mbit <parameter>
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing)
mmcinit - init mmc card
mmcinit 0 -- init mmc device 0
mmcinit 1 -- init mmc device 1
mmcread - read data from SD/MMC card
<dev_id> <addr> <block_num> <bytes>
-read data from SD/MMC card block address 'block_num' on 'dev_id'
to memory address 'addr' size is 'bytes'
mmcwrite - write data to SD/MMC card
<dev_id> <addr> <block_num> <bytes>
-write data to SD/MMC card block address 'block_num' on 'dev_id'
from memory address 'addr' size is 'bytes'
mtest   - simple RAM test
mw      - memory write (fill)
nandrw  - NAND sub-system
nboot   - boot from NAND device
nfs\0x09- boot image via network using NFS protocol
nm      - memory modify (constant address)
ping\0x09- send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
sdwaitins - wait sd card inserted or removed
sdwaitins 0 -- waiting removed
sdwaitins 1 -- waiting inserted
setenv  - set environment variables
sleep   - delay execution for some time
test    - minimal test like /bin/sh
textout - show text to the screen
textout x y "str" color
color is 24bit Hex, R[23:16], G[15:8], B[7:0]
for example: textout 0 0 "hello world" FFFFFF
tftpboot- boot image via network using TFTP protocol
version - print monitor version
WMT #





3 - SD CARD
Você precisa de firmware original ou um firmware que você sabe que funciona com o seu tablet.

4 - programa de terminal
Use o Windows XP "HyperTerminal" ou outro programa de terminal no Vista / 7 com suporte ao protocolo Kermit.

Estes passos são apenas se U-boot não está funcionando:

O flash SPI
SPI significa Serial Peripheral Interface e "flash" é um tipo particular de memória, capaz de ser escrita (e reescrita ) no modo rápido e capaz de reter informações mesmo se o fornecimento de energia for removida, de modo que este tipo de memória é parte do não " volátil do equipamento
Qual é a finalidade da SPI flash em nosso Tablet Android? É como o disco (antigo) disquete em computadores antigos. O disquete, em computadores antigos, era o dispositivo que contém o boot  de programa inicial, o primeiro programa para processador funcionar  iniciar o sistema todo. Em nossos tablets , o processador (estou falando sobre o WM8650, neste caso) tenta carregar um programa de boot a partir deste dispositivo. O SPI memória flash é um dispositivo pequeno e simples. Normalmente tem 8 pinos (contatos) e não é muito miniaturizada ... ainda esta dimensões razoáveis para trabalharmos e esta é a razão que nós podemos removê-lo do circuito, reprogramar e solda lo  no lugar. Se o tablet esta  "hard blick " ou seja telapreta , você pode imediatamente recuperar, simplesmente restaurar um programa de inicialização válido nele. 
mais o que tem spi ?
Existem dois programas: o W-lood  e do U-Boot. O U-Boot pode executar comandos que você fornecer através do terminal serial ou você tem armazenado no microSD, por meio do arquivo de script wmt_scriptcmd. U-Boot é a ferramenta para lidar com o nível muito baixo de seu tablet. Btw, o flash NAND é outro componente básico do sistema, porque é o disco rígido do seu dispositivo. Como em computadores antigos, os boot do  disquetes era inicio  do sistema e então o disco rígido começa os programas com interface de usuário normal (ou GUI quando é Graphical User Interface).
Ok, nós ligar o botão, o processador inicia, executa o programa escrito na seção W-load seçãoO U-boot em seguida, inicia o sistema que está na memória NAND e você tem o seu  tablet funcionando .
Quando você tenta unbrickar seu tablet reescrever o flash SPI, você deve usar a versão correta do U-Boot e W-Load, porque se você escolher uma versão errada, todo o processo não pode começar. Uma importante secção (normalmente não mencionado) é o programa W-load . é uma versão especial de  inicio  memória RAM em seu tablet. Nem todos os pente memoria  são os mesmos: mesmo a um determinado número de MB em cada memoria , os pente  podem ser dispostos de diferentes maneiras. Para arranjos diferentes, existem diferentes W-load.
Como posso entender qual é o meu específico W-Load?
Você pode dar uma olhada na saída serial que sai de seu tablet ao ligar. Obviamente ... você deve fazer isso antes de atualizar (e possivelmente brick (matar ) o seu tablet! A interface serial é uma ferramenta muito poderosa e eu recomendo a você . compra (ou construir) um para modding e melhor compreensão de seu tablet 
Veja este exemplo:
WonderMedia Technologies, Inc.
W-Load Version : 0.15.00.01
UPDATE_ID_1_4_4_0_2_256MB_0150001
ethaddr............found
wloader finish

U-Boot 1.1.4 (Aug 24 2011 - 10:14:10)
WonderMedia Technologies, Inc.
U-Boot Version : UPDATEID_0.04.00.00.10
U-Boot code: 03F80000 -> 03FC3190  BSS: -> 03FCD724
boot from spi flash.
SF0: ManufID = 37, DeviceID = 3013 (Missing or Unknown FLASH)
Use Default - Total size = 8MB, Sector size = 64KB
Há algumas informações muito úteis: são W-Load versão e UPDATE_ID, U-Boot Versão e UpdateID. Com tais informações, pode facilmente "construir" seu próprio SPI flash e será exatamente aquele que se encaixa o seu tablet. Você também tem informações sobre em que tipo de SPI flash está montada no tablet. No exemplo anterior, a memória tem ID 0 × 373013 (que é desconhecido para o sistema, assim que começa, com valores padrão que são boas para todas as memórias).
Como montar seu arquivo BIN para escrever um novo SPI flash.
Normalmente, o flash SPI tem 512KB de espaço (kilobytes), mas se você olhar para a folha de dados é chamado de memória de 4 megabits, que é exatamente o mesmo, 4Mbits Porque = 512KBytes. 
Nos nossos tablets , o SPI memória flash é dividido em duas áreas : o primeiro, começando no endereço 0 × 00000 e terminando em 0x6FFFF (não totalmente utilizado) é o programa de U-Boot, o segundo, a partir do endereço 0 × 70000 e terminando em 0x7FFFF (quase totalmente utilizado) é o programa W-Load .
Eu escrevi um pequeno programa que pode construir para você o arquivo my-spi.bin, o arquivo BIN de 512KB você precisa re-flash a sua memória SPI. O programa é escrito em FreeBASIC (no Windows), e não precisa de instalação. Apenas descomprimir o ZIP. Você pode baixar a partir de anexos em uma pasta, por exemplo spi-flash e você tem o executável para ser executado. 
Para criar o arquivo my-spi.bin, você precisa, obviamente, para os arquivos submentioned u- boot.bin e w-load.bin. Então, vá para a pasta FirmwareInstall da sua pasta de atualização Uberoid (ou para a mesma pasta da rom original) e copiar o u-boot.bin você encontra lá na nova pasta criada. Para o w-load , você tem (muitas vezes) os nomes de arquivos diferentes que tudo começa com w-load  prefixo e termina com. Bin sufixo, mas o arquivo certo é o que tem dentro da mesma assinatura que você leu no terminal de série (em nosso exemplo é UPDATE_ID_1_4_4_0_2_256MB_0150001). Se você estiver em dúvida, simplesmente tente copiar todos eles em sua nova pasta e renomeá-lo, um de cada vez, em w-load.bin. O programa é "estúpido" e procura por arquivos de u-boot.bin e w-load.bin e produz como saída meu-spi.bin . 
Ao iniciar o buildspi.exe, o programa gera o arquivo de saída e mostra de vídeo as versões reais de U-Boot e Wload  de programas, se alguns dos que as versões não é o que você precisa para, simplesmente  tente novamente.
Uma vez que o arquivo é criado e as versões são ambos idênticos aos que você lê a partir de um terminal série na inicialização do tablet , você tera  arquivo SPI  para colocar no no chip.
O arquivo executável (zipado) pode ser baixado aqui .
Na foto abaixo, você pode dar olhada para uma imagem do programa de trabalho.Espero que isso irá ajudá-lo.


atualização do programa 



 No explicação anterior descrevi  um programa que foi capaz de criar o SPI na da memória flash para um tablet Android, a partir de U-boot.bin e W-load.bin retirado FirmwareInstall da  original ou modded, firmware rom. O programa anterior tinha um limite: as variáveis ​​de ambiente (e o script de boot  que é armazenado em algum  espaço) não foram utilizados na criação do my -spi.bin arquivo de saída, então quando você re-programar o SPI memória flash com o arquivo produzido pelo programa antigo, você devi  fornecer as instruções necessárias para atualizar o sistema através de um terminal série.
Agora, a nova versão adiciona as variáveis ​​de ambiente completo e o código CRC32 necessário para o arquivo de saída my-spi.bin , tornando o arquivo muito mais útil e fácil de usar. Obviamente, enquanto na primeira versão você tinha que fornecer apenas dois  arquivos (u-boot.bin e w-load.bin), agora você deve fornecer um terceiro: o env_uboot, que pode ser encontrado na pasta  FirmwareInstall / env /  do tablet
As instruções de uso são exatamente a mesma da versão anterior, basta adicionar o arquivo env_uboot na pasta do programa.  o programa foi escrito em FreeBASIC e compilados sob Win7. Ele não requer instalação, basta descompactar o arquivo baixado em uma pasta, e adicionar os arquivos de entrada necessários, em seguida, iniciar a aplicação .... isso é tudo. Espero que isso seja útil para alguém 
Baixe o arquivo zip neste link
As áreas de memória da resultante meu-spi.bin arquivos são:
0 × 00000 para 0x5FFFF reservado para u-boot.bin 
0 × 60000 para 0x6FFFF reservados para variáveis ​​de ambiente 
0 × 70000 a 0x7FFFF reservados para w-load.bin

Lembre-se de obter o arquivo de w-load  .bin direto da pasta FirmwareInstall. 
Geralmente, na maioria dos tablets  que eu vi (mas não em todos), a direita nome do arquivo tem DDR3_700M_1066M_8bit_2_256MB . Obviamente, quando você copiar este arquivo na pasta do programa , você deve renomear em w-load.bin, porque o programa procura  exatamente por este o nome do arquivo.


Usando programador  spi para  reviver brick morto  Android Tablet



Esta é a minha versão de hardware programar  spi





PDF mais legível pode ser baixado aqui


eu  também desenvolvi uma pequena placa de circuito impresso, principalmente para a pinagem soquete ZIF.
O PDF 01:01 escala pode ser baixado aqui

E finalmente hardware
Eu usei um soquete ZIF TexTool da 3M (código RS catálogo 766-980) e modifiquei os valores de resistência do esquema original. A razão para esta mudança é para proteger o dispositivo no âmbito da programação, porque as memórias flash SPI e alimentada a 3V e porta paralela do PC pode executar a 5V. Assim, o aumento dos valores de resistência dá menos corrente para os diodos de proteção construídas no chip de memória. Na prática, a tensão em excesso proveniente da porta paralela cai no resistor e a corrente total que flui através do diodo de proteção interna é (Vpp-Vcc) / R onde Vpp é a tensão de saída a partir da porta paralela, VCC é o fornecimento de flash IC ( 3V, neste caso), e R é a resistência colocada entre a porta paralela e o IC. Note-se que o flash tem saída de dados resistor de menor valor: isso é obrigatório porque a porta paralela tem pull-up resistências dentro e, portanto, o baixo nível (zero lógico) que vem do IC flash torna a partição com o resistor em série e do pull-up e aumentos de valor. Se o resistor em série é muito alto, o baixo nível vai na zona que é considerada instável ou alto para o pino da porta paralela de entrada e seu dispositivo não irá funcionar! Obviamente, isto significa que o pino de dados fora não é protegido, assim como os outros pinos, mas para uso ocasional, pode ser considerado suficientemente seguro de operar. A melhor solução será a de adicionar alguma lógica nível tradução. Observe o anel de cobre na imagem: é só o que facilita a desligue o conector de porta paralela ... não remova o conector puxando pelos fios! Você facilmente tera a solda-los novamente ...

Bem, agora vou descrever o procedimento passo-a-passo para programar um IC flash com o programador.  No  meu  Tablet Android WM8650 , o spi  flash foi o 25P40 da ST. É um chip de 8 pernas  por isso não é muito complicar para dessoldar da placa. AVISO:. O IC vai "morrer" quando dessoldar , como o meu fez, mas se você tiver o arquivo binário necessário para preencher o novo, não haverá problemas 
Note que no arquivo  que usei, como fonte para progrmar o  flash, um arquivo bin chamado 2711942B.bin;. esse nome estranho vem de uma WM8650.bin que encontrei na Internet, renomeado com o valor de sua soma de verificação CRC32. Eu fiz esta causa "não são arquivos binários diferentes, com a mesma finalidade (regravando Android SPI), mas no meu tablet específico somente aquele com CRC32 como fez o trabalho.Obviamente, você precisa baixar o arquivo em algum lugar ( Editado: depois de algum tempo, percebi uma ferramenta de software que pode construir o arquivo BIN direito de ser utilizado para o flash de memória SPI  e renomear como mencionado para  usar . arquivo  sem qualquer modificação 
Opa, você também precisa de uma memória flash IC para programar Os 25P40 originais do ST era impossível encontrar no meu país, mas um equivalente da Atmel está disponível no catálogo Farnell com o código: 171 5441 (AT25DF041A -SSH-B). Assinatura eletrônica do componente é desconhecido para o programador SPI, mas funciona bem como Atmel genérico. Como o original, este IC flash tem 4 Megabits (512 KBytes) 
Preste atenção para as cargas estáticas! Conecte o seu corpo no (terra) GND ao manusear IC
Agora, vamos começar a programar o chip, siga esta sequência passo-a-passo, por favor ...
  • inserir o IC no soquete ZIF com conector DB25 da porta da impressora e Clip 3V desconectado !
  • conectar o clipe de bateria para a bateria de 3V com especial atenção para a polaridade! reverter = destruira o chip  )
  • iniciar o "identify.bat" arquivo , ainda sem ligar o programador à porta paralela
(Este inicializa as saídas da porta paralela a uma condição segura). Obviamente, há erros, porque o programador ainda está desconectado.
  • conecte  o DB25 à porta paralela e execute novamente o lote "identify.bat".
Neste momento você pode ver o ID do chip que é 1F4401h, que é específico para o AT25DF041A, mas não é reconhecido pelo programa para o tipo, somente para fabricante (Atmel), mas é o suficiente.
  • Agora, execute o "unlock.bat" . Isto é necessário para permitir que a memória seja escrita 

mesmo que o resultado for  "não", o desbloqueio foi feito.
  • agora apague  a memória a executando "erase.bat". Isso não é necessário para um novo chip  CI, mas é melhor fazê-lo de qualquer maneira ...

isso vai levar uns  segundos, . Se o programa termina imediatamente, há algo errado.
  • e agora, executar o  "program.bat" ...
o programa não conhece  este tipo de memória, por isso digite  tamanho em Kb, t512 e prossiga .. (note que este passo é ignorado se o chip de memória está totalmente reconhecido pelo programa)
programação foi executada (será necessário um par de minutos ou menos para o arquivo BIN usado).
  • finalmente, ler o conteúdo em flash programadas execução "Dump.bat" lote. Ele vai ler o conteúdo flash e armazená-los para rd_spi.bin arbitrária nome do arquivo, que será útil para comparar o arquivo de origem com essa leitura.
novamente o programa não sabe este tipo de memória, por isso pede para o tamanho em Kb, tipo mais uma vez 512 e ir ... (note que este passo é ignorado se o chip de memória está totalmente reconhecido pelo programa)
operação completa ... agora usar uma comparação de arquivo binário para verificar se a fonte e leitura são iguais (sugiro a grande fonte aberta Frhed para fazer este trabalho). Em alternativa, você pode comparar o CRC32, MD5, SHA-1 de ambos os arquivos usando o programa gratuito HashTab que integra no shell do Windows.
O IC flash está programado, agora siga essa seqüência de desligar:
  1. com o IC ainda na tomada e a bateria conectado, desconecte o conector DB25 da porta paralela
  2. separar o conector clipe da bateria 3V
  3. abrir a ZIF e obter o IC programada

O IC novo tem de ser soldado no lugar da antiga. Normalmente, isso não é muito difícil, mas olugar  minha placa de pinos 5 e 6 foram removidos por calor excessivo durante de soldagem . Isso pode transformar o seu tablet em um conjunto plana lixo eletrônico caro.Eu resolvi o problema usando o fio de cobre esmaltado (0,2 mm) soldada diretamente às faixas PCB e coquei  no lugar por fita adesiva de papel. Foi muito , trabalho muito duro . Então, por favor, seja paciente e remova cuidadosamente o IC original de suas pastilhas de solda. Qualquer excesso de calor pode danificar o chip (e isso não é importante) eo PCB (e isso é ótimo)! Na foto você pode ver a "gambiarra " que resolveu o meu problema. Com este arranque novo flash eo UBEROID rom colocado no slot de cartão SD, o meu Tablet Android foi finalmente unbricked revivido .







vc pode utilizar esse esquema aqui também com mesmo programa de cima



Ao utilizar spipgm, você pode encontrar erro de paridade ou outro erro semelhante.Principalmente, isso significa que o chip não é reconhecido por causa de fator diversos

Piscando EON EN25F40

A primeira vez que usar este software, eu também tinha erro de paridade encontro. Então eu quero compartilhar como eu resolvi esse problema e flash com sucesso o chip (unbrick WM8650 tablet).

Se você já construiu sua interface de hardware e teve esse erro, você deve verificar todas as conexões novamente e garantir que a energia fornecida não é errada . É melhor usar a bateria como fonte de energia do que usar AC DC fonte de alimentação. Certifique-se de que o cabo não é muito longo. Não omita capacitor e resistor. Use resistor com valor adequado. Além disso, o programador não pode ser executado em Windows 64-bit. Se você tem 64-bit OS como o Windows 7 x64, este software programador não pode ser executado. Você vai precisar de um sistema operacional de 32 bits. A solução mais fácil é usar a tecnologia de virtualização, como o VirtualBox ou VMWare e instalar o Windows de 32 bits lá, e não se esqueça de configurar a máquina virtual para usar a porta LPT. Se você não tiver um Windows de 32 bits, você pode usar Linux / Ubuntu. Nos meus casos, o hardware que eu construí não conseguiu se comunicar com o chip. Então eu comecei mais e reconstruiu o hardware. As partes I utiliza são: - 

8x fios . O chip tem  8 pinos. - 
8x pinos (retire  do cabo LPT não utilizado) - 
1x 3V CR2302 bateria - 
1x capacitor 1000uF - 
8x resistor 100ohms (Utilize valor apropriado - depende de sua impedância LPT porta de saída e os parâmetros de fiação)
um cabo lpt 

um cabo usb lpt  para ligar no computador caso o seu nao tenha saida lpt o que e 
provável


1. Encontrar as peças

As primeiras coisas a fazer é encontrar o fio fino. Fio espesso irá criar um problema  para o chip, como os espaços entre os pinos do chip está muito próximo.
Use fio fino (direita), o fio de outros dois da esquerda é muito grosso. 

A próxima coisa a fazer é encontrar o capacitor e resistor. Você pode comprá-los ou  pegar de aparelhos eletrônicos.
Algumas peças que eu usei

Em seguida, uma fonte de alimentação. O chip eu vou flash é EON EN25F40 e tem uma potência de 2.7V a 3.6V. Então, eu retirei a bateria da CMOS da minha placa-mãe do computador e usá-lo.
Onde está a minha bateria da CMOS?

2. Fazendo  o hardware

Consulte diagrama do circuito aqui .



hardware O que eu criei foi tão simples. O cabo pode ser ligado a porta LPT  e ligado directamente, mas é claro que haverá uma resistência entre os mesmos. O resistor é soldada ao fio e tornar-se partes do próprio fio. Em seguida, um pino é soldada à resistência e, finalmente, a outra extremidade do fio é soldado ao chip.

Resistor de fio, e pino completamente.

O resto (capacitor e bateria ) pode ser visto  facilmente aqui

Um diagrama simples.

3. Testando o hardware

Quando o hardware estiver terminado, é hora de testar o hardware. Certifique-se de novo toda a conexão é boa. Em seguida, vá para o seu computador, abra o prompt de comando e cd para o diretório spipgm. Em seguida, digite 
spipgmw / i



Se o programador identifica o chip corretamente, então você pode avançar para a próxima etapa. Caso contrário, você precisa depurar o seu hardware e encontrar o problema.Verifique o hardware de volta, assegurar toda a conexão é boa, especialmente por parte de soldados ou móveis não como o fio para porta LPT. Verifique se a fonte de alimentação não é muito fraco e fornece energia suficiente. Minimizar o ruído de alimentação e etc .

vc pode conectar  hardware no chip com essa garras em veis usar um socket .e so ligar 8 garras nos fios 


vc pode comprar um hardware desse no mercado livre se quiser e também chip para gravar ou ebay 

veja esse vídeo demostrativo



 













depois te todo esse processo coloque rom original ou que vc sabe que funciona no sdcard e atualize seu tablet normalmente



credito  Emilio P.G. Ficara   e zip code eu adicionei algumas informações 

credito pelo video antonio3407

14 comentários:

  1. Amigo estou com um tablet da ibak 705 que apos tentar colocar o ubroid nele a tela fico tipo televisão velha passando e depois nao ligo mais apenas fica com a luz verde acesa, depois que eu ligo ele a primeira vez o botao de liga e delisga somente apaga e acende a luz. ai tenho que resetar pra tentar ligar como antes mesmo assim continua como citado acima. o que acha? meu email srnalim@gmail.com

    ResponderExcluir
  2. po troço enorme...prefiro comprar outro rsrs mais funciona este metodo?

    ResponderExcluir
    Respostas
    1. funciona sim mais esse tutorial e pra quando tablet nao da nem boot mais

      Excluir
  3. Quando meto um video a reproduzir da galeria o ecra fica preto e so oiço ..como e q eu faco para voltar ao normal?

    ResponderExcluir
  4. O que fazer quando não liga,só aparece essa mensagem?
    "Failed to recover system,system halted."

    ResponderExcluir
    Respostas
    1. rom que baixou pode estar danificada ou
      cartão danificado formate em fat32 se não funcionar substitua o cartao

      Excluir
  5. Olá tnho um table que na placa mãe tem escrito DX MID 10 IX 210 v1.1 e o mesmo não entra no sistema android (ao ligar aparece o robo depois a apalavra android e o robo pequeno no canto superior esquerdo e nada mais. tentei combinações de teclae o botaõ power apenas consegui isso: system recovery aguarde depois reinicia sozinho e volta pra situação inicial já explicada acima.
    aguardo retorno! Obrigado!

    ResponderExcluir
  6. meu amigo estou com um adventvega no qual entrei em modo de recuperação e exclui
    tudo agora assim que ligo ele mostra na tela (starting fastboot usb download protocol)
    o pc reconhece o driver, mas quando executo o exe de recuperação aparece a seguinte msg : "Nvflash started
    UnKnown device found"

    me da uma dica por favor, tem como recupera o boot dele??

    ResponderExcluir
  7. Boa tarde, amigo. Espero que esteja tudo bem contigo. Eu estou escrevendo porque preciso de ajuda, e pelo que li aqui até agora, acredito que você possa me ajudar. Comprei um tablet Orange TB7070 no último Natal para presentear minha filha de 7 anos. Passado um mês, minha filha não conseguia mais ligá-lo. Ele não dava o mínimo sinal de vida. Cheguei a pensar que ele havia sofrido queda ou havia queimado. Levei-o à loja, e lá o vendedor disse que ele estava "brickado" (foi a 1a vez que ouvi o termo). O vendedor levou para os bastidores da loja e alguns minutos depois trouxe-o de volta funcionando, e dizendo que isso era normal (?!?!). Pois bem, o tablet estava funcionando até ontem, quando brickou de novo. Simplesmente não liga. Não dá nenhum sinal. Minha pergunta é: há algo que eu possa fazer em casa pra resolver isso? Se você puder me ajudar, ficaria eternamente grato. Muito obrigado pela atenção. Aguardo retorno. Abraços.

    ResponderExcluir
  8. Dá para disponiblizar seu e-mail pff?
    o meu tablet é o mid 801, o problema é semelhante, penso que conseguiria resolver o problema mas o tablet não deixa o computador aceder ás memórias? tem alguma ideia?

    ResponderExcluir
  9. Caro amigo,
    Li seu post, e penso que voce poderia me ajudar, estou com dois (02) tablets Kolke PC 708, travado na tela de carregamento do andorid. "A luz fica passando pelo nome Android e daí não saí. Peguei um firmware do PC 7134 no site da Kolke que tem as mesmas caracteristicas de hardware do meu, com diferença apenas na versão do Android, é, que a minha era 2.3.4 e essa que peguei é 4.0, o resto é tudo a mesma coisa do meu, ela vem em imagem, já tentei instala-la através do sd card externo, passando para o cartão atraves do Phoenix Card; e LiveSuitPack_v1.07, já copiei o arquivo imagem direto pro cartão de memoria, e nada nem sinal do tablet. Voce com seu conhecimento de eletronica pode me ajudar, meu e-mail é: celio.ataide5@gmail.com , aguardo contato, abraços, Célio Ataide

    ResponderExcluir
  10. samsung P7300 ão consigo escrever pelo Odin ou pelo Kies após várias tentativas o mesmo não entra no android. Somente entra no modo download, mas já tentei de tudo e não aceita as imagens mal carrega a barra e já congela e depois de um tempo no odin da fail. Acredito que possa ser um erro de hardware já que fiz o mesmo procedimento em 5 aparelhos do mesmo modelo. e este aparelho tem sinais de que possa ter caído alguma vezes. existe um procedimento como esse que descreveu para este modelo? agradeço a ajuda.

    ResponderExcluir