Partitionierung(2.2)[]
- 4GB-NAND, Partitionslayout:
- baseparam (16M)
- logo (16M)
- fastplay (24M)
- cache (32M)
- misc (8M)
- kernel (32M)
- system (480M)
- userdata (480M)
- factorydata (32M)
- blackbox (8M)
- sdcard (2968M)
- 4MB-SPIFlash, Partitionslayout:
- fastboot (448K)
- bootargs (64K)
- recovery (3456K)
- boardconfig (64K)
- deviceinfo (64K)
Partitionierung(4.0)[]
- 4GB-NAND, Partitionslayout:
- baseparam (6M)
- logo (8M)
- fastplay (10M)
- cache (30M)
- misc (10M)
- kernel (10M)
- system (400M)
- userdata (234M)
- blackbox (4M)
- sdcard (1336M)
- 4MB-SPIFlash, Partitionslayout:
- fastboot (448K)
- bootargs (64K)
- recovery (3520K)
- deviceinfo (64K)
Bootloader[]
Der Bootloader sitzt in der Partition "fastboot". Die Namensgebung ist etwas unglücklich gewählt, da es sich hierbei nicht um Android's Fastboot handelt sondern um einen modifizierten "U-Boot"-Bootloader.
Über die serielle Schnittstelle(ttyAMA0) kann man Zugang zu diesem Bootloader bekommen indem man STRG*C drückt wenn die Meldung "Press Ctrl+C to stop autoboot" erscheint.
fastboot3.0-svn718 (Nov 17 2011 - 09:06:10) ETH FastBoot: V3.0 Machine ID: 8000 v0 Build Date: Nov 17 2011, 09:06:21 Serial Number: godbox DRAM: 256 MiB NAND: Special Nand id table Version 1.23 Nand ID: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF Nand(Auto): Block:2MB Page:8KB Chip:4GB*1 OOB:368B ECC:24bits/1K 4096 MiB Spi(cs1) ID: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF Spi(cs1): Block:64KB Chip:4MB Name:"W25Q32BV" In: serial Out: serial Err: serial init hi_gpio success.\0x09 get_fastPlay_logoMemInfo,891: para_hdr->logoMtdSize = 24576 g_gfxMode: WBC Mode JPG_Decode(): Line 738 : Hard dec Do not include fastplay data get_fastPlay_playMemInfo,970: Read play Param check err ChipType:2,ChipVersion:257 mac:00:11:22:33:44:55 Press Ctrl+C to stop autoboot fastboot#
Befehlsliste[]
Weitere Infos zu den Befehlen findet man hier: U-Boot Quick Reference
? - alias for 'help' base - print or set address offset bootm - boot application image from memory bootp - boot image via network using BOOTP/TFTP protocol cmp - memory compare cp - memory copy crc32 - checksum calculation getinfo - print hardware information go - start application at address 'addr' help - print command description/usage loadb - load binary file over serial line (kermit mode) loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mii - MII utility commands mm - memory modify (auto-incrementing address) mtest - simple RAM read/write test mw - memory write (fill) nand - NAND sub-system nboot - boot from NAND device nm - memory modify (constant address) ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables rarpboot- boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU saveenv - save environment variables to persistent storage setenv - set environment variables sf - SPI flash sub-system tftp - tftp\0x09- download or upload image via network using TFTP protocol
Recovery[]
Ins Recovery kommt man, wenn man den Powerbutton während dem Einschalten gedrückt hält oder das Recovery-Flag in die misc-Partition setzt und dann neustartet. Die Option zum Wiederherstellen der Werkseinstellungen in den Android-Einstellungen verwendet den 2.Weg.
Der 2.Weg ist allerdings gefährlich für den Fall, dass die Recovery-Partition beschädigt ist, da man den automatischen Start dann selbst über die serielle Schnittstelle nicht mehr unterbrechen kann.
Die Update-Pakete müssen signiert sein und wie man im unten stehenden Ablauf sieht startet die Box sofort neu wenn sie mit allem fertig ist. ADB-Zugriff ist ebenfalls nicht möglich.
Ablauf des Recovery-Boots[]
- Setzen des Bootloader-Flags auf "boot-recovery"
- Prüfen auf Recovery-Befehl in "/cache/recovery/command"
- Existiert die Datei und steht ein gültiger Befehl drin so wird dieser ausgeführt
- ansonsten werden die Dateien "update_system.zip" und "update_app.zip" installiert.
- Setzen des Bootloader-Flags auf ""
- Wenn die Datei "update_system.zip" installiert wurde wird das Flag stattdessen auf "boot-recovery" gesetzt und ein Befehl in die command-Datei geschrieben der die Datei "update_app.zip" installiert.
- Neustart