Was ist eine OBML-Datei?
Eine OBML-Datei (Opera Binary Markup Language) ist eine Offline-Version einer Webseite, die vom mobilen Webbrowser Opera Mini gespeichert wird. Es handelt sich um eine eigenständige, kompakte Version der HTML-Dateien, die alle Elemente der Seite enthält, die auf bestimmten Geräten offline angezeigt werden können. Das OBML-Dateiformat wurde auf mehrere Versionen aktualisiert, wobei OBML15 und OBML16 allgemein verwendet werden. Ein wichtiger Punkt, den es zu beachten gilt, ist, dass jede Opera Mini-Version nur mit einem OBML-Format kompatibel ist. Daher werden beim Upgrade von Opera Mini zuvor gespeicherte Seiten lesbar bleiben. OBML-Dateien können in HTML und PDF konvertiert werden.
OBML-Dateiformat
Das OBML-Dateiformat wird im proprietären Dateiformat von Opera gespeichert und seine Dateiformatspezifikationen sind nicht öffentlich verfügbar. Das OMBL-Format wurde jedoch zurückentwickelt, um seine Struktur wie folgt zu decodieren.
OBML-Datentypen
Gemäß den Ergebnissen des Reverse Engineering verwendet OBML die folgenden primitiven Typen:
byte
– Ganzzahl ohne Vorzeichen (1 Byte)- „short“ – Ganzzahl mit Vorzeichen (2 Bytes, Big-Endian)
- „medium“ – vorzeichenbehaftete Ganzzahl (3 Bytes, Big-Endian)
blob
– { length: short, data: byte[length] }- „char“ – ein Byte, das ein ASCII-Zeichen enthält
- „string“ – ein Blob mit UTF-8-codiertem Text
OBML-Header
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[]
}