Boot logo file formaat - reverse engineering

De logo.fli file bevat een header van 64bytes
Wat er precies is de header zit ben ik nog niet helemaal achter, allesinds de resolutie 800x480

Wel ben ik er echter wat er na de header zit, het data stuk.

de data bevat het volgende
- 2 bytes voor de kleur (zie verder)
- 2 bytes voor hoeveel keer die kleur zich in pixels herhaald

Kleur

2-bytes die de RGB kleur beschrijven.
Een kleurdiepte van 5bit is voorzien en heb je dus 32 mogelijk schakeringen (2^5) per pixel

Repeat
Een bepaalde kleur kan zich x aantal keer herhalen, dit is minimaal 1
De scanning van de image loopt van links naar rechts en van boven naar onder.

Dus een zwart vlak van 50x50 zal het volgende opleveren:

Code:
Repeat   = 2500  (09C4)
Color    = 0     (0000)
Ik heb alvast in de rapte een python script gemaakt dat een image kan weergeven vanuit de logo.fli
Ook kan je een bmp file geven en deze zal omgevormd worden tot het data stuk van een fli.

Ik zit echter nog vast met de header, kan iemand mij helpen met wat hints wat er mogelijk allemaal in de header zit:

De 64bit header
Code:
xxd logo.fli | head -4

0000000: aa55 aa55 0000 000f 0003 c138 0000 0000  .U.U.......8....
0000010: 0000 f8ca ffff ffff 0000 0000 ffff ffff  ................
0000020: 002a 4444 0005 1675 0000 0320 0000 01e0  .*DD...u... ....
0000030: 0000 db05 0000 0000 0000 0000 0003 c118  ................

Ik zie dat de resolutie mee in de header zit 0320 (800) x 01E0 (480)

Wie wil me helpen !

Het script

Voor de python code heb je alvast de volgende extra packages nodig (voor ubuntu)

Code:
apt-get install python-pygame
apt-get install python-tk

vervolgens kan je het volgende om de image te displayen:
./fli-convert -r -i logo.fli

Om een nieuwe fli aan te maken doe je het volgende:
./fli-convert -w -i logo.bmp -o logo.fli

Disclamer: dit scripts is onder de GLPv3 License en is een quick hack om de afbeeldingen te extracten (wat VEEL efficienter zou kunnen)

Download het script: Bekijk bijlage fli-convert.txt
 
Ondertussen heb ik ook door wat de variale stukken zijn in de HEADER.

byte 60-63 = size data
byte 8-11 = size data + 32
byte 50-51 = CRC CCITT van data
byte 18-19 = CRC CCITT van byte 33-<end of data>

Nog even verder hacken en ik heb een custom scriptje ;)
 
Voila, ik heb nu een script gemaakt wat (normaal) gezien een correct boot logo aanmaakt.

Vanavond even testen, maar hier is alvast de help van het script:


Code:
rns510-bootlogo 
Usage:

 This script can read/write a bootlogo for the VW RNS-510 / Skoda Colombus / Seat Media Center

 ACTIONS
  -r   Read an FLI file and render the image, requires parameter -i
  -w   Convert an BMP file and write the FLI, requires -i <BMP_file> and -o <FLI_file>
  -v   Verify the FLI file, requires -i

 ARGUMENTS
  -i   Input file, can be an FLI or an BMP depending on the action
  -o   Output File, write the FLI to this file

  -h   Print this help message

 COPYRIGHT
       Copyright  2011 netdata.  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
       This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted by law

 AUTHOR
       Written by Wouter D'Haeseleer and Karsten Verelst

 REPORTING BUGS
       Send to rns510@netdata.be
 

EdK

Forumguru
Netdata misschien dat ik iets mis, maar waar ben je in hemelsnaam mee bezig
Kun je eens een simpele uitleg geven voor simpele skodaforum.nl leden ?

Wat ga je uiteindelijk in het echt zien wat die tekst van jou weergeeft ?
En voor waarmee is het toepasbaar ? één iets of universeel toepasbaar ?
Ben ook zeer nieuwsgierig hiernaar
 
Edk

Excuseer ;)

Uiteraard wil ik het even toelichten. Mijn interesse begon na het lezen van deze post:
http://www.remkoweijnen.nl/blog/2011/05/04/vw-rns-510-navigation-startup-pictures/

