{"id":3726,"date":"2014-05-25T15:07:21","date_gmt":"2014-05-25T18:07:21","guid":{"rendered":"http:\/\/meiradarocha.jor.br\/news\/?p=3726"},"modified":"2015-03-10T22:12:07","modified_gmt":"2015-03-11T01:12:07","slug":"como-modificar-a-rom-de-tablet-allwinner-a10-wei-wide-pro-bc1003","status":"publish","type":"post","link":"https:\/\/meiradarocha.jor.br\/news\/2014\/05\/25\/como-modificar-a-rom-de-tablet-allwinner-a10-wei-wide-pro-bc1003\/","title":{"rendered":"Como modificar a ROM de tablet Allwinner A10 (Wei Wide Pro BC1003)"},"content":{"rendered":"<div id=\"attachment_3737\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/kocaso.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3737\" class=\"wp-image-3737 size-medium\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/kocaso-300x175.jpg\" alt=\"kocaso\" width=\"300\" height=\"175\" \/><\/a><p id=\"caption-attachment-3737\" class=\"wp-caption-text\">Usei a imagem ROM da Kocaso como base de minha ROM.<\/p><\/div>\n<p>O System-on-Chip (SoC) A10, da empresa chinesa Allwinner, \u00e9 muito barato e poderoso. Por isto, equipa centenas de <em>tablets<\/em>, <em>set top box<\/em>, leitores de <em>ebooks<\/em>. Neste artigo, explico como melhorei meu <em>tablet<\/em> Wei Wide Pro.<\/p>\n<p>Para manipular a ROM, usei os sistema operacionais Linux e Windows, em fun\u00e7\u00e3o de ferramentas que est\u00e3o dispon\u00edveis apenas para um ou outro sistema.<\/p>\n<p>Primeiro, fiz uma<a href=\"http:\/\/meiradarocha.jor.br\/news\/2013\/05\/02\/como-fazer-backup-do-sistema-android-do-tablet-bc1003-wei-wide-pro-10\/\"> c\u00f3pia da ROM original<\/a>, atrav\u00e9s do ADB, Android Debug Bridge. A seguir, obtive uma ROM de fabricante. Examinando as imagens de <em>splash<\/em> na parti\u00e7\u00e3o <em>boot<\/em>, achei o fabricante Kocaso, dos EUA, o \u00fanico que colocou \u00e0 disposi\u00e7\u00e3o dos usu\u00e1rios as ROM de um produto similar ao Wei Wide Pro. S\u00e3o 3 imagens <a href=\"http:\/\/www.kocaso.com\/firmware\/?model=M1050\">ROM para o modelo M1050S<\/a>, aparentemente diferindo apenas na capacidade da bateria.<\/p>\n<p>Extra\u00ed os diversos arquivos que comp\u00f5em a ROM com o programa <strong>unimg.exe<\/strong>, pelo Windows. Este programa est\u00e1 no pacote ImageSuite, que vem no <a href=\"http:\/\/android.sztupy.hu\/dl\/a10\/a10_flash_kitchen_v2.zip\">Allwinner A10 Flash Kitchen<\/a>. O <strong>unimg.exe<\/strong> gera uma pasta chamada &#8220;image.img.dump&#8221; com dezenas de arquivos de nomes estranhos. A lista \u00e9 esta, que est\u00e1 no arquivo filelist.txt, criado no processo:<\/p>\n<pre>COMMON\u00a0 _SYS_CONFIG000000.hdr\u00a0\u00a0 \u00a0COMMON\u00a0 _SYS_CONFIG000000\r\nCOMMON\u00a0 _SYS_CONFIG100000.hdr\u00a0\u00a0 \u00a0COMMON\u00a0 _SYS_CONFIG100000\r\nCOMMON\u00a0 _SPLIT_0000000000.hdr\u00a0\u00a0 \u00a0COMMON\u00a0 _SPLIT_0000000000\r\nRFSFAT16_BOOTLOADER_00000.hdr\u00a0\u00a0 \u00a0RFSFAT16_BOOTLOADER_00000\r\nRFSFAT16_ENVIROMENT_00000.hdr\u00a0\u00a0 \u00a0RFSFAT16_ENVIROMENT_00000\r\nRFSFAT16_BOOT_00000000000.hdr\u00a0\u00a0 \u00a0RFSFAT16_BOOT_00000000000\r\nRFSFAT16_SYSTEM_000000000.hdr\u00a0\u00a0 \u00a0RFSFAT16_SYSTEM_000000000\r\nRFSFAT16_RECOVERY_0000000.hdr\u00a0\u00a0 \u00a0RFSFAT16_RECOVERY_0000000\r\nRFSFAT16_DISKFS_000000000.hdr\u00a0\u00a0 \u00a0RFSFAT16_DISKFS_000000000\r\nRFSFAT16_VBOOTLOADER_0000.hdr\u00a0\u00a0 \u00a0RFSFAT16_VBOOTLOADER_0000\r\nRFSFAT16_VENVIROMENT_0000.hdr\u00a0\u00a0 \u00a0RFSFAT16_VENVIROMENT_0000\r\nRFSFAT16_VBOOT_0000000000.hdr\u00a0\u00a0 \u00a0RFSFAT16_VBOOT_0000000000\r\nRFSFAT16_VSYSTEMFS_000000.hdr\u00a0\u00a0 \u00a0RFSFAT16_VSYSTEMFS_000000\r\nRFSFAT16_VRECOVERYFS_0000.hdr\u00a0\u00a0 \u00a0RFSFAT16_VRECOVERYFS_0000\r\nBOOT\u00a0\u00a0\u00a0 _BOOT0_0000000000.hdr\u00a0\u00a0 \u00a0BOOT\u00a0\u00a0\u00a0 _BOOT0_0000000000\r\nBOOT\u00a0\u00a0\u00a0 _BOOT1_0000000000.hdr\u00a0\u00a0 \u00a0BOOT\u00a0\u00a0\u00a0 _BOOT1_0000000000\r\nPXTOOLS _xxxxxxxxxxxxxxxx.hdr\u00a0\u00a0 \u00a0PXTOOLS _xxxxxxxxxxxxxxxx\r\nUPFLYTLS_xxxxxxxxxxxxxxxx.hdr\u00a0\u00a0 \u00a0UPFLYTLS_xxxxxxxxxxxxxxxx\r\nFES\u00a0\u00a0\u00a0\u00a0 _FES_1-1000000000.hdr\u00a0\u00a0 \u00a0FES\u00a0\u00a0\u00a0\u00a0 _FES_1-1000000000\r\nFES\u00a0\u00a0\u00a0\u00a0 _FES_1-2000000000.hdr\u00a0\u00a0 \u00a0FES\u00a0\u00a0\u00a0\u00a0 _FES_1-2000000000\r\nFES\u00a0\u00a0\u00a0\u00a0 _FES_200000000000.hdr\u00a0\u00a0 \u00a0FES\u00a0\u00a0\u00a0\u00a0 _FES_200000000000\r\nFES\u00a0\u00a0\u00a0\u00a0 _FES_000000000000.hdr\u00a0\u00a0 \u00a0FES\u00a0\u00a0\u00a0\u00a0 _FES_000000000000\r\nFET\u00a0\u00a0\u00a0\u00a0 _HW_SCAN_00000000.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _HW_SCAN_00000000\r\nFET\u00a0\u00a0\u00a0\u00a0 _UPDATE_BOOT0_000.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _UPDATE_BOOT0_000\r\nFET\u00a0\u00a0\u00a0\u00a0 _UPDATE_BOOT1_000.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _UPDATE_BOOT1_000\r\nFET\u00a0\u00a0\u00a0\u00a0 _FET_RESTORE_0000.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _FET_RESTORE_0000\r\nFET\u00a0\u00a0\u00a0\u00a0 _MAGIC_CRC_START_.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _MAGIC_CRC_START_\r\nFET\u00a0\u00a0\u00a0\u00a0 _MAGIC_CRC_EN_000.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _MAGIC_CRC_EN_000\r\nFET\u00a0\u00a0\u00a0\u00a0 _MAGIC_DE_START_0.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _MAGIC_DE_START_0\r\nFET\u00a0\u00a0\u00a0\u00a0 _MAGIC_DE_END_000.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _MAGIC_DE_END_000\r\nFED\u00a0\u00a0\u00a0\u00a0 _FED_NAND_0000000.hdr\u00a0\u00a0 \u00a0FED\u00a0\u00a0\u00a0\u00a0 _FED_NAND_0000000\r\n12345678_1234567890cardtl.hdr\u00a0\u00a0 \u00a012345678_1234567890cardtl\r\n12345678_1234567890script.hdr\u00a0\u00a0 \u00a012345678_1234567890script\r\n12345678_1234567890boot_0.hdr\u00a0\u00a0 \u00a012345678_1234567890boot_0\r\n12345678_1234567890boot_1.hdr\u00a0\u00a0 \u00a012345678_1234567890boot_1\r\n12345678_1234567890___mbr.hdr\u00a0\u00a0 \u00a012345678_1234567890___mbr\r\n12345678_1234567890dlinfo.hdr\u00a0\u00a0 \u00a012345678_1234567890dlinfo\r\nFET\u00a0\u00a0\u00a0\u00a0 _CARD_UPDATE_BOT0.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _CARD_UPDATE_BOT0\r\nFET\u00a0\u00a0\u00a0\u00a0 _CARD_UPDATE_BOT1.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _CARD_UPDATE_BOT1\r\nFED\u00a0\u00a0\u00a0\u00a0 _CARD_FED_0000000.hdr\u00a0\u00a0 \u00a0FED\u00a0\u00a0\u00a0\u00a0 _CARD_FED_0000000\r\nFET\u00a0\u00a0\u00a0\u00a0 _CARD_HW_SCAN_000.hdr\u00a0\u00a0 \u00a0FET\u00a0\u00a0\u00a0\u00a0 _CARD_HW_SCAN_000<\/pre>\n<p>Alguns destes arquivos s\u00e3o programas para Windows, usados pelo LiveSuit. Outros s\u00e3o pequenos programas ARM carregados na mem\u00f3ria dos dispositivos enquanto eles s\u00e3o <em>flashados<\/em>. Para cada arquivo extra\u00eddo, h\u00e1 um arquivo HDR correspondente, de fun\u00e7\u00e3o desconhecida. O que vai nos interessar s\u00e3o os arquivos que come\u00e7am com &#8220;RFSFAT16_&#8221;, pois s\u00e3o as c\u00f3pias (imagens) da mem\u00f3ria ROM. Tamb\u00e9m s\u00e3o interessantes os arquivos &#8220;COMMON\u00a0 _SYS_CONFIG000000&#8221; e &#8220;COMMON\u00a0 _SYS_CONFIG100000&#8221;, que cont\u00e9m configura\u00e7\u00f5es para o <em>bootloader<\/em> em formato INI do Windows. Estes arquivos t\u00eam algum texto em chin\u00eas, que traduzi carregando-os no Firefox, mudando\u00a0 a p\u00e1gina de c\u00f3digo para chin\u00eas e\u00a0 e usando o <em>plugin<\/em> Google Translator.<\/p>\n<h3>RFSFAT16_BOOTLOADER_00000<\/h3>\n<p>Este \u00e9 o <em>bootloader<\/em>, ou seja, o carregador do <em>boot<\/em>. Est\u00e1 em formato de sistema de arquivos VFAT. Portanto, pode ser montado facilmente no Linux. Atrav\u00e9s dos comandos abaixo, pode-se montar esta imagem com r\/w, a fim de se editar os arquivos:<\/p>\n<pre>mkdir bootloader\r\nsudo mount -o loop,uid=1000,gid=1000 -t vfat RFSFAT16_BOOTLOADER_00000 .\/bootloader<\/pre>\n<p>O id de usu\u00e1rio \u00e9 descoberto com o comando &#8220;id&#8221;.<\/p>\n<p>Este <em>firmware<\/em> cont\u00e9m o diret\u00f3rio \/linux, onde est\u00e3o as imagens da tela de <em>splash<\/em> em formato BMP; o diret\u00f3rio \/os_show, com as imagens da bateria carregando; e o diret\u00f3rio \/sprite, com um arquivo sprite.ini, cuja fun\u00e7\u00e3o desconhe\u00e7o. Na raiz, est\u00e3o duas fontes tipogr\u00e1ficas do sistema, alguns execut\u00e1veis e arquivos de configura\u00e7\u00e3o Linux e o arquivo <strong>script.bin<\/strong> (e uma c\u00f3pia de seguran\u00e7a script0.bin), que cont\u00e9m as configura\u00e7\u00f5es de hardware do dispositivo, configuradas no <em>boot<\/em>.<\/p>\n<p>Quem n\u00e3o pode ou n\u00e3o quer usar Linux, pode modificar esta parti\u00e7\u00e3o diretamente no <em>tablet<\/em> entrando no <strong>adb shell<\/strong> e usando os comandos:<\/p>\n<pre># cria um diret\u00f3rio para montar a parti\u00e7\u00e3o\r\nmkdir \/sdcard\/nanda\r\n# monta a parti\u00e7\u00e3o\r\nmount -t vfat \/dev\/block\/nanda \/sdcard\/nanda\r\n# Entrano diret\u00f3rio com as imagens splash e muda a default\r\ncd \/sdcard\/nanda\/linux\r\ncp linux.bmp linux.old.bmp\r\ncp kocaso.bmp linux.bmp<\/pre>\n<h3>RFSFAT16_ENVIROMENT_00000<\/h3>\n<p>Cont\u00e9m alguns par\u00e2metros do sistema U-Boot Linux, sistema de Linux embarcado usado pelo dispositivo. Nada para mudar, aqui. No\u00a0 in\u00edcio deste arquivo h\u00e1:<\/p>\n<pre>bootdelay=0\r\nbootcmd=run setargs boot_normal\r\nconsole=ttyS0,115200\r\nnand_root=\/dev\/nandc\r\nmmc_root=\/dev\/mmcblk0p4\r\ninit=\/init\r\nloglevel=8\r\nsetargs=setenv bootargs console=${console} root=${nand_root} init=${init} loglevel=${loglevel}\r\nboot_normal=nand read 40007800 boot;boota 40007800\r\nboot_recovery=nand read 40007800 recovery;boota 40007800\r\nboot_fastboot=fastboot\r\nrecovery_key_value_max=0x13\r\nrecovery_key_value_min=0x10\r\nfastboot_key_value_max=0x8\r\nfastboot_key_value_min=0x<\/pre>\n<p>Mais para o meio do arquivo, tem o que parece ser um execut\u00e1vel Linux em formato ELF e estes par\u00e2metros:<\/p>\n<pre>bootdelay=0\r\nbootcmd=run setargs boot_normal\r\nconsole=ttyS0,115200\r\nnand_root=\/dev\/nandd\r\nmmc_root=\/dev\/mmcblk0p7\r\ninit=\/init\r\nloglevel=8\r\nsetargs=setenv bootargs console=${console} root=${mmc_root} init=${init} loglevel=${loglevel}\r\nboot_normal=mmc read 40007800 22000 10000;boota 40007800\r\nboot_recovery=mmc read 40007800 recovery;boota 40007800\r\nboot_fastboot=fastboot<\/pre>\n<h3>RFSFAT16_BOOT_00000000000<\/h3>\n<p>Boot do sistema Linux. Pode-se mudar a segunda tela <em>splash<\/em>, que normalmente tem o androidezinho de bra\u00e7os cruzados, chupado de um site Android.<\/p>\n<h3>RFSFAT16_SYSTEM_000000000<\/h3>\n<p>Sistema Android, aplicativos. Est\u00e1 no formato <strong>ext4 sparse<\/strong>, que deve ser convertido para ext4 antes de ser montada. Pode-se adicionar, atualizar ou eliminar aplicativos Android. A forma mais f\u00e1cil de fazer isto \u00e9 instalar os aplicativos no Android e pass\u00e1-los para o diret\u00f3rio \/system atrav\u00e9s de utilit\u00e1rios como o Link2SD, e depois fazer uma imagem ROM da parti\u00e7\u00e3o \/system.<\/p>\n<h3>RFSFAT16_RECOVERY_0000000<\/h3>\n<p>Parti\u00e7\u00e3o com um sistema Linux m\u00ednimo, para recupera\u00e7\u00e3o. Eu troquei esta imagem,que tem um bug grave, pelo <strong>ClockWorkMode Recovery<\/strong>, muito melhor que o original.<\/p>\n<h3>RFSFAT16_DISKFS_000000000<\/h3>\n<p>Armazenamento interno. N\u00e3o \u00e9 uma imagem, na verdade. \u00c9 s\u00f3 um <em>placeholder<\/em>, com 8 bytes, do disco interno <strong>\/sdcard<\/strong>, que \u00e9 criado no primeiro <em>boot<\/em> do sistema. Seu tamanho parece ser tudo o que sobrar, depois da cria\u00e7\u00e3o das outras parti\u00e7\u00f5es.<\/p>\n<h3>COMMON\u00a0 _SYS_CONFIG000000<\/h3>\n<p>Este arquivo texto define os par\u00e2metros do particionamento da mem\u00f3ria NAND (ROM interna), para uso do programa de grava\u00e7\u00e3o de ROM da Allwinner, o LiveSuit. Particularmente importantes s\u00e3o estas se\u00e7\u00f5es:<\/p>\n<pre>[part_num]\r\nnum\u00a0\u00a0\u00a0\u00a0 = 8\r\n\r\n;------------------------------&gt;nanda, known as bootfs before, includes boot.axf u-boot.bin etc...\r\n[partition0]\r\n\u00a0\u00a0\u00a0 class_name\u00a0 = DISK\r\n\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = bootloader\r\n\u00a0\u00a0\u00a0 size_hi\u00a0\u00a0\u00a0\u00a0 = 0\r\n;\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 16384\r\n\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 65536\r\n\u00a0\u00a0\u00a0 user_type\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 ro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 0\r\n\r\n;------------------------------&gt;nandb, enviroment for u-boot\r\n[partition1]\r\n\u00a0\u00a0\u00a0 class_name\u00a0 = DISK\r\n\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = env\r\n\u00a0\u00a0\u00a0 size_hi\u00a0\u00a0\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 16384\r\n\u00a0\u00a0\u00a0 user_type\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 ro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 0\r\n\r\n;------------------------------&gt;nandc, kernel and ramdisk\r\n[partition2]\r\n\u00a0\u00a0\u00a0 class_name\u00a0 = DISK\r\n\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = boot\r\n\u00a0\u00a0\u00a0 size_hi\u00a0\u00a0\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 32768\r\n\u00a0\u00a0\u00a0 user_type\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 ro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 0\r\n\r\n;------------------------------&gt;nandd, android real rootfs\r\n[partition3]\r\n\u00a0\u00a0\u00a0 class_name\u00a0 = DISK\r\n\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = system\r\n\u00a0\u00a0\u00a0 size_hi\u00a0\u00a0\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 524288\r\n;\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 327680\r\n\u00a0\u00a0\u00a0 user_type\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 ro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 0\r\n\r\n;------------------------------&gt;nande, user data\r\n[partition4]\r\n\u00a0\u00a0\u00a0 class_name\u00a0 = DISK\r\n\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = data\r\n\u00a0\u00a0\u00a0 size_hi\u00a0\u00a0\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 1048576\r\n;\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 384000\r\n\u00a0\u00a0\u00a0 user_type\u00a0\u00a0 = 1\r\n\u00a0\u00a0\u00a0 ro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 0\r\n\r\n;------------------------------&gt;nandf, misc\r\n[partition5]\r\n\u00a0\u00a0\u00a0 class_name\u00a0 = DISK\r\n\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = misc\r\n\u00a0\u00a0\u00a0 size_hi\u00a0\u00a0\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 16384\r\n\u00a0\u00a0\u00a0 user_type\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 ro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 0\r\n\r\n;------------------------------&gt;nandg, for recovery\r\n[partition6]\r\n\u00a0\u00a0\u00a0 class_name\u00a0 = DISK\r\n\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = recovery\r\n\u00a0\u00a0\u00a0 size_hi\u00a0\u00a0\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 32768\r\n\u00a0\u00a0\u00a0 user_type\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 ro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 0\r\n\r\n;------------------------------&gt;nandh, android app cache\r\n[partition7]\r\n\u00a0\u00a0\u00a0 class_name\u00a0 = DISK\r\n\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = cache\r\n\u00a0\u00a0\u00a0 size_hi\u00a0\u00a0\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 size_lo\u00a0\u00a0\u00a0\u00a0 = 327680\r\n\u00a0\u00a0\u00a0 user_type\u00a0\u00a0 = 0\r\n\u00a0\u00a0\u00a0 ro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 0<\/pre>\n<p>Neste arquivo, pode-se fazer a a mais importante modifica\u00e7\u00e3o no BC1003: aumentar a mem\u00f3ria da parti\u00e7\u00e3o <strong>\/data<\/strong>. Nesta parti\u00e7\u00e3o, o Android guarda informa\u00e7\u00f5es de todos os programas. Em geral, \u00e9 a primeira a ficar lotada, impedindo que novos programas sejam instalados, mesmo que haja espa\u00e7o em disco. No exemplo acima, a parti\u00e7\u00e3o <strong>\/data<\/strong> \u00e9 3 vezes maior que o padr\u00e3o. O espa\u00e7o extra foi retirado da parti\u00e7\u00e3o \/sdcard. Com esta modifica\u00e7\u00e3o, pode-se instalar mais aplicativos sem problemas de falta de espa\u00e7o interno.<\/p>\n<h3>COMMON\u00a0 _SYS_CONFIG100000<\/h3>\n<p>Arquivo texto que vai formar o bin\u00e1rio <strong>script.bin<\/strong>, colocado na parti\u00e7\u00e3o <em>bootloader<\/em>. O LiveSuit gera o bin\u00e1rio automaticamente ou pode-se\u00a0 compilar este bin\u00e1rio com o programa <strong>fexc<\/strong>, execut\u00e1vel Linux do pacote Allwinner Kitchen Master. Pode-se mudar algumas atribui\u00e7\u00f5es de pinos i\/o, por exemplo, para direcionar a UART para o cart\u00e3o microSD. Coisas para hackers avan\u00e7ados. O usu\u00e1rio comum n\u00e3o precisa nem deve mexer nisto.<\/p>\n<h3>Reconstruindo<\/h3>\n<p>Depois de modificar os arquivos desejados, reconstru\u00ed a imagem de instala\u00e7\u00e3o do A10 com os comandos Windows:<\/p>\n<pre>del \/s image.img.dump\\RFSFAT16_VBOOTLOADER_0000\r\ndel \/s image.img.dump\\RFSFAT16_VBOOT_0000000000\r\ndel \/s image.img.dump\\RFSFAT16_VSYSTEMFS_000000\r\ndel \/s image.img.dump\\RFSFAT16_VRECOVERYFS_0000\r\nFileAddSum.exe \"image.img.dump\/RFSFAT16_BOOTLOADER_00000\" \"image.img.dump\\RFSFAT16_VBOOTLOADER_0000\"\r\nFileAddSum.exe \"image.img.dump\/RFSFAT16_BOOT_00000000000\" \"image.img.dump\\RFSFAT16_VBOOT_0000000000\"\r\nFileAddSum.exe \"image.img.dump\/RFSFAT16_SYSTEM_000000000\" \"image.img.dump\\RFSFAT16_VSYSTEMFS_000000\"\r\nFileAddSum.exe \"image.img.dump\/RFSFAT16_RECOVERY_0000000\" \"image.img.dump\\RFSFAT16_VRECOVERYFS_0000\"\r\nunimg -e image.img<\/pre>\n<p><strong>FileAddSum.exe<\/strong>, do pacote A10 Flash Kitchen, recria alguns arquivos de checksum. <strong>unimg.exe<\/strong> com o par\u00e2metro <strong>-e<\/strong> recria a imagem de instala\u00e7\u00e3o do Allwinner A10, que pode, ent\u00e3o, ser gravada com o LiveSuite.<\/p>\n<h3>LiveSuit<\/h3>\n<p>O programa que a Allwinner usa para gravar suas ROMs \u00e9 o LiveSuit. Ele \u00e9 encontrado em muitos lugares, como no pacote <strong>Allwinner A10 Flash Kitchen<\/strong>. Existe uma <a href=\"http:\/\/docs.cubieboard.org\/downloads\">vers\u00e3o do Allwinner LiveSuit para Linux<\/a>, mas ainda n\u00e3o testei.<\/p>\n<p>Para instalar o <strong>LiveSuit<\/strong> no Windows, abri uma pasta na \u00e1rea de trabalho do Windows, copiei o instalador para ela e executei-o. Ele descomprimiu todos os arquivos no local. O Flash Kitchen j\u00e1 tem o LiveSuit inclu\u00eddo.<\/p>\n<p>Para <em>flashar<\/em> o <em>tablet<\/em>, no Windows, coloco o dispositivo no modo <strong>FES<\/strong>, isto \u00e9, preparado para ser <em>flashado<\/em>:<\/p>\n<ol>\n<li>Desconecto o cabo USB, se estiver conectado.<\/li>\n<li>Seguro o bot\u00e3o Power por mais de 10 segundos para me certificar que o tablet foi mesmo desligado.<\/li>\n<li>Solto o Power e mantenho apertado qualquer bot\u00e3o que n\u00e3o o Power. O bot\u00e3o da face, por exemplo (Home).<\/li>\n<li>Conecto o cabo USB sem largar o bot\u00e3o apertado.<\/li>\n<li>Aperto rapidamente o bot\u00e3o Power <strong>por 10 vezes<\/strong>.<\/li>\n<li>Solto o bot\u00e3o que mantive apertado.<\/li>\n<\/ol>\n<p>Isto vai instalar o <em>driver<\/em> especial de <em>flashing<\/em> do Allwinner. Se o driver n\u00e3o for instalado automaticamente, use o modo padr\u00e3o de Windows para instalar drives. Procure o <em>driver<\/em> no computador, na pasta do <strong>LiveSuit<\/strong>.<\/p>\n<p>Uma vez que o <em>tablet<\/em> esteja no modo <strong>FES<\/strong>, abro o programa <strong>LiveSuit<\/strong> e sigo o assistente para instala\u00e7\u00e3o. O LiveSuit apresentar\u00e1 as seguintes telas:<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.21.20.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3748\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.21.20-300x166.png\" alt=\"Captura de tela 2014-05-20 01.21.20\" width=\"300\" height=\"166\" \/><\/a><\/p>\n<p>Ele pede para escolher o modo de atualiza\u00e7\u00e3o. Escolho o recomendado, &#8220;mandatory&#8221;.<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.21.28.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3749\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.21.28-300x166.png\" alt=\"Captura de tela 2014-05-20 01.21.28\" width=\"300\" height=\"166\" \/><\/a><\/p>\n<p>Pede para desconetar todos os dispositivos.<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.21.38.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3750\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.21.38-300x166.png\" alt=\"Captura de tela 2014-05-20 01.21.38\" width=\"300\" height=\"166\" \/><\/a><\/p>\n<p>Pede para escolher o arquivo de imagem ROM.<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.21.52.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3751\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.21.52-300x166.png\" alt=\"Captura de tela 2014-05-20 01.21.52\" width=\"300\" height=\"166\" \/><\/a><\/p>\n<p>Avisa para recolocar o dispositivos em modo FES.<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.28.35.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3753\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.28.35-300x166.png\" alt=\"Captura de tela 2014-05-20 01.28.35\" width=\"300\" height=\"166\" \/><\/a><\/p>\n<p>Finalmente, pergunta se \u00e9 para formatar ou se instala o sistema sem formatar. Na primeira instala\u00e7\u00e3o, se houve modifica\u00e7\u00e3o do tamanho das parti\u00e7\u00f5es ou se quero ressetar para as configura\u00e7\u00f5es de f\u00e1brica, escolho reformatar. Se n\u00e3o escolher reformatar, os programas e configura\u00e7\u00f5es de usu\u00e1rio ser\u00e3o preservados.<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-25-20.10.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3755\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-25-20.10.10-300x169.png\" alt=\"Captura de tela 2014-05-25 20.10.10\" width=\"300\" height=\"169\" \/><\/a><\/p>\n<p>Feito isto, o LiveSuit passa a gravar a ROM. O processo leva de 2 a 5 minutos.<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.22.46.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3752\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2014\/05\/Captura-de-tela-2014-05-20-01.22.46-300x94.png\" alt=\"Captura de tela 2014-05-20 01.22.46\" width=\"300\" height=\"94\" \/><\/a><\/p>\n<p>A primeira\u00a0 instala\u00e7\u00e3o da imagem deve ser feita formatando-se toda a mem\u00f3ria NAND. Instala\u00e7\u00f5es subsequentes podem ser feitas sem formata\u00e7\u00e3o. Neste caso, os dados e aplicativos do usu\u00e1rios n\u00e3o ser\u00e3o apagados.<\/p>\n<p>Aqui est\u00e1 a <a href=\"https:\/\/dl.dropboxusercontent.com\/u\/1555888\/android\/crane_bc1003_wei_wide_pro_ROM.7z\">imagem ROM do Wei Wide Pro com SoC BC1003, mod Meira<\/a> para gravar com o LiveSuit. A parti\u00e7\u00e3o <strong>\/data<\/strong> foi aumentada para 1 giga, para que eu possa instalar mais aplicativos, e a parti\u00e7\u00e3o Recovery tem o <strong>ClockWorkMod Recovery<\/strong>.<\/p>\n<h3>Refer\u00eancias<\/h3>\n<ul>\n<li><strong>Android tablet info<\/strong>. P\u00e1gina de jovem doutor escoc\u00eas. Melhor fonte de informa\u00e7\u00f5es t\u00e9cnicas e tutoriais sobre esta classe de <em>tablets<\/em>. Tamb\u00e9m tem utilit\u00e1rio de convers\u00e3o de imagens bitmapa (fotos) para formatos usados pelo Android. &lt;<a href=\"http:\/\/www.imajeenyus.com\/computer\/20130301_android_tablet\/android\/index.html\">http:\/\/www.imajeenyus.com\/computer\/20130301_android_tablet\/android\/index.html<\/a>&gt;.<\/li>\n<li><strong>Android\/partitions<\/strong>. &lt;<a href=\"http:\/\/linux-sunxi.org\/Android\/partitions\">http:\/\/linux-sunxi.org\/Android\/partitions<\/a>&gt;.<\/li>\n<li><strong>How make livesuite.img with dumped rom<\/strong>. &lt;<a href=\"http:\/\/www.freaktab.com\/showthread.php?912-how-make-livesuite-img-with-dumped-rom\">http:\/\/www.freaktab.com\/showthread.php?912-how-make-livesuite-img-with-dumped-rom<\/a>&gt;.<\/li>\n<li><strong>Kocaso<\/strong>. Imagens do firmware para recupera\u00e7\u00e3o do sistema (A imagem no arquivo M1050B.exe funcionou bem no Wei Wide Pro. S\u00f3 houve problemas na c\u00e2mera e no monitoramento da bateria). &lt;<a href=\"http:\/\/www.kocaso.com\/firmware\/?model=M1050\">http:\/\/www.kocaso.com\/firmware\/?model=M1050<\/a>&gt;<\/li>\n<li><strong>Build AOSP Android 2.3.7 for Allwinner A10 tablets<\/strong>. &lt;http:\/\/forum.xda-developers.com\/showthread.php?t=1490886&gt;.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Veja como &#8220;cozinhar&#8221; uma ROM para o SoC Alwinner A10<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[69,23],"tags":[],"class_list":["post-3726","post","type-post","status-publish","format-standard","hentry","category-android","category-linux"],"_links":{"self":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/3726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/comments?post=3726"}],"version-history":[{"count":0,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/3726\/revisions"}],"wp:attachment":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/media?parent=3726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/categories?post=3726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/tags?post=3726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}