Co zrobić aby TV Philips wgrał do NVM plik OPT.BIN (lub w inne obszary, np: env).
Temat dotyczy wielu typów, nie trzeba programować pamięci zewnętrzenie czy otwierac TV.
Pomijam temat programatorów Philipsa i ich dostępu do obszarów pamięci oraz nazw plików znanych wąskiemu gronu.
Dostąp do poleceń UBOOT równiez pozwala na manipulację:
mt5890 #
addboot - addboot - append environment variables 'bootargs'
base - print or set address offset
bdinfo - print Board Info structure
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
chpart - change active partition
cmp - memory compare
cp - memory copy
crc32 - checksum calculation
delboot - delboot - del environment variables 'bootargs'
dhcp - boot image via network using DHCP/TFTP protocol
eboot - eboot - boot from EMMC device
env - environment handling commands
erase - erase FLASH memory
ext4load- load binary file from a Ext4 filesystem
ext4ls - list files in a directory (default /)
ext4write- create a file in the root directory
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
flinfo - print FLASH memory information
fsinfo - print information about filesystems
fsload - load binary file from a filesystem image
go - start application at address 'addr'
help - print command description/usage
iminfo - print header information for application image
load - load - load configuration from an environment variable
loop - infinite loop on address range
ls - list files in a directory (default /)
md - memory display
mm - memory modify (auto-incrementing address)
mmc - MMC sub system
mmcinfo - display MMC info
mtdparts- define flash/nand partitions
mtest - simple RAM read/write test
mw - memory write (fill)
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
reloadenv- reloadenv - reload default environment variables
reset - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv - set environment variables
tftpboot- boot image via network using TFTP protocol
upgrade - upgrade - Upgrade Linux kernel/rootfs using USB
usb - usb - USB sub-system
usbboot - usbboot - boot from USB device
Wracając do plików na pendrive, podczas wgrywania NVM.BIN część pamięci EEPROM jest zablokowana podczas tej operacji.
Zresztą tak samo dla AQ.BIN, PQ.BIN (te wgrywane są do partycji).
============================================================
USB_ROOT_PATH : /mnt/usb_0
SYSTEM_EEPROM_SIZE : 16384
OPTION_SYSTEM_EEPROM_SIZE : 32
OPTION_ADDRESS : 0x 3a0
PROTECT AREA : Y
EEPROM UPGRADE NVM.BIN : O ===> NVM.BIN
EEPROM UPGRADE OPT.BIN : X
EEPROM UPGRADE NVM.EED : X
USB_UPGRADE_FILE_PREFIX_FILENAME:QM16XE_U
============================================================
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <== O
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d <== O
protect/0x0210/0x4/0xf ==>4b a8 05 00 1c 5a 6b d1 ef f1 6e 1c 5a 6b d1 ef <== X
protect/0x0220/0x0/0x1 ==>f1 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <== X
Odpowiedź O = overwrite
Jak nazwa wskazuje (OPT) plik ten jest szeroko używany w innych systemach, może podczas wgrywania ma odbezpieczony dostęp do obszarów PROTECT przez co uzyskamy dostęp do odwrócenia obrazu, załączenia pełnego UART itp.
Temat dotyczy wielu typów, nie trzeba programować pamięci zewnętrzenie czy otwierac TV.
Pomijam temat programatorów Philipsa i ich dostępu do obszarów pamięci oraz nazw plików znanych wąskiemu gronu.
Dostąp do poleceń UBOOT równiez pozwala na manipulację:
mt5890 #
addboot - addboot - append environment variables 'bootargs'
base - print or set address offset
bdinfo - print Board Info structure
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
chpart - change active partition
cmp - memory compare
cp - memory copy
crc32 - checksum calculation
delboot - delboot - del environment variables 'bootargs'
dhcp - boot image via network using DHCP/TFTP protocol
eboot - eboot - boot from EMMC device
env - environment handling commands
erase - erase FLASH memory
ext4load- load binary file from a Ext4 filesystem
ext4ls - list files in a directory (default /)
ext4write- create a file in the root directory
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
flinfo - print FLASH memory information
fsinfo - print information about filesystems
fsload - load binary file from a filesystem image
go - start application at address 'addr'
help - print command description/usage
iminfo - print header information for application image
load - load - load configuration from an environment variable
loop - infinite loop on address range
ls - list files in a directory (default /)
md - memory display
mm - memory modify (auto-incrementing address)
mmc - MMC sub system
mmcinfo - display MMC info
mtdparts- define flash/nand partitions
mtest - simple RAM read/write test
mw - memory write (fill)
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
reloadenv- reloadenv - reload default environment variables
reset - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv - set environment variables
tftpboot- boot image via network using TFTP protocol
upgrade - upgrade - Upgrade Linux kernel/rootfs using USB
usb - usb - USB sub-system
usbboot - usbboot - boot from USB device
Wracając do plików na pendrive, podczas wgrywania NVM.BIN część pamięci EEPROM jest zablokowana podczas tej operacji.
Zresztą tak samo dla AQ.BIN, PQ.BIN (te wgrywane są do partycji).
============================================================
USB_ROOT_PATH : /mnt/usb_0
SYSTEM_EEPROM_SIZE : 16384
OPTION_SYSTEM_EEPROM_SIZE : 32
OPTION_ADDRESS : 0x 3a0
PROTECT AREA : Y
EEPROM UPGRADE NVM.BIN : O ===> NVM.BIN
EEPROM UPGRADE OPT.BIN : X
EEPROM UPGRADE NVM.EED : X
USB_UPGRADE_FILE_PREFIX_FILENAME:QM16XE_U
============================================================
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <== O
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d <== O
protect/0x0210/0x4/0xf ==>4b a8 05 00 1c 5a 6b d1 ef f1 6e 1c 5a 6b d1 ef <== X
protect/0x0220/0x0/0x1 ==>f1 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <== X
Odpowiedź O = overwrite
Jak nazwa wskazuje (OPT) plik ten jest szeroko używany w innych systemach, może podczas wgrywania ma odbezpieczony dostęp do obszarów PROTECT przez co uzyskamy dostęp do odwrócenia obrazu, załączenia pełnego UART itp.