Author | Message |
---|
transient Кандидат в члены клуба The eBook
Joined: 10 Mar 2012 Posts: 310
| Posted: 30.03.2014 11:13 | |
| /mnt/ext1/system/config/Active Contents лежит информация по закладкам/записям/комментам/содержанию и т.п.
Инфа лежит в html-подобных файлах и если нужно, в дополнительных папках с картинками png и svg.
Имена файлов с информацией совпадают с именами файлов (без путей) с добавлением md5sum чего-то. Как правило, этот же md5sum чего-то содержится и внутри самого файла (иногда разные).
Так как после разных прошивок наблюдаются глюки с этими самыми закладками в ридере, я взялся разбираться и обнаружил кучи ифно-файлов разных вариантов на один и тот же pdf или fb2 файл. Чтобы навести порядок, мне надо понять, от какой инфы считают md5sum? Я проверил и выяснил, что это не:
не md5sum собственно файла;
не md5sum названия файла и не пути, так как на один и тот же файл есть разные версии инфо-файлов с разными md5sum (хотя надо бы попробовать с двумя одинаковыми файлами в разных местах или разными именами...);
произвольное изменение числа md5sum в инфо-файле и его имени приводит к удалению этого файла (и потери закладок, сделанных ранее)
Вот и думаю, какие есть еще версии? |
| | | iamthebest Искушенный участник форума
Joined: 29 Mar 2013 Posts: 63
| Posted: 30.03.2014 13:26 | |
| Quote: | Вот и думаю, какие есть еще версии? |
перед md5sum в конце файла дописывается размер? _________________ pb622 |
| | | transient Кандидат в члены клуба The eBook
Joined: 10 Mar 2012 Posts: 310
| Posted: 30.03.2014 14:53 | |
| Я не понял вопрос, привожу пример.
Имя инфо-файла: "David R. Butenhof Programming with POSIX threads 1997.djvu_D_2276a6473cd8d83dde2db32fff14e944.html"
_D значит тип файла djvu (еще есть _F = fb2, _A = pdf, epub)
Содержание файла:
Code: | <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <title>David R. Butenhof Programming with POSIX threads 1997</title> </head> <body bgcolor="#ffffff"> <table border="0"> <!-- version="2" --!> <!-- filepath="/mnt/ext2/PRO/System/Таймеры/SIGEV_THREAD/David R. Butenhof Programming with POSIX threads 1997.djvu" content="0" bookmark="1" note="0" marker="0" comment="0" pen="0" snapshot="0" rtl="0" --!> <!-- md5sum="2276a6473cd8d83dde2db32fff14e944" --!> <tr><td> <!-- type="4" level="1" position="0000000000000000000000091" --!> <b><font color="#000000" size="5" face="Arial"><div style="padding-left:25px">3.3.1 Creating anddestroying condition variables</div></font></b><br> </td></tr> <tr><td> <!-- type="4" level="1" position="0000000000000000000000087" --!> <b><font color="#000000" size="5" face="Arial"><div style="padding-left:25px">Condition variables</div></font></b><br> </td></tr> <tr><td> <!-- type="4" level="1" position="0000000000000000000000247" --!> <b><font color="#000000" size="5" face="Arial"><div style="padding-left:25px">SIGEV_THREAD</div></font></b><br> </td></tr> <tr><td> <!-- type="4" level="1" position="0000000000000000000000221" --!> <b><font color="#000000" size="5" face="Arial"><div style="padding-left:25px">exec</div></font></b><br> </td></tr> <tr><td> <!-- type="4" level="1" position="0000000000000000000000006" --!> <b><font color="#000000" size="5" face="Arial"><div style="padding-left:25px">Contents</div></font></b><br> </td></tr> </table></body></html> |
md5sum файла: ef366319a162cd6c15518077f86c128a *David R. Butenhof Programming with POSIX threads 1997.djvu
Вроде так (если движок форума не переврет содержание) Блин, движок форума портит содержание... Отключил HTML, вроде ниче стало
Добавлено спустя 7 минут 13 секунд:
md5sum инфо-файла для pdf-файла (djvu, epub,...) не меняется, если его удалить а pdf-файл перенести в другое место. У нового инфо-файла будет тот же самый md5sum. Но иногда они меняются, и тогда происходят глюки. Пока вижу, что со сменой прошивки происходят проблемы... |
| | | iamthebest Искушенный участник форума
Joined: 29 Mar 2013 Posts: 63
| Posted: 30.03.2014 15:24 | |
| не, я про то что в конец книги дописывается размер файла перед подсчетом md5. Например, если файл такой то md5sum станет Code: | md5("<html>111</html>16") |
в старых прошивках длина не добавлялась, по крайней мере заметки 2013 посчитаны чистым md5. _________________ pb622 |
| | | transient Кандидат в члены клуба The eBook
Joined: 10 Mar 2012 Posts: 310
| Posted: 30.03.2014 15:41 | |
| все равно не понял. Как это понять "в конец книги"? Т.е. в конец djvu- или pdf-файла записывается? Но тогда:
1. файл станет невалидным. 2. а зачем?
Или что имеется в виду?? В момент вычисления добавляется, как строка? Хм, надо проверить. Только зачем это делать, все равно вопрос... Мне вообще непонятно, зачем тут md5sum...
У одного файла у меня накопилось 16 вариантов инфо-файлов, жесть. У всех md5sum разные, у некоторых не совпадает md5sum в имени и в тэге внутри. |
| | | pal Член клуба The eBook
Joined: 08 Jan 2012 Posts: 1510
| Posted: 30.03.2014 17:11 | |
| Думаю, что берется md5sum(4096 байт с начала файла + 4096 байт с конца). _________________ Кто хочет действовать, тот ищет возможности, кто не хочет — ищет причины. |
| | | transient Кандидат в члены клуба The eBook
Joined: 10 Mar 2012 Posts: 310
| Posted: 30.03.2014 18:52 | |
| Quote: | Думаю, что берется md5sum(4096 байт с начала файла + 4096 байт с конца). |
о как
А есть ли хэдер и либа, где есть текущая функция, это реализующая? Ибо сделать-то этот не(?!)хитрый алгоритм можно, но ведь в следующей прошивке опять поменяется поди?!
Ну и во-вторых - а если длина файлика менее 4 килобайт, то будет md5sum файла? |
| | | iamthebest Искушенный участник форума
Joined: 29 Mar 2013 Posts: 63
| Posted: 30.03.2014 19:56 | |
| Разве способ с добавлением размера файла не подошел? У меня получаются циферки идентичные с именем файла и полем md5sum. _________________ pb622 |
| | | pal Член клуба The eBook
Joined: 08 Jan 2012 Posts: 1510
| Posted: 31.03.2014 14:07 | |
| transient wrote: | Quote: | Думаю, что берется md5sum(4096 байт с начала файла + 4096 байт с конца). |
о как
А есть ли хэдер и либа, где есть текущая функция, это реализующая? Ибо сделать-то этот не(?!)хитрый алгоритм можно, но ведь в следующей прошивке опять поменяется поди?!
Ну и во-вторых - а если длина файлика менее 4 килобайт, то будет md5sum файла? |
Считает эту сумму функция inkview
Code: | void MD5PartFile(const char *src, unsigned char *r) |
iamthebest прав - длина файла тоже участвует в формировании хеша.
Code: | ls -l /mnt/ext1/Quick\ Tour\ PocketBook.pdf -rwxrwxrwx 1 root root 292201 Feb 4 16:50 /mnt/ext1/Quick Tour PocketBook.pdf
ls /mnt/ext1/system/config/Active\ Contents/ Quick Tour PocketBook.pdf_A_0db611bffc37e672b27de3dfb7f62522.files Quick Tour PocketBook.pdf_A_0db611bffc37e672b27de3dfb7f62522.html
expr 292201 - 4096 288105
# dd if=/mnt/ext1/Quick\ Tour\ PocketBook.pdf bs=1 count=4096 > /tmp/q.txt 4096+0 records in 4096+0 records out # dd if=/mnt/ext1/Quick\ Tour\ PocketBook.pdf bs=1 count=4096 skip=288105 >> /tm p/q.txt 4096+0 records in 4096+0 records out # echo -n 292201 >>/tmp/q.txt # md5sum /tmp/q.txt 0db611bffc37e672b27de3dfb7f62522 /tmp/q.txt |
Вроде сходится Что происходит при размере файла <4K - надо смотреть.. Но не думаю ,что оно того стОит .
В более старых прошивках, скорее всего, был другой алгоритм. Этот работает быстрее _________________ Кто хочет действовать, тот ищет возможности, кто не хочет — ищет причины. |
| | | transient Кандидат в члены клуба The eBook
Joined: 10 Mar 2012 Posts: 310
| Posted: 31.03.2014 15:21 | |
| ну это уже лучше! Я-то как раз токо что проверил под cygwin все способы выше и не один не сработал (ну для моей прошивки)... |
| | | transient Кандидат в члены клуба The eBook
Joined: 10 Mar 2012 Posts: 310
| Posted: 28.11.2014 16:28 | |
| pal, а не подскажите по поводу спецификаций файлов в "Active Contents". Что там файлы в html-формате и инфа хранится в коментах вида
Code: | <tr><td> <!-- type="1" level="0" position="7" --!> <b><font color="#000000" size="5" face="Arial"><div style="padding-left:0px">Содержание </div></font></b><br> </td></tr>
|
это я понял. Здесь, я полагаю:
type="1" означает, что это элемент встроенного содержания (оглавления),
type="4" означает, что это элемент вручную введенной заКладки, а type="2" и type="3" что означают?
С позицией более-менее ясно (хотя, например, у pdf-файлов она бывает крайней экзотичной)
С нумерацией level'ов в общем-то понятно, хотя у некоторых она начинается с 1, а у некоторых — с 0. Почему?
Теперь вопросы по заголовку:
Code: | <!-- version="2" --!> <!-- filepath="/mnt/ext2/PRO/Linux/Love/Robert_Lav_Linux.Sistemnoe_programm irovanie_.djvu" content="1" bookmark="0" note="0" marker="0" comment="0" pen="0" snapshot="0" rtl="0" --!> <!-- md5sum="00f01e2bd0e3132bc087da2a40020000" --!>
|
С md5sum мы разбирались полгода назад уже. Что означает content="1", полагаю, что означает, что данный файл содержит оглавление, вытащенное из исходного файла-книжки. Чем marker=1 отличается от pen=1? Что означают другие поля? Например rtl="1"? Да и другие?
Почему, даже если в этом конкретном файле помимо элементов исходного содержания (оглавления)
Code: | <tr><td> <!-- type="1" level="0" position="7" --!> <b><font color="#000000" size="5" face="Arial"><div style="padding-left:0px">Содержание </div></font></b><br> </td></tr>
|
есть и
Code: | <tr><td> <!-- type="4" level="3" position="0000000000000000000000374" --!> <b><font color="#000000" size="5" face="Arial"><div style="padding-left:75px">Закладка</div></font></b><br> </td></tr>
|
в "заголовке" файла не указано bookmark="0", а только content="1"? Другими словами, может несколько полей быть равными единице, типа так:
Code: | <!-- version="2" --!> <!-- filepath="/mnt/ext2/PRO/Linux/Love/Robert_Lav_Linux.Sistemnoe_programm irovanie_.djvu" content="1" bookmark="1" note="0" marker="0" comment="0" pen="0" snapshot="0" rtl="0" --!> <!-- md5sum="00f01e2bd0e3132bc087da2a40020000" --!>
|
(а если нет, то зачем столько полей?)
Я взялся ваять скрипт (а может выйдет go-приложение, посмотрим) для вычистки в своих контент-файлах (одна книжка, например, имеет 16 версий таких контент-файлов, и есть проблемы теперь при работе с ней)
Last edited by transient on 28.11.2014 22:13; edited 4 times in total |
| | | biv_sumy Член клуба The eBook
Joined: 20 Jul 2009 Posts: 18808
Location: Сумы, Украина
| Posted: 28.11.2014 16:35 | |
| transient wrote: | что это элемент вручную введенной заметки, а type="2" и type="3" что означают? |
А попробуйте закладку поставить и цитату выделить, вполне возможно что это и есть закладка и цитата. _________________ PB 602Grey, PB A7, NSTGL +PB Power Bank. |
| | | transient Кандидат в члены клуба The eBook
Joined: 10 Mar 2012 Posts: 310
| Posted: 28.11.2014 17:02 | |
| я сделал опечатку, (в посте выше уже исправил), надо так:
Code: | type="4" означает, что это элемент вручную введенной заКладки, а type="2" и type="3" что означают? |
biv_sumy, я про это как-бы примерно догадывался но хотелось бы точные офиц. спеки, да и вопросов у меня всё ж больше вышло, чем только эти два. Так что ждем!! |
| | | transient Кандидат в члены клуба The eBook
Joined: 10 Mar 2012 Posts: 310
| Posted: 29.11.2014 13:33 | |
| пока ответ от pal'а на пост libroom.net/viewtopic.php?p=1199080#1199080 выше ожидается, позволю себе гипотезу, что информация в заголовке вида
Code: | <!-- version="2" --!> <!-- filepath="/mnt/ext2/PRO/Linux/Love/Robert_Lav_Linux.Sistemnoe_programm irovanie_.djvu" content="1" bookmark="0" note="0" marker="0" comment="0" pen="0" snapshot="0" rtl="0" --!>
|
означает лишь происхождение данного контент-файла. Я ранее думал, что она указывает, какого рода инфа содержится в данном файле. Но как я писал уже выше, даже в контент-файлах, содержащих смешанную инфу (оглавление, закладки, заметки, и т.п.), установленный первоначально заголовок не меняется. |
| | |
| You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
© Libroom, 2021
|