Page 1 sur 5

TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 04 février 2018, 17:22
par athon34
------------------------------------------------------------------------------------------------------------------------
***** TUTO *****
Modifier la valeur de 'activationRadius' dans 'poidata.db3' pour la porter de <Null> à 250
afin d'être averti plus précocement de la présence d'un radar par le son système "Gloup"
-----------------------------------------------------------------------------------------------------------------------
Mise à jour au 15/02/2018
Recherches non encore terminées ... Tuto en cours d'achèvement
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Préalables requis :

* Notions de base de données sous SQL
* Utilitaire 'SqLiteBrowser3' (pour modifier fichier .db3)
* Utilitaire 'Quick Hash Windows 3' (pour calculer les Checksums, de type SHA-1)
* Utilitaire 'HJSplit' (pour couper le fichier .db3 en plusieurs morceaux de 512K chacun)

Il faut donc suivre la méthode suivante :
Ainsi, pour le cas des 14 radars France (février 2018) issus de Lufop.net
L’on obtient in fine, l'arborescence :
\PersonalPoi
\metainfo2.txt

Cliquer ici pour obtenir cette arborescence initiale (pour VW DM ou VW DP écran 8")

https://drive.google.com/file/d/1aUt1TO ... sp=sharing

Laquelle est ensuite mise sur une SD Card (clé USB pour VW DP) servant à l'injecter dans le Système de Navigation de VW
Discover Media ou Discover Pro (Mise à jour des Pois ou Destinations Spéciales), mais avec un son "gloup" se déclenchant bien trop tard, quasiment à 100/150 mètres du radar, ce qu'il convient de changer.
L'on souhaite donc que ce son "gloup" se déclenche bien plus tôt...

Les 2 fichiers qui nous intéressent sont 'hashes.txt' et 'poidata.db3' qui se trouvent sous

\PersonalPOI\MIB2TSD\personalpoi\ppoidb\1\default\

La base SQL 'poidata.db3' comporte plusieurs TABLES et celle qui nous intéresse est celle nommée
'pPoiCategoryTable' et dont la structure est :

CatId = Integer Unique
Category Default Name = Text non <null>
Warning : (0= pas de son "gloup" et 1= son "gloup")
Warnmessage : text = <Null>
activationRadius : un nombre entier entre 0 et 253 (mettre par ex : 250) au lieu de <Null>
phoneticstring : text = <Null>
iSLocalCategory = <Null>
Version= <Null>
IsDirty = <Null>

Et cela pour toutes les lignes qui correspondent aux sous-catégories de POIs (par ex : pour POIS FR de lufop.net
Il y a 14 lignes ou sous-catégories : FR feu rouge, FR radar fixe 30 FR radar fixe 50,...)

Extrait du contenu initial de 'hashes.txt' (Ce sont des Checksums)
.......................................................................................................
FileName = "poidata.db3"
FileSize = "3874816"
CheckSumSize = "524288"
CheckSum = "11be31e592fb7ece94f9f4c02421f6f456f4e6b4"
CheckSum1 = "5577d729fb9b2054d16b5f15b3f8c5a091db9c3f"
CheckSum2 = "00faac8977dad95b1b872cd24ded51ba0bd18b62"
CheckSum3 = "5fa0d87a831367df485c19a3363d7ddd36c81c32"
CheckSum4 = "6095ccfe9a09d650373aca97cff75e06a31a7c94"
CheckSum5 = "84ba7e69a7b0047599fc5aa83303a9241ed60607"
CheckSum6 = "6b8b82b8a65154600c8d361bf2d4c583a64b023f"
CheckSum7 = "d456fe898e4d59a089aa171d96cb4cbe641c120e"
.....................................................................................................
On note que :
CheckSumSize = 524288 = 512 K
Et que le fichier 'poidata.db3' est donc découpable en 8 parties de 512K chacune (chaque partie correspondant à un Checksum différent).

Tous les Checksums sont de type SHA-1 (codage sur 160 octets)

La 1ère partie (512K) de 'poidata.db3' contient les paramètres des POIS qui sont dans la table nommée 'pPoiCategoryTable' de la base 'poidata.db3', table qui gère tous les paramètres liés à la gestion des POIs et notamment le rayon de déclenchement de l'alerte du son d'avertissement "gloup" (dont le champ est nommé 'activationRadius').

A cette 1ère partie est donc associé

CheckSum1 = "5577d729fb9b2054d16b5f15b3f8c5a091db9c3f"

Les autres Checksums (de Checksums 2 à Checksums 7) sont relatifs aux autres morceaux de 512K et ne nous intéressent PAS.

Une fois que l'on aura donc avec l'utilitaire 'SqLiteBrowser3' modifié (en mode ADMINISTRATEUR sous Windows) dans la table 'pPoiCategoryTable' de la base 'poidata.db3' la valeur 'activationRadius' en la passant de <Null> à 250, l'on sauvegardera donc avec ‘SqLiteBrowser3’ un nouveau fichier 'poidata.db3'

Et l'on y relèvera (pour info) son Checksum qui est évidemment différent de l'ancien.

Maintenant avec l'utilitaire windows 'HJSplit' on va découper en 8 parties de 512K chacune, le nouveau fichier poidata.db3 (contenant la valeur 'activationRadius' modée à 250)

L'on obtient les 8 fichiers suivants de 512K chacun.

poidata.db3.001
poidata.db3.002
...............
...............
poidata.db3.008


Intéressons-nous au 2ème fichier 'poidata.db3.002' et relevons son Checksum SHA-1 afin de nous assurer que celui-ci est IDENTIQUE à celui noté dans le fichier 'hashes.txt' pour la valeur 'CheckSum1' du nom de fichier 'poidata.db3'

Avec l'utilitaire 'QuickHash Windows 3' nous trouvons que ce Checksum est :

5577d729fb9b2054d16b5f15b3f8c5a091db9c3f
Soit donc identique.

Maintenant, intéressons-nous au 1er fichier 'poidata.db3.001' (celui qui nous intéresse car relatif à la table 'PpoiCategoryTable') et mesurons son Checksum (de type SHA-1)

8ef7ed7c872152b576a48c8bc07f10d86416ccd0

Et c'est donc ce Checksum que nous allons reporter dans le NOUVEAU fichier 'hashes.txt'
relativement à la ligne 'Checksum'. Les autres lignes de Checksums n’ont pas à être modifiées.

Nouvel Extrait du contenu de 'hashes.txt'
.....................................................................................................
FileName = "poidata.db3"
FileSize = "3874816"
CheckSumSize = "524288"
CheckSum = "8ef7ed7c872152b576a48c8bc07f10d86416ccd0"
CheckSum1 = "5577d729fb9b2054d16b5f15b3f8c5a091db9c3
CheckSum2 = "00faac8977dad95b1b872cd24ded51ba0bd18b62"
CheckSum3 = "5fa0d87a831367df485c19a3363d7ddd36c81c32"
CheckSum4 = "6095ccfe9a09d650373aca97cff75e06a31a7c94"
CheckSum5 = "84ba7e69a7b0047599fc5aa83303a9241ed60607"
CheckSum6 = "6b8b82b8a65154600c8d361bf2d4c583a64b023f"
CheckSum7 = "d456fe898e4d59a089aa171d96cb4cbe641c120e"
.....................................................................................................

==> Mais le travail n'est pas encore terminé....

Dans l'arborescence, on vois que sous \MIB2TSD, on a :

-> personalpoi (répertoire)
-> meta2info.txt (fichier)

Et dans le fichier meta2info.txt, il y a 1 autre Checksum à venir modifier...

Contenu de meta2info.txt

..............................
...............................
................................
[personalpoi\ppoidb\1\default\Dir]
CheckSumSize = "524288"
CheckSum = "6b25f1272016092e3362f1113814c3532ca19aae"
FileSize = "3894705"
Source = ""
Destination = "/tsd/var/nav/personalpoi/"
Version = "1"

Ce Checksum de taille 512K est relatif à \persoinalpoi\ppoidb\1\default\dir
et il correspond aux fichiers qui se trouvent dans le répertoire en-dessous de \default
là où donc on a bien modifié poidata.db3 et hashes.txt

Donc il faut maintenant venir modifier aussi ce checksum là, celui du répertoire \default qui contient 2 fichiers et 1 répertoire

* poidata.db3 (on y a touché donc checksum a changé)
* hashes.txt (on y a touché donc checksum a changé)

En fait, il faut venir remplacer ce Checksum="6b25f1272016092e3362f1113814c3532ca19aae"
par le Checksum du nouveau fichiers hashes.txt soit "1fd56c636bab7c1bade58f90fa8d6bfe701d723b"
puisque ce Checksum fait bien référence à celui du fichier hashes.txt

Nous avons donc maintenant à notre disposition :

- Le nouveau fichier 'poidata.db3' avec une alerte de son "gloup" se déclencheant plus précocement (environ 400/450 mètres)
- Le nouveau fichier 'hashes.txt'

Il faudra donc utiliser ces 2 fichiers à intégrer dans notre arborescence initiale (à la bonne place) pour effectuer la mise à jour (donc avec un ‘activationRadius’ amélioré) sur notre VW DM ou DP comme classiquement fait.

On notera, pour les plus férus, qu'il est aussi semble-t-il possible de modifier d'autres paramètres dans la table 'pPoiCategoryTable', mais je ne les ai pas essayés... (notamment 'WarnMessage' et 'PhoneticString' qui paraissent bien intéressants…).
Il est aussi recommandé de mettre une valeur de ‘activationRadius’ spécifique pour chaque type de radar.

==> Hélas, notre travail n'est pas encore terminé à ce stade !

Si nous réinjectons cette nouvelle arborescence telle quelle, nous avons toujours un message d'erreur du style "Données non reconnues..."

==> Il faut donc maintenant s'intéresser dans la racine de l'arborescence, au fichier meta2info.txt
qui comporte un Checksum et 8 signatures numériques à la fin...

==> ET là j'ai bien besoin d'aide pour continuer mes recherches...

En effet dans ce fichier meta2info.txt qui est dans la racine de l'arborescence, il y a :

- la valeur MetafileChecksum ="38c46...........1554c"

- puis une liste de signatures...in fine

Le plus important serait DEJA de savoir à quoi correspond ce MetafileChecksum="38c46......554c"
avant que de s'attaquer à l'histoire des 8 signatures ...

Peut-être ce MetafileChecksum serait-t-il le Checksum du dossier complet ?

Bonne chance

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 05 février 2018, 11:58
par inforacing
Super travail.
Je suis propriétaire d'une Skoda Octavia RS 230 Décembre 2017, GPS Amundsen et je me lance dans la mise à jour de mon GPS.
Pour les cartes, j'ai téléchargé chez Skoda avec le numéro de châssis mais j'hésite vraiment à formater la carte SD pour tout remplacer !
Pour les alertes, j'ai lu attentivement ce tuto très bien fait. Il faut un certain niveau informatique, ce que je pense avoir !
J'ai téléchargé l'arborescence initiale, laquelle s'installe sans problème.
1) je modifie la table sqlite poidata.db3 avec "SqLiteBrowser 3.10.1" Parcourir les données -> pPoiCatégoryTable -> activationRadius
200 pour les 3 premiers et 250 pour les autres -> Enregistrer les modifications.
2) HjSplit 3.0 -> Split -> Input file poidata.db3 -> Split file size 512 -> Start. J'obtiens les 8 fichiers poidata.db3.001 à 008.
3) Quick Hash Windows 3.0.0 (64bits) -> File -> Select File -> poidata.db3.002 -> Switch case.
J'obtiens bien "5577d729fb9b2054d16b5f15b3f8c5a091db9c3f"
avec poidata.db3.001 -> J'obtiens "10f43fba05f237d096bbbbcf7efc0dc288563336"
4) Bloc-notes hashes.txt -> modification ligne 39 CheckSum = "10f43fba05f237d096bbbbcf7efc0dc288563336" -> Enregistrer.
5) Remplace mes 2 fichiers 'hashes.txt' et 'poidata.db3' sur SD\PersonalPOI\MIB2TSD\personalpoi\ppoidb\1\default\
6) GPS -> Information version -> Mise a jour -> Recherche ... -> Données disponnibles Personal POI 2018-02-03 -> Continuer ->
Erreur Mise a jour logiciel -> OK -> Redémarrage.
J'ai du louper quelque chose ?
Je suis preneur d'informations complémentaires.
Merci pour votre aide.

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 06 février 2018, 16:55
par mytheuzen
Merci athon34 pour ce très bon tuto.

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 11 février 2018, 01:03
par athon34
Pour la mise à jour de la carto. il te faut après sauvegarde de l'ancienne sur ton HDD, formater (quick, FAT 32) ta carte SD card VW d'origine pour venir y dézipper dessus la nouvelle cartographie.
A priori tout semble correct sur tes manips.
Peut-être revérifier s'il ne faut pas encore modifier un autre checksum sur un autre fichier dans l'arborescence dézippée...
Je ne vois que cette possibilité...mais je n'ai pas encore eu le temps de m'y pencher dessus.
--> Mais Essaie déjà de charger dans l'Amundsen 8" l'arborescence dézippée sans toucher à la base .db3 (donc telle quelle) et dis-moi si ça marche OK.


