Що таке файл OBML?
Файл OBML (мова бінарної розмітки Opera) — це офлайн-версія веб-сторінки, збережена мобільним веб-браузером Opera Mini. Це самодостатня, компактна версія файлів HTML, яка містить усі елементи сторінки для відображення на певних пристроях у режимі офлайн. Формат файлу OBML було оновлено до кількох версій із загалом використанням OBML15 та OBML16. Важливо пам’ятати, що кожна версія Opera Mini сумісна лише з одним форматом OBML. Таким чином, оновлення Opera Mini залишить раніше збережені сторінки читабельними. Файли OBML можна конвертувати в HTML і PDF.
Формат файлу OBML
Формат файлу OBML зберігається у власному форматі файлу Opera, і його специфікації формату файлу недоступні для всіх. Однак формат OMBL було реверсно спроектовано для декодування його структури, як описано нижче.
Типи даних OBML
Відповідно до результатів зворотного проектування, OBML використовує такі примітивні типи:
byte
– ціле число без знаку (1 байт)short
– ціле число зі знаком (2 байти, старше)medium
– ціле число зі знаком (3 байти, старше)blob
– { length: short, data: byte[length] }char
– байт, що містить символ ASCIIрядок
– blob, що містить текст у кодуванні UTF-8
Заголовок 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[]
}