Como fazer backup do Android no tablet BC1003 (Wei Wide PRO 10″)

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:

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.

Yones default splash screen

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

José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.

View Comments

  • Caro José e amigos,

    Deram-me este lixo de tablet e se aqui não conseguir vou jogar fora! Fiz de tudo e mais alguma coisa mas é o seguinte:

    Inicia e fica o android de braços cruzados e mais nada! tentei o factory reset ( apertar uma combinação botões ) e horas passam e dedos machucados e nada!

    O windows não o detecta e tenho o live suite, phoenix suite e diversas roms mas ainda nada!

    qualquer ajuda é bem vinda

    Aguardando resposta

  • 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. :)

  • 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

      • 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.

        • 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.

      • 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

      • 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.

  • 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.

          • Mas não é nenhuma destas. A ROM tem que se chamar sun4i_crane_bc1003.rar. Tem várias na net.

          • 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é, 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é, 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é...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.

          • 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.

          • 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.

          • 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".

  • 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.

  • Olá José, tenho um dispositivo com A31 que estou tentando fazer umas "brincadeiras". Acaba que a NAND dele bichou e tive que remove-las. Conseguir fazer um boot pelo SD Card porém os arquivos de configuração originais ainda procuram pelas partições NAND. Sabe onde eu mudo no códico para procurar dentro do SD CARD? Eis um trecho das mensagens de erro:

    [ 1.641988] target frequency find is 1008000000, entry 34
    [ 1.647437] set cpu frequency to 1008MHz ok
    [ 1.684310] otg_wakelock_init: No OTG transceiver found
    [ 1.695866] init: /init.sun6i.rc: 171: ignored duplicate definition of service 'pvrsrvctl'
    [ 1.704467] init: /init.sun6i.rc: 376: user option requires a user id
    [ 6.017288] init: FB_OPEN failed!
    [ 16.013840] init: buffer : /dev/block/nande
    [ 16.018618] init: do_umount: /data
    [ 16.022534] init: do_umount error = Invalid argument
    [ 16.027632] init: start e2fsck listening...
    [ 21.020291] init: buffer : /dev/block/nandh
    [ 21.025038] init: do_umount: /cache
    [ 21.028858] init: do_umount error = Invalid argument
    [ 21.034096] init: start e2fsck listening...
    [ 21.034577] init: open device error :No such file or directory
    [ 31.017339] init: buffer : /dev/block/nandi
    [ 31.022116] init: do_umount: /databk
    [ 31.026018] init: do_umount error = Invalid argument[rfkill]: rfkill set power 1
    [ 31.057124] init: cannot find '/system/bin/6620_launcher', disabling '6620_launcher'
    [ 31.074024] init: cannot find '/system/bin/sh', disabling 'console'
    [ 31.080322] init: cannot find '/system/bin/servicemanager', disabling 'servicemanager'
    [ 31.088320] init: cannot find '/system/bin/vold', disabling 'vold'
    [ 31.094545] init: cannot find '/system/vendor/bin/pvrsrvctl', disabling 'pvrsrvctl'
    [ 31.102339] init: cannot find '/system/bin/netd', disabling 'netd'
    [ 31.108540] init: cannot find '/system/bin/debuggerd', disabling 'debuggerd'
    [ 31.115627] init: cannot find '/system/bin/surfaceflinger', disabling 'surfaceflinger'
    [ 31.123612] init: cannot find '/system/bin/app_process', disabling 'zygote'
    [ 31.130592] init: cannot find '/system/bin/drmserver', disabling 'drm'
    [ 31.137152] init: cannot find '/system/bin/mediaserver', disabling 'media'
    [ 31.144058] init: cannot find '/system/bin/dbus-daemon', disabling 'dbus'
    [ 31.150864] init: cannot find '/system/bin/installd', disabling 'installd'
    [ 31.157774] init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
    [ 31.166182] init: cannot find '/system/bin/keystore', disabling 'keystore'
    [ 31.173091] init: cannot find '/system/bin/u3gmonitor', disabling 'u3gmonitor'
    [ 31.180330] init: cannot find '/system/xbin/mux.d', disabling 'gsmmux'
    [ 31.186889] init: cannot find '/system/bin/rild', disabling 'ril-daemon-2g'
    [ 31.193885] init: cannot find '/system/bin/usb_scan', disabling 'ttyusb-scan'
    [ 31.201052] init: cannot find '/system/bin/mtk_agpsd', disabling 'agpsd'
    [ 31.207800] init: cannot find '/system/bin/btv_service', disabling 'rtv-daemon'
    [ 31.216105] init: cannot find '/system/bin/sh', disabling 'console'

    • Olá, Igor!
      Não sei dizer. Ainda não cheguei neste nível de hacking. Mas você deu boot num SD Android?
      Não deu para regravar as partições NAND?

      • Usei o programa da própria Allwinner chamado PhoenixCard que cria um SD a partir de uma imagem. Porém o kernel ao inicializar procura os arquivos em um local na NAND. Vou acabar encontrando, porém queria saber se você já sabia, iria me poupar um grande tempo. Não é bem no fstab, é outro lugar... terei que recompilar com a nova configuração para testar.

  • Boa tarde Jose, tenho um bc1003 e diz que a memoria interna esta cheia mas vi que existe outra memoria de 2,3 GB é esta vazia so não consigo pedir para armazenar nela tem como você me ajudar ou me auxiliar onde consigo um manual sobre o assunto.
    Obrigado

    • Olá, Ricardo!
      A memória interna a que o Android se refere é a partição /data, onde são instalados os programas, os arquivos otimizados dos programas (odex) e os dados. É um espaço invariavelmente subdimensionado em todos os Android que eu tive.
      Instale o aplicativo Link2SD e jogue os aplicativos para o cartão SD, juntamente com seus odex. Vai liberar um montão de espaço. Além disso, os aplicativos vão guardando dados e o espaço interno lota. Também instale um limpador de memória que apague os cache e arquivos temporários, e use-o constantemente.

  • Boa Noite José.
    Você poderia me indicar um CWM Recovery compatível
    com este tablet?
    Obrigado

  • Eae blz. Eu tenho um tablet da cce modelo tr101. e ela tbm não disponibilizou a rom dele, ele usa o chip allwinner a10 igual ao modelo desse tutorial, mas ele tem 10 partições nand.
    Minha dúvida é se esse tutorial continua valendo ou muda algo no processo de backup da rom?

    • Olá, Eduardo!
      Acho que continua valendo, talvez com adaptações para a partição a mais. Tente o comando "cat /proc/mounts" ou "cat /proc/kmsg" para descobrir o que é a partição extra.
      Dê o retorno sobre os resultados.

Share
Published by
José Antonio Meira da Rocha

Recent Posts

Sempre faça um fotão

Colheita de soja. Foto: Wenderson Araujo/Trilux Fotógrafos de mídias rurais já perderam a conta das…

1 year ago

A corrupção dos tolos

João Batista MezzomoAuditor fiscal O que está por trás de tudo o que está acontecendo…

4 years ago

Naomi who? Naomi Wu!

A.k.a. "SexyCyborg". A mulher do século 21. Naomi Wu testa seu iluminador de implantes na…

5 years ago

Raspagem de dados

A principal ferramenta do jornalista de dados é a planilha, tipo LibreOffice Calc, M.S. Excel…

5 years ago

Que estratégia político-terapêutica pára um governo deliroide?

Rita Almeida, 9 de março de 2019 Psicóloga Rita Almeida: não delirantes, mas deliroides. Não…

6 years ago

Sua tia não é fascista, ela está sendo manipulada

Rafael Azzi5 de outubro de 2018 Você se pergunta como um candidato com tão poucas…

6 years ago