Bon courage

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 11 février 2018, 10:18
par inforacing
Merci pour l'aide,
Je vais me lancer, après sauvegarde de la carte SD, format puis installation des nouvelles cartes.
Je pense que, comme avec IGO, on peut supprimer les cartes inutiles ?

Pour les alertes, l'arborescence d'origine, sans toucher à la base .db3 s'installe parfaitement.

L'avertissement étant vraiment trop tard, je vais chercher du côté des "checksums".
Peut être le fichier 'hashes.txt' lui même ?

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 11 février 2018, 14:46
par athon34
Bonjour inforacing, et autres intéressés...

Dans l'arborescence, je vois que sous \MIB2TSD, on a :

-> personalpoi (répertoire)
-> meta2info.txt (fichier)

Et dans le fichier meta2info.txt, il y a 2 autres Checksums :

Contenu de meta2info.txt

..............................
...............................
................................
[personalpoi\ppoidb\1\default\Dir]
CheckSumSize = "524288"
CheckSum = "6b25f1272016092e3362f1113814c3532ca19aae"
FileSize = "3894705"
Source = ""
Destination = "/tsd/var/nav/personalpoi/"
Version = "1"
..............................
[personalpoi\InfoFile\1\default\File]
CheckSumSize = "524288"
CheckSum = "a0e00b89384cc06aead2be38f36767f70e6d5a2b"
FileSize = "640"
Source = "Update.txt"
Destination = "/tsd/etc/PoiUpdate.txt"
Version = "1"