Men is is dus in geslaagd om het boot logo van de RNS(Colombus) te vervangen.

Omdit ik een opensource believer ben zit ik al langer met het idee te spelen om een tooltje te maken wat vanalles kan aanpassen aan je colombus.
enkele van deze dingen kunnen zijn:

  • Boot logo
  • De kleur van je map kaarten
  • Video In Motion
  • Hidden menu

Nu het probleem is dat een deel van deze dingen al bestaan maar dat er *idioten* zijn die vinden dat ze er geld aan moeten verdienen.
Een van de developers gaf me zelf het volgende antwoord:

Code:
Use your brain. Just say "tell me..." is too easy.
If you are familiar with programming, CRC calculation and file format reversing you are able to solve it.
This is not easy as open it in Word and save as .fli.

Dus... ben ik gaan reverse engineeren, en ondertussen heb ik een werkend script dat zelf een bootlogo kan aanmaken voor de colombus.

Als je nog vragen hebt, shoot !
 

EdK

Forumguru
Wel ik ben geen bezitter van de columbus omdat deze mij te diefstal gevoellig is
Maar op zich is het iets interresants waar je mee bezig bent
En corrigeer me als ik het fout heb, maar om het dievengilde het wat moeilijker te maken is het waarschijnlijk ook mogelijk om je naam met eventueele adres gegevens in het opstart logo mee te nemen !
Kunnen de kopers van het dievengilde zien dat ze geen eerlijk verkregen apparaat hebben !?

Maar wat ik ook begrijp is de tool straks alleen toepasbaar op de Columbus en niet bv voor mijn geval een Kenwood DNX 9260 ?
 

nomad

Senior Member
Ik denk dat je al een hoop inbrekerts het erg lastig maakt als je een bootscherm hebt met daarin het kenteken van de auto. Moet het natuurlijk niet zomaar te overschrijven zijn met een FW update. Ik kan eventueel wel wat regelen met een test toestel.

lp.png
 

Rallye

Forumguru
Heb ik het mis als ik denk dat je de dief, of zijn heler, het bootscherm pas ziet als de Columbus bij hen thuis ligt, en dus al uit jouw auto gehaald is?
 

andrehj

Forumguru
Inderdaad interessant, maar ik denk dat de gemiddelde Oost-europese Columbus-dief wiens achterban er in slaagt om een gejatte Columbus van zijn softwarematige antidiefstalbeveiliging te ontdoen niet heel erg wakker ligt van een kenteken in beeld wat door een eenvoudige firmwareupdate weer verdwijnt...
 

hemi24

Forumguru
Ik blijf erbij: die oostblokbendes zijn allemaal in het bezit van het "RNS510 service tool"!
Google en huiver...
 
Jammer genoeg is dat inderdaad zo.

Echter is het wel zo dat met de huidige service tool het niet mogelijk is om het bootlogo te veranderen.
Maargoed als ikzelf instaat ben om dit mits een beetje hulp te reverse engineeren dan denk ik dat de kwade dat ook kunnen...
 
Voila,

Ik heb een werkende ISO kunnen aanmaken...
En mijn tooltje is instaat om dit ook geautomatiseerd te kunnen doen.

Ik heb even een filmpje gemaakt om dit alles iets beter uit te kunnen leggen:
[video=youtube;eWeip-QLSK8]http://www.youtube.com/watch?v=eWeip-QLSK8&hd=1[/video]

De tooltjes zal ik zeer binnenkort publiekelijke opensource aanbieden zodat
 

marreky

Nieuw lid
Dus als ik het filmje goed begrijp maakt deze een iso file aan, deze brand ik op cd / dvd
en vervolgens doe ik deze in mijn columbus, columbus installeed/ stelt in de image als bootlogo...
ik verwijder de cd/dvd en de als ik mijn columbus opnieuw start zonder cd/dvd krijg ik mijn eigen bootlogo te zien?
 
Hoi Marreky, helemaal correct !

RogerS, er bestaan al enkele filmpjes hiervoor waar men effectief dit demonstreerd, ik zal er eens achter zoeken en/of ook een filmpje opnemen van hoe je het op de unit zelf doet.
 
Bovenaan Onderaan