Qu’est-ce qu’un fichier OBML ?
Un fichier OBML (Opera Binary Markup Language) est une version hors ligne d’une page Web enregistrée par le navigateur Web mobile Opera Mini. Il s’agit d’une version compacte et autonome des fichiers HTML qui contient tous les éléments de la page à afficher sur des appareils spécifiques en mode hors connexion. Le format de fichier OBML a été mis à niveau vers plusieurs versions, OBML15 et OBML16 étant largement utilisés. Un point important à garder à l’esprit est que chaque version d’Opera Mini n’est compatible qu’avec un seul format OBML. Ainsi, la mise à niveau d’Opera Mini laissera lisibles les pages précédemment enregistrées. Les fichiers OBML peuvent être convertis en HTML et PDF.
Format de fichier OBML
Le format de fichier OBML est enregistré dans le format de fichier propriétaire d’Opera et ses spécifications de format de fichier ne sont pas disponibles publiquement. Cependant, le format OMBL a été rétro-conçu pour décoder sa structure comme suit.
Types de données OBML
Selon les résultats de la rétro-ingénierie, OBML utilise les types primitifs suivants :
byte
- entier non signé (1 octet)short
- entier signé (2 octets, gros boutien)medium
- entier signé (3 octets, gros boutien)blob
– { length: short, data: byte[length] }char
- un octet contenant un caractère ASCIIstring
- un blob contenant du texte encodé en UTF-8
En-tête OBML
header := {
(if version >= 15) {
fake_file_size: medium = 0x02d355
fake_version: byte = 16
}
file_size: medium
version: byte
page_size: coords
(if version == 16) {
unknown: byte[3] // always S\x00\x00
}
unknown: short // always -1
page_title: string
unknown: blob
page_url_base: string
page_url: url
(if version >= 15) {
unknown: byte[6]
}
(if 6 < version <= 13) {
unknown: byte[5]
}
(if version == 6) {
unknown: byte[1]
}
metadata: chunk[]
content: chunk[]
}