Pour les 2 CheckSums visibles :

1- UN est relatif à \persoinalpoi\ppoidb\1\default\dir
avec un checksum qui correspond aux fichiers qui se trouvent dans le répertoire en-dessous de \default
là ou donc on a bien modifié poidata.db3 et hashes.txt

Donc il faut surement venir modifier aussi ce checksum là, celui du répertoire \default qui contient 2 fichiers et 1 répertoire

* poidata.db3 (on y a touché donc checksum a changé)
* hashes.txt (on y a touché donc checksum a changé)
* \icon (là où sont les icônes) (on y a pas touché)

A mon avis c'est donc le fichier hashes.txt et pour lequel il faudra relever le nouveau Checksum

2- UN relatif relatif au fichier update.txt
Celui-là a pas été touché


Donc je chercherai à modifier le checksum suivant du fichier hashes.txt

Soit ici --> CheckSum = "6b25f1272016092e3362f1113814c3532ca19aae"

--> Or ce CheckSum = "6b25f1272016092e3362f1113814c3532ca19aae" n'est AUTRE que le checksum du fichier initial hashes.txt !!!

Il faudra donc bien aussi venir remplacer dans ce fichier meta2info.txt
cette ancienne valeur de checksum par la nouvelle valeur du chekcsum du fichier hashes.txt modifié (car la valeur activatioradius est passée de <nul> à 250...)

