Ошибка заголовков - работа с файлом cbr с Junrar - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь выяснить, как некоторые приложения Comi c Reader, даже используя ту же библиотеку, могут читать следующий файл с помощью Junrar, а я не могу.

https://mega.nz/?fbclid=IwAR2QwY9Fqunc74G7FJLAF_1i54MvMRl9v3PIkJYfV0YbKrSpI4UzHU6WEM4# ! XW5AxKbI! J9y9jsWt7Z8HeTxK9_O5c2JFHrBo1WLT8E3FSuT5VS8

Возможно, файл поврежден, но некоторые Android приложения могут прочитать этот файл. Почему?

Я вижу отладку, когда нужно вычислить headerType, присваивает значение 3 (байт), но заголовки с этим значением отсутствуют.

public BaseBlock(byte[] baseBlockHeader) {

    int pos = 0;
    this.headCRC = Raw.readShortLittleEndian(baseBlockHeader, pos);
    pos += 2;
    this.headerType |= baseBlockHeader[pos] & 0xff;
    pos++;
    this.flags = Raw.readShortLittleEndian(baseBlockHeader, pos);
    pos += 2;
    this.headerSize = Raw.readShortLittleEndian(baseBlockHeader, pos);
}

Значение headerType должно совпадать с одним из следующих значений:

MainHeader((byte) 0x73),
MarkHeader((byte) 0x72),
FileHeader((byte) 0x74),
CommHeader((byte) 0x75),
AvHeader((byte) 0x76),
SubHeader((byte) 0x77),
ProtectHeader((byte) 0x78),
SignHeader((byte) 0x79),
NewSubHeader((byte) 0x7a),
EndArcHeader((byte) 0x7b);
...