Скрытые (?) файлы в JFFS2

При перечислении содержимого файловой системы JFFS2 из коммерческого продукта, определенные имена файлов видны или нет, в зависимости от того, как / где смонтирован образ.
Все имена файлов видны из системной консоли в собственной среде JFFS2, т. Е. Когда образ установлен в последовательной флэш-памяти и смонтирован встроенной целью (версия Linux 3.4.43-gk). Собственная команда ls является частью установленного BusyBox v1.20.2.

Копия раздела MTD в последовательной флэш-памяти была сделана с помощью U-Boot. На хосте ПК образ файловой системы JFFS2 находится в / dev / mtdblock0, который, в свою очередь, монтируется. (Чтобы устранить ошибку "Нет свободного места на устройстве" при добавлении изображения, эмулируемое устройство MTD увеличивается с помощью sudo modprobe mtdram total_size=65536,
В этом случае определенные имена файлов (около семи из 55) больше не отображаются командой ls.
"Скрытые" имена файлов, похоже, не соответствуют ни одному шаблону.
Некоторые из файлов содержат текст ASCII (например, hwcfg.ini), а некоторые являются (tar'd) двоичными исполняемыми файлами (например, p2pcam.tar.gz).
Подобные типы файлов (например, cloud.ini и sdc_tool) всегда перечислены в любом случае.

Какой механизм используется, чтобы скрыть или раскрыть эти имена файлов?
Что я могу перепрограммировать на своем хосте Ubuntu, чтобы получить те же списки, что и эта встроенная система?

Встроенная система представляет собой IP-камеру, использующую SoC Goke GK7102 с последовательной вспышкой 16 МБ.


добавление

Текстовый поиск файла изображения JFFS2, т.е. strings jffs2.img | grep <hidden_filename>, действительно показывает, что "скрытые" имена файлов встречаются (два или три экземпляра) внутри изображения.
Тогда как имя файла cloud.ini, которое всегда отображается, встречается только одно.
Текст имен файлов является частью структуры jffs2_raw_dirent (числа шестнадцатеричные с пропуском начальных нулей):

struct jffs2_raw_dirent         @52c2c      @1118e0     @43ccc3     @c943bc
{
    jint16_t magic;             1985        1985        1985        1985
    jint16_t nodetype;          e001        c001        c001        e001
    jint32_t totlen;            31          31          31          31
    jint32_t hdr_crc;           4282d92d    4282d91d    4282d91d    4282d91d
    jint32_t pino;              01          01          01          01
    jint32_t version;           05          10          1a          70
    jint32_t ino;               07          12          2f          5e
    jint32_t mctime;            581894ef    59536b07    06          10
    __u8 nsize;                 09          09          09          09
    __u8 type;                  08          08          08          08
    __u8 unused[2];             00 00       00 00       69 81       00 00
    jint32_t node_crc;          51e406cf    2c15ae6c    86a28f90    60eb2e54
    jint32_t name_crc;          60f2ce11    c6341d20    c6341d20    c6341d20
    __u8 name[0];               "cloud.ini" "hwcfg.ini" "hwcfg.ini" "hwcfg.ini"
};

0 ответов

Другие вопросы по тегам