En outre, on note que :

Filesize ="3894705" est la somme des tailles des 2 fichiers

poidata.db3 (3 874 816 octets)
répertoire icon (19 889 octets)

Il faudra donc s'assurer que cette valeur ne change pas (vérifier cela sur les nouveaux fichiers correspondants après changements apportés).
A mon avis ça ne bouge pas.

En conclusion, c'est donc le checksum du nouveau fichier hashes.txt qu'il faudra rapporter pour remplacer l'ancien Checksum

CheckSum = "6b25f1272016092e3362f1113814c3532ca19aae" donc à remplacer par la bonne nouvelle valeur du checksum de hashes.txt


En attente donc de validation de mon hypothèse...

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 12 février 2018, 09:09
par inforacing
Bonjour athon34,

J'ai donc fait le checksum du fichier PersonalPOI\MIB2TSD\personalpoi\ppoidb\1\default\hashes.txt modifié
résultat: "1fd56c636bab7c1bade58f90fa8d6bfe701d723b"
J'ai modifié la ligne 52 du fichier PersonalPOI\MIB2TSD\metainfo2.txt: CheckSum = "6b25f1272016092e3362f1113814c3532ca19aae"
remplacé par: "1fd56c636bab7c1bade58f90fa8d6bfe701d723b"

J'ai essayé, ça ne plante plus mais on a le message "Défaut, aucune donnée disponnible ....".
Donc la piste est bonne mais il manque une étape, ça devient un peu compliqué.

