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é, 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.
Olá, Igor!
Use o programa LiveSuit para flashar diretamente pelo cabo USB.
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
Olá, Will!
Aqui tem o relato de um CWM. Não testei, mas o cara é bom: http://www.imajeenyus.com/computer/20130301_android_tablet/android/recovery.html
Relate suas experiências.
Olá, Will!
Achei um CWM Recovery para o BC1003 e atualizei o artigo.
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.
tem como disponibilizar este link?
Coloquei a imagem em https://dl.dropboxusercontent.com/u/1555888/Android/ROM_tablet10i_yones_crane_bc1003_eng_4.0.4_IMM76D_20121217_test-keys.zip. Estão zipadas juntamente com o adb para Linux e Windows. Se você tiver acesso ao shell (só danificou o Android, não o kernel), está com sorte. É só copiar o system.img para /dev/block/nandd:
Olá, joão!
Segue novamente: https://dl.dropboxusercontent.com/u/1555888/Android/Allwinner_A10_datasheets/ROM_tablet10i_yones_crane_bc1003_eng_4.0.4_IMM76D_20121217_test-keys.zip