md5sum чего в Active Contents??

 
Libroom Forum IndexPocketBookPocketBook Free
AuthorMessage

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба 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 в инфо-файле и его имени приводит к удалению этого файла (и потери закладок, сделанных ранее)


Вот и думаю, какие есть еще версии?
 
View user's profile ^

iamthebest
Искушенный участник форума

Искушенный участник форума



Joined: 29 Mar 2013
Posts: 63



Posted: 30.03.2014 13:26    

Quote:
Вот и думаю, какие есть еще версии?

перед md5sum в конце файла дописывается размер?
_________________
pb622
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба 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. Но иногда они меняются, и тогда происходят глюки. Пока вижу, что со сменой прошивки происходят проблемы...
 
View user's profile ^

iamthebest
Искушенный участник форума

Искушенный участник форума



Joined: 29 Mar 2013
Posts: 63



Posted: 30.03.2014 15:24    

не, я про то что в конец книги дописывается размер файла перед подсчетом md5.
Например, если файл такой
Code:
"<html>111</html>"

то md5sum станет
Code:
md5("<html>111</html>16")


в старых прошивках длина не добавлялась, по крайней мере заметки 2013 посчитаны чистым md5.
_________________
pb622
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 30.03.2014 15:41    

все равно не понял. Как это понять "в конец книги"? Т.е. в конец djvu- или pdf-файла записывается?
Но тогда:

1. файл станет невалидным.
2. а зачем?

Или что имеется в виду?? В момент вычисления добавляется, как строка? Хм, надо проверить. Только зачем это делать, все равно вопрос... Мне вообще непонятно, зачем тут md5sum...

У одного файла у меня накопилось 16 вариантов инфо-файлов, жесть. У всех md5sum разные, у некоторых не совпадает md5sum в имени и в тэге внутри.
 
View user's profile ^

pal
Член клуба The eBook

Член клуба The eBook



Joined: 08 Jan 2012
Posts: 1510



Posted: 30.03.2014 17:11    

Думаю, что берется md5sum(4096 байт с начала файла + 4096 байт с конца). Cool
_________________
Idea Кто хочет действовать, тот ищет возможности, кто не хочет — ищет причины.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 30.03.2014 18:52    

Quote:
Думаю, что берется md5sum(4096 байт с начала файла + 4096 байт с конца).

о как Shocked

А есть ли хэдер и либа, где есть текущая функция, это реализующая? Ибо сделать-то этот не(?!)хитрый алгоритм можно, но ведь в следующей прошивке опять поменяется поди?!

Ну и во-вторых - а если длина файлика менее 4 килобайт, то будет md5sum файла? Rolling Eyes
 
View user's profile ^

iamthebest
Искушенный участник форума

Искушенный участник форума



Joined: 29 Mar 2013
Posts: 63



Posted: 30.03.2014 19:56    

Разве способ с добавлением размера файла не подошел? У меня получаются циферки идентичные с именем файла и полем md5sum.
_________________
pb622
 
View user's profile ^

pal
Член клуба The eBook

Член клуба The eBook



Joined: 08 Jan 2012
Posts: 1510



Posted: 31.03.2014 14:07    

transient wrote:
Quote:
Думаю, что берется md5sum(4096 байт с начала файла + 4096 байт с конца).

о как Shocked

А есть ли хэдер и либа, где есть текущая функция, это реализующая? Ибо сделать-то этот не(?!)хитрый алгоритм можно, но ведь в следующей прошивке опять поменяется поди?!

Ну и во-вторых - а если длина файлика менее 4 килобайт, то будет md5sum файла? Rolling Eyes


Считает эту сумму функция 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


Вроде сходится Wink
Что происходит при размере файла <4K - надо смотреть.. Но не думаю ,что оно того стОит Wink.

В более старых прошивках, скорее всего, был другой алгоритм. Этот работает быстрее Wink
_________________
Idea Кто хочет действовать, тот ищет возможности, кто не хочет — ищет причины.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 31.03.2014 15:21    

ну это уже лучше!
Я-то как раз токо что проверил под cygwin все способы выше и не один не сработал (ну для моей прошивки)...
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба 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
 
View user's profile ^

biv_sumy
Член клуба The eBook

Член клуба 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.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 28.11.2014 17:02    

я сделал опечатку, (в посте выше уже исправил), надо так:
Code:
type="4" означает, что это элемент вручную введенной заКладки, а type="2" и type="3" что означают?


biv_sumy, я про это как-бы примерно догадывался Rolling Eyes но хотелось бы точные офиц. спеки, да и вопросов у меня всё ж больше вышло, чем только эти два. Так что ждем!! CoolArrow
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба 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" --!>

означает лишь происхождение данного контент-файла. Я ранее думал, что она указывает, какого рода инфа содержится в данном файле. Но как я писал уже выше, даже в контент-файлах, содержащих смешанную инфу (оглавление, закладки, заметки, и т.п.), установленный первоначально заголовок не меняется.
 
View user's profile ^
Libroom Forum IndexPocketBookPocketBook FreeAll times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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