Si on remonte l'arborescence, il y a au niveau de la racine, un autre fichier metainfo2.txt,
avec une section de type .ini [common] et une valeur MetafileChecksum = "38c46b401df479f19d3f77f424f66d8f39a1554c"
une section [common_Release_3] concernant le répertoire "./PersonalPOI/MIB2TSD",
puis une liste de 8 signatures !!!
C'est peut être par là qu'il faut gratter encore un peu, faut-il le checksum des 4 metainfo ou du dossier complet ?

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 12 février 2018, 11:38
par athon34
@inforacing
@tr3m0bil

On progresse ...un peu, car il n'y a plus d'erreur majeure qui plante le GPS Amundsen 8" (Discover Media)

En effet j'avais déjà vu que dans ce fichier meta2info.txt qui est dans la racine de l'arborescence, il y avait :

- la valeur MetafileChecksum ="38c46...........1554c"

- et la section que tu dis, puis une liste de signatures...

Le plus important serait DEJA de savoir à quoi correspond ce MetafileChecksum="38c46......554c"
avant que de s'attaquer à l'histoire des 8 signatures..

Peut-être ce MetafileChecksum serait-t-il comme tu le suggères le Checksum du dossier complet ? Mais alors comment faire pour calculer ce checksum là ? (celui de toute l'arborescence ...)

==> peut-être que tr30mobil a quelques idées ?

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 13 février 2018, 10:39
par inforacing
Après quelques essais, il semble que quelle que soit la modification du fichier metainfo2.txt de la racine ça provoque toujours la même erreur "Défaut, aucune donnée disponnible ...." !
En cherchant pour faire un checksum de répertoire, j'ai trouvé cet utilitaire https://idrassi.github.io/DirHash/ qui fonctionne en ligne de commande.
Avec un .cmd c'est plus facile, exemple dans mon test.cmd DirHash.exe "D:\VW Skoda\GPS-Speedcams\FR-LufopFev2018NORMAL" sha1 -t Test.txt
ça semble fonctionner mais pas de résultat plausible pour le moment.

Re: TUTO : Modifier POIs Warning Alerts dans la base .db3

Posté : 15 février 2018, 02:08
par athon34
@inforacing

Et en modifiant MetafileCheckSum du fichier meta2info.txt qui est dans la racine (en le remplaçant par le nouveau
checksum calculé sur toute l'arborescence en dessous, ça te donne rien?