====== Взлом цифровых рамок ======
{{ :component:lcd:dpf-1.5inch.jpg?150|}}
Фоторамки-брелоки построены на основе полуторадюймовых дисплеев 128х128 пикселов с контроллером [[component:lcd:st7637|ST7637]].
В качестве процессора в части рамок используется MCU Appotech AX203 (CFP5102) с системой команд 8051. К сожалению он однократно программируемый, и интереса не представляет.
Сейчас стали появлятся рамки на базе MCU Appotech AX206 ([[http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=120417980507|приобретена на Ebay]]), который имеет 4кб масочной ROM программ, и 3кб SRAM программ/данных. Судя по всему части программы подгружаются из внешнего SPI Flash (1Mb {{:projects:es25m40a_80a_16a.pdf|ES25M80A}} маркированного как M80A80CG). Вероятно программное обеспечение рамки может быть модифицировано.
Фоторамка видна в системе как пишуший CD привод.
В linux она определяется как:
[551412.809178] usb 1-2: New USB device found, idVendor=1908, idProduct=0102
[551412.809190] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[551412.809198] usb 1-2: Product: Digital Photo Frame
[551412.809203] usb 1-2: Manufacturer: BUILDWIN
[551412.809208] usb 1-2: SerialNumber: 200807101900000000
[551418.439895] usb-storage: device scan complete
[551418.439895] scsi 5:0:0:0: CD-ROM buildwin Photo Frame 1.01 PQ: 0 ANSI: 2
[551418.454696] sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray
[551418.454696] sr 5:0:0:0: Attached scsi CD-ROM sr0
[551418.454696] sr 5:0:0:0: Attached scsi generic sg2 type 5
* Копия флеша фоторамки: {{:projects:ax206-based-dpf.bin.gz}}.
* Копия флеша фоторамки снятая через USB: {{:projects:dpf-1.5-ax206-based.bin.gz}}. Копия была снята с помощью небольшой утилиты((Написана на основе http://picframe.spritesserver.nl/wiki/index.php/Talk:HK_Unbranded_with_AppoTech_chipset)) {{:projects:dpf-tools.tar.gz}} :!: Будьте внимательны, и перед использованием проверьте исходный код утилиты. Дабы не перезаписать чего линего в фоторамке ;-)
* Образ USB диска фоторамки: {{:projects:disk-image.iso.gz}}.
См. так же:
* Страница вики посвящённой хакингу фоторамок: http://picframe.spritesserver.nl/wiki/index.php/HK_Unbranded_with_AppoTech_chipset
* Официальная инфа на чип Appotech AX206: [[http://www.appotech.com/main/pro_detail.php?product_id=AX206]]. :!: Подробных даташитов к сожалению нет. Если у вас есть - сообщите.
* Фотки: http://fotki.yandex.ru/users/ioan-ar/view/154799 and http://fotki.yandex.ru/users/ioan-ar/view/154800/
[[http://fotki.yandex.ru/users/ioan-ar/album/67634/|{{ http://img-fotki.yandex.ru/get/3409/ioa-ar.0/0_25caf_d9bd8bb6_M.jpg }}]]
===== Выполнение кода =====
При сбросе процессора выполняется некий код из масочного ROM. После необходимых инициализаций, по SPI шине делается попытка прочитать флеш-память. Читается 32 байта начиная с нулевого адреса.
В байтах ''6'', ''7'' и вероятно ''8'', хранится адрес первого участка программного кода читаемого из флеш. В нашем случае это будет 0x0220. Где хранится длина участка, я к сожалению не выяснил. :?:
Далее считывается участок флеш начиная с адреса ''0x0220'' по адрес ''0x02FF'', итого ''0xE0'' байт. Исполненимый код находится начиная с адреса 0x022B. Вероятно загрузка и дальнейшее исполнение кода происходит в IRAM((Instruction RAM))) расположеную в адресном пространстве процессора начиная с адреса 0x1330 (исполненимый код идёт соответственно с адреса 0x133B) :?: :?: :?:
===== Масочный ROM =====
Если в момент сброса процессора удерживать клавишу ''Menu'' код из флеша выполнятся не будет, а управление будет отдано обратно в прошивку ROM.
При этом процессор определяется по шине USB следующим образом:
[533030.584390] hiddev96hidraw0: USB HID v2.01 Device [BUILDWIN BL206v1.0.0] on usb-0000:00:1d.7-6.3
[533030.584554] usb 1-6.3: New USB device found, idVendor=1908, idProduct=3318
[533030.584558] usb 1-6.3: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[533030.584562] usb 1-6.3: Product: BL206v1.0.0
[533030.584564] usb 1-6.3: Manufacturer: BUILDWIN
[533030.584567] usb 1-6.3: SerialNumber: 000001
[45057.225436] usb 3-1: configuration #1 chosen from 1 choice
[45067.233308] generic-usb 0003:1908:3318.0035: timeout initializing reports
[45067.233510] generic-usb 0003:1908:3318.0035: hiddev97,hidraw1: USB HID v2.01 Device [BUILDWIN BL206v1.0.0] on usb-0000:00:1
d.1-1/input0
Вероятно, при чистом или испорченном флеше этот механизм позволяет прошить его.
===== MCU Pinout =====
AX206 connection table
^ Pin ^ Name ^ Connect ^ Pin ^ Name ^ Connect ^
| 1 | P3.6/WR | LCD D6 | 25 | P1.5/A5/GRE | LCD CS# |
| 2 | P3.5/T1 | LCD D5 | 26 | P1.4/A4/GRD | LCD D/C# |
| 3 | P3.4/T0 | LCD D4 | 27 | VddIO | Vdd |
| 4 | P3.3/DP2/INTP1 | LCD D3 | 28 | VssIO | GND |
| 5 | P3.2/EA/INTP0 | LCD D2/DB | 29 | MCLR | Rst Btn |
| 6 | P3.1/TXD | LCD D1/UB | 30 | P1.3/A3/GTD | LCD RD# |
| 7 | P3.0/RXD/VRO | R 5K1 to GND | 31 | P1.2/A2/AD7/GTE | LCD WR# |
| 8 | VddIO | Vdd | 32 | P1.1/A1/ALE/GTC | LCD RST# |
| 9 | VssIO | GND | 33 | P1.0/A0/PSEN | LCD D0 |
| 10 | LDOE | Vdd | 34 | DVss | |
| 11 | DVdd | Vdd | 35 | DVdd | |
| 12 | Vpp | Vdd | 36 | P0.7/A7/D7/EXT2 | VUSB det |
| | | | | | |
| 13 | P2.7/A15/PWMN | | 37 | P0.6/A6/D6/AD6/EXT1 | Menu Butt |
| 14 | P2.6/A14/PWMP | Buzzer :?: | 38 | P0.5/A5/D5/AD5/EXT0 | |
| 15 | P2.5/A13/T2EX | | 39 | P0.4/A4/D4/AD4 | Bat Ctrl |
| 16 | P2.4/A12/T2 | LCD BL(NC) | 40 | P0.3/A3/D3/AD3 | Bat In |
| 17 | P2.3/A11/PWM2 | LCD BL(2K) | 41 | P0.2/A2/D2/AD2 | |
| 18 | P2.2/A10/PWM1 | | 42 | P0.1/A1/D1/AD1 | LCD BL2(2K) |
| 19 | P2.1/A9/SDO | Flash DI | 43 | P0.0/A0/D0/AD0/ADV | |
| 20 | P2.0/A8/SDI | Flash DO | 44 | OSC1 | |
| 21 | USBDM | | 45 | OSC2 | |
| 22 | USBDP | | 46 | OSC32K1 | |
| 23 | P1.7/A7/SCK | Flash CLK | 47 | OSC32K2 | |
| 24 | P1.6/A6/GRC | Flash CS# | 48 | P3.7/DP1/RD | LCD D7 |
===== LCD =====
==== DFM-075D-NL-WD ====
^ Pin ^ Name ^ Description ^
| 1 | Vdd | +3v |
| 2 | GND | |
| 3 | D7 | |
| 4 | D6 | |
| 5 | D5 | |
| 6 | D4 | |
| 7 | D3 | |
| 8 | D2 | |
| 9 | D1 | |
| 10 | D0 | |
| 11 | RD# | |
| 12 | WR# | |
| 13 | D/C# | |
| 14 | RST# | |
| 15 | CS# | |
| 16 | | |
| 17 | | |
| 18 | GND | |
| 19 | LED- | (2.6v) |
| 20 | LED+ | 10 j (3v) |
{{tag>project dpf hack lcd x51}}