O tablet BC1003 usa chip Allwinner A10, um processador ARM extremamente hackeável. No entanto, brincar com isto pode ser perigoso pelo risco de “brickar” (transformar num tijolo de alta tecnologia) o dispositivo. Mas o Allwinner é praticamente à prova de tijolamento, desde que se tenha as ROMs originais e se possa queimá-las de volta no tablet. Como o fabricante Yones não disponibiliza a ROM em seu site, eu mesmo precisei gerar estes arquivos.
Fiz um mapa mental com o esquema da imagem da ROM do Allwinner 10 para melhorar o entendimento:
O backup do sistema Android no tablet BC1003 é feito pela shell do dispositivo, que eu acesso com a linha de comando na shell do Linux:
adb shell
O adb é parte do Android Development Kit. Para descobrir quais são as partições do Android, já na shell do tablet, uso o seguinte comando para listar o diretório de dispositivos de bloco /dev/block:
ls /dev/block
Com isto, verifico que não há dispositivos com “mtd” no nome. Assim, o tablet não usa o subsistema mtd para gerenciar memória flash. Em vez disto, há partições com “nand”. Isto indica que a memória interna de 4 GB usa o esquema de partições eMMC e que as partições são:
- nanda
- nandb
- nandc
- nandd
- nande
- nandf
- nandg
- nandh
- nandi
É um sistema Allwinner de 9 partições NAND. Este número é importante se eu escolher instalar alguma ROM Cyanogen, por exemplo, que possui versões para Allwinner de 9, 10 e 11 partições NAND.
Para descobrir o que há em cada partição, consulto o subsistema Linux /proc, que tem informações sobre o dispositivo. Uso o comando “mount” ou:
cat /proc/mounts > /mnt/sdcard/mounts.txt
que gera um arquivo texto listando todas as partições montadas:
rootfs / rootfs ro,relatime 0 0 tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0 devpts /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0 tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0 /dev/block/nandd /system ext4 ro,relatime,user_xattr,barrier=0,data=ordered 0 0 /dev/block/nande /data ext4 rw,nosuid,nodev,noatime,user_xattr,barrier=0,journal_checksum,data=ordered,noauto_da_alloc 0 0 /dev/block/nandh /cache ext4 rw,nosuid,nodev,noatime,user_xattr,barrier=0,journal_checksum,data=ordered,noauto_da_alloc 0 0 /dev/block/vold/179:2 /data/sdext2 vfat rw,relatime,uid=1000,gid=1000,fmask=0133,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0 /dev/block/vold/93:64 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0 /dev/block/vold/93:64 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0 tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0 /dev/block/dm-0 /mnt/asec/br.gov.caixa.webcaixa-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0 /dev/block/dm-1 /mnt/asec/com.antutu.CpuMasterFree-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0 /dev/block/dm-2 /mnt/asec/org.freeandroidtools.root_checker-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0 /dev/block/dm-3 /mnt/asec/com.apedroid.hwkeyboardhelperdemo-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0
Também posso olhar as mensagens do kernel com o comando:
cat /proc/kmsg
No início das mensagens, aos 2 segundos de boot, aparecem as linhas com os nomes das partições:
[ 2.219177] The 0 disk name = bootloader, class name = DISK, disk size = -419187676 [ 2.219191] The 1 disk name = env, class name = DISK, disk size = -419187612 [ 2.219203] The 2 disk name = boot, class name = DISK, disk size = -419187548 [ 2.219214] The 3 disk name = system, class name = DISK, disk size = -419187484 [ 2.219225] The 4 disk name = data, class name = DISK, disk size = -419187420 [ 2.219235] The 5 disk name = misc, class name = DISK, disk size = -419187356 [ 2.219246] The 6 disk name = recovery, class name = DISK, disk size = -419187292 [ 2.219257] The 7 disk name = cache, class name = DISK, disk size = -419187228 [ 2.219268] The 8 disk name = UDISK, class name = DISK, disk size = -419187164 [ 2.219279] The 8 disk size = 4917248
Mas o tamanho das partições é incompreensível. Para obter esta informação, uso o comando:
cat /proc/partitions > /mnt/sdcard/partitions.txt
que gera um texto com o tamanho real das partições (omiti algumas que não interessam agora):
major minor #blocks name 93 0 81920 nanda 93 8 16384 nandb 93 16 32768 nandc 93 24 524288 nandd 93 32 384000 nande 93 40 16384 nandf 93 48 32768 nandg 93 56 327680 nandh 93 64 2458624 nandi
A estrutura de partições do BC1003 é a seguinte:
Nº | Nome do dispositivo | Tamanho | Rótulo da partição | Sistema de arquivo | Comentários |
0 | nanda | 80MB | bootloader | vfat | Tabela de partições nos primeiros 16 MB e arquivos para assistir o bootloader nos outros 64 MB. Imagens do status da bateria, u-boot.bin, script.bin e .ini ficam aqui. |
1 | nandb | 16MB | env | raw | Ambiente para assistir o u-boot. |
2 | nandc | 32MB | boot | raw | Tem o kernel e seu ramdisk no formato ANDROID mkbootimg. |
3 | nandd | 504MB | system | ext4 | Partição /system do Android. |
4 | nande | 375MB | data | ext4 | Partição /data. |
5 | nandf | 16MiB | misc | raw | Partição usada para passar dados entre vários estágios da sequência de boot (por exemplo, boot no modo recovery, fastboot etc). |
6 | nandg | 32MiB | recovery | raw | Partição recovery com o kernel. |
7 | nandh | 320MiB | cache | ext4 | Partição montada como /cache. |
8 | nandi | 2,401GB | UBOOT | vfat | Partição montada como /mnt/sdcard. |
As partições importantes são bootloader, env, boot, system e recovery. As outras são recriadas quando do primeiro boot e configuração.
Bootloader e environment
Dentro do shell do tablet, uso o comando dd para copiar as partições para o cartão MicroSD:
dd if=/dev/block/nanda of=/sdcard/bootloader.img dd if=/dev/block/nandb of=/sdcard/env.img
O comando dd é mais informativo, mas também posso usar o comando cat:
cat /dev/block/nanda > /sdcard/bootloader.img
Depois de copiadas as partições para arquivos img no cartão MicroSD, pode-se conectar o cabo USB e copiá-los para o PC desktop, para manipulação. Também posso fazer isto do shell Linux ou Windows com o Android Debug Bridge (adb). Abaixo, os comandos estão juntos numa mesma linha para facilitar. A linha com o prompt “$” é o comando, as outras linhas são os resultados. A linha de comandos gera o backup, copia para o PC e apaga a imagem do cartão SD para liberar espaço. Primeiro, o bootloader:
$ adb shell dd if=/dev/block/nanda of=/sdcard/bootloader.img && adb pull /sdcard/bootloader.img && adb shell rm /sdcard/bootloader.img 163840+0 records in 163840+0 records out 83886080 bytes transferred in 19.563 secs (4287996 bytes/sec)
e, depois, o ambiente de boot:
adb shell dd if=/dev/block/nandb of=/sdcard/env.img && adb pull /sdcard/env.img && adb shell rm /sdcard/env.img 32768+0 records in 32768+0records out 16777216 bytes transferred in 1.507 secs (11132857 bytes/sec)
Bootloader
O bootloader é uma imagem no sistema de arquivo vfat e pode ser montada no Ubuntu com os comandos:
sudo mkdir /media/cranebootloader sudo mount -t vfat -o loop bootloader.img /media/cranebootloader
Com isto, posso entrar no diretório /media/cranebootloader, investigar e extrair ou modificar arquivos desta imagem.
Na pasta /linux, por exemplo, estão muitas imagens em formato BMP que aparecem no boot (splash screen), como a imagem default de equipamento OEM, que é umas das mais feias que já vi. Para trocar por outra, se renomeia para “linux.bmp”. Várias destas imagens têm nomes de fabricantes — inclusive da Coréia do Norte–, o que me ajudou a achar as ROMs originais de um fabricante.
Também pode-se trocar a splash screen a partir do próprio Android shell. Entra-se no shell com o comando “adb shell” e usa-se os comandos abaixo:
mkdir /sdcard/nanda mount -t vfat /dev/block/nanda /sdcard/nanda cd /sdcard/nanda/linux cp linux.bmp linux.old.bmp cp seuarquivo.bmp linux.bmp
Env
O env é o ambiente para alguns parâmetros do boot. É um arquivo binário com strings terminadas em zero. Aberto por um editor hexadecimal, ele revela os seguintes parâmetros:
bootdelay=0 bootcmd=run setargs boot_normal console=ttyS0,115200 nand_root=/dev/nandc mmc_root=/dev/mmcblk0p4 init=/init loglevel=8 setargs=setenv bootargs console=${console} root=${nand_root} init=${init} loglevel=${loglevel} boot_normal=nand read 40007800 boot;boota 40007800 boot_recovery=nand read 40007800 recovery;boota 40007800 boot_fastboot=fastboot recovery_key_value_max=0x13 recovery_key_value_min=0x10 fastboot_key_value_max=0x8 fastboot_key_value_min=0x2
Boot e recovery
As partições boot e recovery são copiadas com os comandos:
$ adb shell dd if=/dev/block/nandc of=/sdcard/boot.img && adb pull /sdcard/boot.img && adb shell rm /sdcard/boot.img 65536+0 records in 65536+0 records out 33554432 bytes transferred in 10.160 secs (3302601 bytes/sec) 5026 KB/s (33554432 bytes in 6.518s) $ adb shell dd if=/dev/block/nandg of=/sdcard/recovery.img && adb pull /sdcard/recovery.img && adb shell rm /sdcard/recovery.img 65536+0 records in 65536+0 records out 33554432 bytes transferred in 6.065 secs (5532470 bytes/sec) 4850 KB/s (33554432 bytes in 6.755s
Elas estão num formato especial do Android, composto por um cabeçalho de 2kb, o kernel Linux e um ou dois ramdisks com arquivos básicos necessários para o boot. Para se trabalhar nestes arquivos — geralmente se modifica o ramdisk — deve-se separar os arquivos com utilitários desenvolvidos por hackers.
Estes arquivos têm a seguinte estrutura:
Área | Nome | Tamanho em bytes | Formato | Comentários |
Header | bootMagic | 8 | ASCII | Identificador do tipo de estrutura do arquivo (“assinatura”). Contém “ANDROID!” |
kernelSize | 4 | long int | Tamanho do kernel em bytes | |
kernelLoadAddr | 4 | long int | Endereço de carga do kernel na memória RAM do dispositivo | |
ram1Size | 4 | long int | Tamanho do ramdisk 1 em bytes | |
ram1LoadAddr | 4 | long int | Endereço da RAM onde carregar o ramdisk 1 | |
ram2Size | 4 | long int | Tamanho do ramdisk 2 em bytes | |
ram2LoadAddr | 4 | long int | Endereço da RAM onde carregar o ramdisk 2 | |
tagsAddr | 4 | long int | Endereço de tags do kernel | |
pageSize | 4 | long int | Tamanho das “páginas” do flash | |
unused1 | 4 | long int | Não usado | |
unused2 | 4 | long int | Não usado | |
bootName | 16 | ASCII | Nome do system-on-chip (placa do hardware) | |
cmdLine | 512 | ASCII | Linha de comando do kernel. Será usada mais tarde na recriação da imagem | |
id | 6 | ASCII | Identificador (?) | |
Kernel | kernel | kernelSize | binário | Kernel Linux |
RAM disk 1 | ramdisk1 | ram1Size | binário | Inicia com os bytes hexa 1F 8B (assinatura de ramdisk). Começa na página acima do kernel. Para calcular o tamanho do kernel em páginas, a fórmula é: kernelSizeInPages = (kernelSize + pageSize – 1) / pageSize. Para calcular o início do ramdisk, a fórmula é: ram1Addr = (1 + kernelSizeInPages) * pageSize |
RAM disk 2 | ramdisk2 | ram2Size | binário | Raramente existe |
O kernel e o ramdisk são extraído pelos scripts em Perl extract-kernel.pl e extract-ramdisk.pl, criados pelo hacker Lox:
extract-kernel.pl boot.img extract-ramdisk.pl boot.img
O segundo script extrai e recria a estrutura de pastas do ramdisk, que está armazenada no formato cpio.gz.
Este trabalho também pode ser feito com um editor de arquivos binários como Bless Hex Editor.
Por exemplo, dentro da pasta raiz existe o arquivo initlogo.rle, que é a segunda imagem que aparece depois que a gente liga o BC1003. É o androidezinho de braços cruzados copiado do site Android Central. Esta imagem está num formato raw (cru, sem cabeçalhos ou metainformações) que pode ser aberto pelo Irfanview, “File > Open as… > Raw file”, especificando-se tamanho 1024 x 600, 32 bits, ordem de cor ABGR, interleaved. Mas as cores vêm trocadas. Na verdade, ele é ARGB (Canal Alfa, Red, Green, Blue). Para ficar com as cores corretas, deve-se ir ao menu “Image > Swap colors > RGB -> BGR”. Descobri isto na tentativa e erro. O Irfanview não grava ARGB e não conheço programa para gravar neste formato, mas não deve ser difícil escrever um script — em Python, por exemplo — que converta o formato. Afinal, são apenas bytes crus.
System
A partição system contém todo o sistema Android. O backup, que é bem mais demorado que os anteriores — leva mais de 5 minutos — , é feito com o comando:
$ adb shell dd if=/dev/block/nandd of=/sdcard/system.img && adb pull /sdcard/system.img && adb shell rm /sdcard/system.img 1048576+0 records in 1048576+0 records out 536870912 bytes transferred in 149.046 secs (3602048 bytes/sec) 4738 KB/s (536870912 bytes in 110.635s)
A partição system está no formato ext4 sparse e deve ser convertida pelo programa simg2img (Linux) para ext4 normal, antes de ser montada pelo comando:
simg2img system.img system2.img sudo mkdir /media/cranesystem sudo mount -t ext4 -o loop system2.img /media/cranesystem
Depois de montadas, pode-se copiar a estrutura de arquivos para outro lugar e editá-los a gosto.
Recriando imagens
Feitas as mudanças, pode-se recriar as images do BC1003. O boot.img se recria assim, com os programas Linux mkboot:
# mkbootfs boot.img-ramdisk | gzip > ramdisk-boot # mkbooting --kernel boot.img-kernel --ramdisk ramdisk-boot --base 0x40000000 --cmdline 'console=ttyS0,115200 rw init=/init loglevel=6' -o new-boot.img
Através do shell, copia-se de volta as imagens para a partição correspondente, desde que o boot esteja intacto. Por exemplo, a imagem do sistema Android:
dd if=/sdcard/system.img of=/dev/block/nandd
O processo de criação de uma imagem completa da ROM allwinner, a partir de alguma ROM baixada de fabricantes, pode ser vista no site Allwinner/Alterning and Creating PhoenixSuit images. Com o programa Livesuite, da própria Allwinner, pode-se gravar todo o sistema no tablet, caso ele estrague.
Imagens prontas
Umas das marcas que comercializa este tablet é a Kocaso, dos EUA. É a única empresa em que eu achei as ROM do BC1003. A imagem que funcionou para meu BC1003 foi a primeira das três, arquivo M1050B.exe, de onde se extrai a imagem M1050_2.img.
Uma grata surpresa: elas têm uma partição /data com a triplo do tamanho desta da Wei: 1.048.576 bytes, em vez de 384.000 bytes. A partição /data é onde todos os programar guardam todo o tipo de dados e, em geral, é a primeira a ficar lotada, impedindo que se instalem novos programas, mesmo que a partição /system e o disco interno tenham espaço. No entanto, esta memória extra foi retirada do disco interno da Kocaso, em /mnt/sdcard ou /sdcard, que tem 1.810.432 bytes em vez de 2.458.624 bytes. Mas na prática, isto não é muito grave. A gente usa o aplicativo Link2SD e pode passar todos os programas novos para o cartão SD e deixar a memória de disco interna mais livre para música, filmes e fotos. Esta imagem da Kocaso não vem com o app GPS Test que vem no Wei Wide PRO mas basta baixá-lo e passá-lo para o diretório de sistema usando uma opção do Link2SD.
Este é o esquema de partições do Kocaso:
root@android:/ # cat /proc/partitions cat /proc/partitions major minor #blocks name 93 0 65536 nanda [bootloader] 93 8 16384 nandb 93 16 32768 nandc 93 24 524288 nandd [/system] 93 32 1048576 nande [/data] 93 40 16384 nandf 93 48 32768 nandg [recovery] 93 56 327680 nandh 93 64 1810432 nandi [/sdcard]
Referências
- Android tablet info. Página de jovem doutor escocês. Melhor fonte de informações técnicas e tutoriais sobre esta classe de tablets. Também tem utilitário de conversão de imagens bitmapa (fotos) para formatos usados pelo Android. <http://www.imajeenyus.com/computer/20130301_android_tablet/android/index.html>.
- Android/partitions. <http://linux-sunxi.org/Android/partitions>.
- How to edit init.rc in Android. <http://droidcore.blogspot.com.br/2012/12/how-to-edit-initrc-in-android.html>.
- McGHEE. Rob. Creating an Android update.zip package. <http://www.robmcghee.com/android/creating-an-android-update-zip-package/>.
- HOWTO: Unpack, Edit, and Re-Pack Boot Images. <http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images>.
- Generating key. <http://android-dls.com/wiki/index.php?title=Generating_Keys>.
- How to create Android update zip package. <http://www.londatiga.net/it/how-to-create-android-update-zip-package/>.
- Android code. <https://android.googlesource.com/platform/bootable/recovery/+/android-4.0.4_r1/updater/install.c>.
- How create update.zip. <http://modmymobile.com/forums/402-general-motorola-android/561090-how-create-update-zip.html>.
- How make livesuite.img with dumped rom. <http://www.freaktab.com/showthread.php?912-how-make-livesuite-img-with-dumped-rom>.
- Allwinner/Alterning and Creating PhoenixSuit images. <http://dorkfiles.com/allwinneralterning-and-creating-phoenixsuit-images/>
- Allwinner info. GitHub com muitas informações técnica, listagens assembly da ROM de chips Allwinner etc. <https://github.com/hno/Allwinner-Info>.
- Kocaso. Imagens do firmware para recuperação do sistema (A imagem no arquivo M1050B.exe funcionou perfeitamente no Wei Wide PRO). <http://www.kocaso.com/firmware/?model=M1050>
Olá José. Obrigado por sua resposta. Infelizmente não consegui usando os comandos que você me passou. O resultado foi esse :
adb shell
adb server is out of date. killing…
* daemon started successfully *
$ mount -o rw -t vfat /dev/block/mtdblock1 /mnt/temp
mount -o rw -t vfat /dev/block/mtdblock1 /mnt/temp
mount: No such file or directory
$
Não tenho muita experiência com o adb shell mas percebi pelo que você me disse que os arquivos correspondentes ao BMP e a animação bootanimation.zip se encontram em boot.img que ficam em na partição vfat, certo ?
Listei novamente as partições e não encontrei a vfat:
$ ls /dev/block
ls /dev/block
loop0
loop1
loop2
loop3
loop4
loop5
loop6
loop7
mmcblk0
mmcblk0p1
mtdblock0
mtdblock1
mtdblock2
mtdblock3
mtdblock4
mtdblock5
platform
ram0
ram1
ram10
ram11
ram12
ram13
ram14
ram15
ram2
ram3
ram4
ram5
ram6
ram7
ram8
ram9
ubiblk0
vold
$
Existe solução ? Muito obrigado pela atenção. 🙂
Tem que criar o diretório. Se já existir o /mnt:
cd mnt
mkdir temp
Não tenho o tablet aqui no trabalho, para testar, mas acho que já existe o /mnt.
Raul, este site tem um utilitário para trabalhar com o Allwinner A10, o Uberizer. É coisa para hackers, mas dá pra fazer tudo (backup, atualizações, mudanças de telas…): http://www.TechKnow.me
Você tem certeza de que não estava com outro dispositivo ligado na USB? Um celular, talvez?
Boa noite José! tudo bem? sim, tenho certeza e ainda fiz o comando (adb devices) e ele listou apenas o tablet. Esses tablets baseados em allwinner 10 são difíceis de editar a ROM. Se possível nos ajude com um tutorial de customização da rom baseado em algum modelo allwinner 10. Abraço!
Aqui tem um tutorial bastante completo: http://dorkfiles.com/allwinneralterning-and-creating-phoenixsuit-images/
Boa noite José, Obrigado mais uma vez. Outro dia tentei seguir o procedimento deste link que você me passou mas os arquivos disponibilizados foram detectados como virus. Seriam apenas falsos positivos ? Minha segunda pergunta é se o arquivo initlogo.rle seria o arquivo que contém a imagem do splashscreen quer quero mudar ?
Mais uma vez muito obrigado.
Qual link? Deve ser falso positivo. Em todo o caso, cuidado.
initlogo.rle deve ser a imagem do robozinho, a segunda que aparece.
Ola! boa tarde josé. O link dos outros arquivos não lembro mas tentarei nos proximos dias com esse que você me passou ! muito obrigado novamente e direi se deu certo aqui! valeu!
Olá, Raul!
Receita completa para cozinhar a ROM do A10 aqui: http://meiradarocha.jor.br/news/2014/05/25/como-modificar-a-rom-de-tablet-allwinner-a10-wei-wide-pro-bc1003/
Boa noite José, Muito esclarecedora sua postagem. Há um tempo atrás consegui a ROM original de um tablet pois o mesmo vinha com a ROM modificada de outra empresa e foi um sucesso a troca via ADB que realizei. No entanto estou passando pelo problema que você citou nesta postagem sobre o LOGO e tenho exatamente a mesma imagem ”tablet pc OEM Powered by…” e gostaria de saber como muda-la. Como é possível acessar os arquivos de system.img ( que armazenei em uma pasta no meu pc no momento ) para alteração ? tentei todos os programas possíveis de fóruns estrangeiros e não consegui visualizar sequer o interior de system.img. O arquivo BMP está dentro de system.img ? As partições que visualizei segundo seu tutorial mostraram que o tablet possui partições mtb ao que lembro. É possível fazer a troca desta imagem terrível sem usar a plataforma Linux, mas sim pelo Windows via comando shell no adb ? Eu agradeceria muito se pudesse me ajudar.
Olá, Raul!
Você monta r/w a partição de boot e pode mexer nela, pelo ADB shell, mesmo. Não lembro exatamente como fiz, mas acho que foi assim:
cd mnt
mkdir temp
mount -o rw -t vfat /dev/block/mtdblock1 /mnt/temp
Boa tarde José. Ainda não tentei apenas pelos comandos pois ainda estou me familiarizando com os adb shell. Consegui extrair os arquivos com esse método ( http://forum.xda-developers.com/showthread.php?t=1771347 ).
O único problema é que o boot.img, além do recovery.img veio com 0kb . Pergunto: preciso acessar as partições e alterar as permissões das mesmas para que sejam copiadas as roms com o tamanho normal ? Mais uma vez muito obrigado pela atenção!
O método que eu descrevo no artigo (dd etc) é garantido.
O meu tablet veio com root de fábrica, não foi preciso alterar permissões.
Obrigado José. Vou tentar este programa que você me falou em ultimo caso. De qualquer forma estou procurando via adb shell o boot.img mas não estou encontrando. Aonde exatamente estaria o boot.img ? estaria dentro das partições mtdblock ? percebi que as partições estão com restrições. Estou mudando para chmod 777. Espero encontrar os arquivos para alteração. Mesmo assim é fascinante os comandos linux.
O boot.img é gerado pelo comando:
adb shell dd if=/dev/block/nandc of=/sdcard/boot.img
Olá josé. Encontrei um excelente material aqui (http://forum.xda-developers.com/showthread.php?t=443994) e até já consegui extrair o boot.img. Ele está na mtd2 e vou me aprofundar mais. Qualquer avanço deixo um recaco. obrigado mesmo e já instalei o programa que vc me comunicou. Abraço.
Cuidado, Raul. O BC1003 NÂO USA o sistema de partições MTD, descrito neste material. Muita coisa deve ser útil, mas você deve ter isto em mente.
Oi José. Sim, eu percebi que o sistema de partições é diferente do modelo que estou aqui. Mas de todos os fóruns possíveis que encontrei, o seu site foi o único que relatou sobre o problema que quero resolver, e que inclusive você postou até o bmp do logo do tablet. A principio tentei editar tanto os arquivos system.img, recovery.img e boot.img para alterar o logo e a animação. Eu tenho o firmware aqui comigo deste tablet , o problema é que não consigo editar o arquivo no qual eu mude a imagem para ter a rom customizável para sempre que eu quiser instalar, ela instale com a logo diferente do ”tablet pc”.
O que seria mais aconselhável ao seu ponto de vista? Eu devo encontrar uma forma para editar o firmware que está a minha disposição nos arquivos recovery-rd.img, ramdisk.img e o system.img para customizar ou é melhor fazer as alterações via adb acessando o tablet para depois salvar o firmware no pc e depois instala-lo para testar se deu tudo certo ?
Descobri os comandos para trocar o papel de parede do boot. Entre no shell Android pelo comando “adb shell” e digite os comandos em negrito:
root@android:/ # mount -o rw,remount rootfs /
mount -o rw,remount rootfs /
root@android:/ # mkdir boot
mkdir boot
root@android:/ # mount -t vfat /dev/block/nanda /boot
mount -t vfat /dev/block/nanda /boot
root@android:/ # cd boot/linux
cd boot/linux
root@android:/boot/linux # ls
ls
aplei.bmp
atlas.bmp
bluebiit.bmp
demo_car.bmp
fly_touch.bmp
fusion5.bmp
gaasa.bmp
kocaso.bmp
linsay_10.bmp
linux.bmp
linux.ini
manta.bmp
mitraveler_10.bmp
north_korea.bmp
plx.bmp
ricoh.bmp
south-holdings.bmp
sunmaid.bmp
superpocket.bmp
u-boot.bin
vidait.bmp
yones_10.bmp
yones_bc133.bmp
yonestop_oem.bmp
root@android:/boot/linux #
Agora, renomeie o arquivo linux.bmp e copie o arquivo de imagem que você quer para linux.bmp. Dê o reboot para ver o resultado.
Bom dia José. Obrigado pela incansável tentativa de ajuda e solução do mistério desta rom. Tentei com os comando que você me passou mas não surtiu efeito pois parece que esse tablet ter um procedimento diferente. Colo abaixo minha tentativa e dei um comando ls -a para mostrar se tinha algum arquivo oculto dentro da pasta boot mas nem a pasta linux se encontrava. :
$ su
su
# mount -o rw,remount rootfs
mount -o rw,remount rootfs
# mkdir boot
mkdir boot
# mount -t vfat /dev/block/nanda/boot
# # mount -t vfat /dev/block/nanda /boot
# mount -t vfat /dev/block/nanda /boot
# # cd boot/linux
# cd boot/linux
/boot/linux: not found
(Abaixo listei o diretorio):
# ls
ls
acct
boot
cache
charger
config
d
data
default.prop
dev
etc
init
init.goldfish.rc
init.rc
init.trace.rc
init.usb.rc
mnt
proc
recovery.fstab
res
root
sbin
sdcard
sdcard1
sys
system
udisk
ueventd.goldfish.rc
ueventd.rc
vendor
(por fim entrei na pasta boot criada pelo seu comando):
# cd /boot/
cd /boot/
( E abaixo listei para ver se tinha algum arquivo oculto também neste diretório):
# ls
ls
# ls -a
ls -a
#
……………………………
Li bastante sobre estes tablets baseados no allwinner A10 ontem e cheguei a uma conclusão que essas imagens são gravadas em IMAGEWTY. Dai então vemos o por que é difícil ( http://www.techknow.me/forum/index.php?topic=1679.0 ) eles falam em dois programas que podem fazer o unpack dos arquivos .img mas envolve mais outra camada de procedimentos que é necessário também mais tempo.
Observei também que os arquivos da room relacionadas ao boot são divididos em 3 arquivos antes de fazer a instalação no tablet :
uboot0.8
uboot0.isi
uboot1.isi
Então. Acredito que se eu quisesse fazer a alteração, eu precisaria abrir um destes 3 arquivos acima pelo método postado no link. O mais interessante é que o o programa disponibilizado no link chamado de ‘unimg’ foi feito por um funcionário que trabalhava para Allwinner e disse que ele mesmo fez o programa antes que a empresa liberasse o código. Li inclusive algumas postagens dele na internet explicando sobre o programa que também alguns estão com falso positivo para detecção de virus. Baixei uns que tinham mas encontrei o arquivo alterado e fiz uns testes mas ainda tenho que seguir passo a passo como eles falam.
Tentei usar o cygwin com o kitchen mas ele não reconhece o boot.img também.
De qualquer forma José, disponibilizo para você caso tenha interesse a nível de estudo visualizar essa nova forma de encriptação. Os três primeiros arquivos correspondem ao boot antes de ser instalado via cartão sd no tablet:
http://www.mediafire.com/download/4h4zuk7m77n5ztr/uboot0.8
http://www.mediafire.com/download/lkg318bc6tx1ctt/uboot1.isi
http://www.mediafire.com/download/sm63x1ma221smvm/uboot0.isi
E por ultimo o arquivo boot.img retirado do tablet.
http://www.mediafire.com/download/cy8uhwu0fa6xgum/boot.img
De qualquer forma sempre estarei visitando seu blog pois tem um excelente material de pesquisa e conhecimento. Parabéns. obrigado e até breve.
Valeu!
Aqui também tem ótimo material para hacking do Allwinner: http://www.imajeenyus.com/computer/20130301_android_tablet/android/livesuit_unpacking_repacking.html.
Agora, estou em busca de outro sistema operacional pra colocar em cartão microSD. Diz que dá para dar boot por ele.
Este site parece bem útil: http://www.freaktab.com/showthread.php?912-how-make-livesuite-img-with-dumped-rom
Oi Jose!
Infelizmente a garantia é de 90 dias né e ela terminou. O site tablet.com me mandou procurar assistência mais próxima, mas como saber quem e qual endereço se eles não forneceram? Agradeço demais sua resposta e espero, quem sabe, conseguir alguém para arrumá-lo. Abraços, angélica bajorinas, cananeia, são paulo.
Ah, esqueci de dizer que os aplicativos ficam fechando após alguns segundos. Angélica Bajorinas.
Também pode ser mal contato na bateria… Ele apresenta erros quando ligado na tomada?
José, quando eu coloco pra carregar na tomada ele tá ligando direto e tenho que resetar para parar e deixo carregando até que a luz fique verdinha. Depois é a mesma coisa, fica travando naquelas telas do robo, da palavra android e não está abrindo. abraços, Angélica.
Olá, Angélica1
Pois é, normalmente a gente tenta ressetar o Android para as configurações de fábrica, para resolver grande parte dos problemas. Mas este modelo só permite ressetar se a gente entrar no Android, o que é impossível se ele tranca. Deve ser simples, mas eu ainda não descobri como resolver este problema.
José, obrigada por sua atenção viu! Continuo tentando quem sabe um dia ele abre…kkk… os caras do site tablet.com tiveram a cara de pau de me dizer que a assistência deles é só para produtos em garantia… engraçado né, foram só alguns dias após o período de 90 dias… sabe, agora de tanto tentar ele tá travando na primeira página, aquele screen branquinho com o OEM.
Bem, obrigada mais uma vez, e quando tiver uma nova ideia me manda e-mail, quem sabe né! beijos, angel.
Pois é, a “assistência técnica” destas loja limita-se a trocar o equipamento.
Teoricamente, este tablet é à prova de “bricking”. Bastaria a gente colocar um microSD com sistema operacional para recuperar qualquer defeito. O problema é que não há sistema operacionais disponíveis para gravar num microSD. Vou tentar as ROMs de outra marca. Se der certo, posto aqui.
Obrigada José… bjs. angel
Oi José, tudo bem, achei o link abaixo com 20 rooms. Será que alguma vai servir? O cara do vídeo do yuotube, Teseo Garcia, fala também de um programa Phoenix Card. Mas achei meio complicado! Bem, você vê aí se dá pra ter uma ideia de qual vai me ajudar. abraços, angel.
https://www.mediafire.com/folder/fma2jz3rzkgw6/roms
Baixa a que estiver disponível, que for mais rápido. Desempacotei e dei uma olhada nesta imagem, acho que é correta. Para gravá-la, use o programa para Windows LiveSuit (http://chinagadgetsreviews.blogspot.com.br/2013/09/download-livesuit-pack-v111.html). Conecte o cabo USB na entrada perto do fone de ouvido e rode o programa. É meio em inglês, meio chinês, acho. Mas é intuitivo.
Tem que instalar os drivers no Windows. Depois que conectar o tablet, segurar o botão de Vol+ e apertar de um em um segundo o botão de ligar, umas 10 vezes, abra o gerenciador de dispositivos em “Iniciar > Painel de controle > Hardware e som > Gerenciador de dispositivos” (o meu Windows é de Portugal, os nomes podem variar). Procure o dispositivo desconhecido. Abra com o botão da direita, escolha “Atualizar controlador”, “Procurar software no computador”, procure a pasta onde vc extraiu o LiveSuit (de preferência no ambiente de trabalho). Vai instalar um “USB Device(VID_1f3a_PID_ef38”.
Nesta página do LiveSuit tem as instruções, também.
Coloquei a imagem do BC1003 Crane no meu Dropbox público: https://dl.dropboxusercontent.com/u/1555888/Android/sun4i_crane_bc1003.rar
Putz, fui testar os passos e acabei reinstalando o sistema no meu próprio tablet! Bom, pelo menos, sei que funciona. Depois de alguns minutos instalando a imagem, ele deu boot e disse qualquer coisa sobre não poder recuperar dados encriptados, e que devia dar um reset de fábrica. Dei o reset e quando abriu de novo, pediu para calibrar a tela. Feito isto, parece estar tudo OK…
Formatou até o cartão microSD. Fique sem WiFi. Não funcionou. A chave ao lado do alto-falante, que ligaria e desligaria o WiFi, agora troca o modo da entrada USB (OTG para dispositivo de armazenamento). Lembro que isto é definido numa atribuição de pinagem em um arquivo de configuração do boot.
A sorte que é um dos poucos tablets que tem Ethernet por cabo, posso acessar a internet assim.
Angélica, atualizei o artigo e coloquei o link da imagem da Kocaso, que funcionou perfeitamente e é melhor que a original. Instale com o LiveSuit em Windows.
Mas não é nenhuma destas. A ROM tem que se chamar sun4i_crane_bc1003.rar. Tem várias na net.
José…kkkk, agora fiquei meio confusa. Vamos por passos…Não entendi bem o que é pra eu considerar como correto para fazer…
Bem, tô baixando a imagem, já tô com live suit instalado no pc. Qual é o próximo passo que devo seguir? bjs.
José, fui olhar no gerenciador de dispositivos e já aparece o nome da usb que vc fala acima….”VID…ef38″, mesmo sem eu ter conectado o tablet via usb. Vi que junto com o live suit veio uns drivers, estão numa pasta do live suit, chamada “android usb drivers”.
O que faço agora? Tenho que mandar atualizar o drive com o tablet conectado no pc? Nessa hora é que tenho que apertar por 10 vezes o botão do volume+?
Posso extrair os arquivos da rom que vc cita acima sem conectar o tablet ou com ele conectado? Depois disso eu tenho que abrir o Live suit com o tablet conectado e colocar o nome do drive primeiro e depois da imagem? Tem que ficar segurando o botão do volume +, ou é só para o driver? Fiquei receosa e ainda não fiz. Vou esperar sua resposta pois não sei se depois dá alguma problema se eu fizer algo errado… tem paciência comigo tá… nunca tive um tablet antes…. bjs.
José, conectei o tablet, segurei e pressionei os botões que vc indicou. No gerenciador de dispositivos apareceu a USB que vc citou (agora sem o ponto de exclamação amarelo). Clicando em propriedades, diz que o dispositivo esta funcionando normalmente (continuo com o tablet conectado). Preciso mandar atualizar?
Ele me dá a opção de instalar o software automaticamente e a de instalar a partir de um local específico. Se for pelo local específico, tenho que indicar qual? Na pasta do Live Suit não aparece o nome “VID….ef8”. Aguardo resposta, bjs.
José, obrigada por tudo viu! Você foi fantástico… agora com a Rom BC1003 meu tablet está funcionando perfeitamente, até o Wifi.
Deus abençoe você grandemente tá.
Que ótima notícia, Angélica!
Agora, guarde esta imagem da ROM e o programa de gravação. Você pode precisar de novo.
José, tenho um desse maldito tablet. Agora ele fica travando direto na tela inicial de carregamento “android”. Já dei reset, mas não abre certo, continua travando e às vezes, quando abre, uma hora tá faltando as configurações, outra o teclado tá só no japonês… Dei configuração original e o problema persiste, pois fica travando. O que faço? agradeço se vc me puder responder com certa urgência. Aguardo resposta, angélica bajorinas. (angelbajorinas@hotmail.com).
Olá, Angélica!
Pelo jeito, se você já reverteu para as configurações de fábrica, pode ser problema de hardware, tipo memória RAM ou flash com defeito. Não há muito o que fazer, se ele não estiver mais na garantia. Se estiver, mande à assistência técnica da loja.