The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск mmc-utils 1.0, утилит для управления картами памяти MMC и SD

26.06.2025 16:03

Опубликован релиз набора утилит mmc-utils 1.0, предназначенного для низкоуровневой настройки карт памяти MMC, eMMC и SD из пространства пользователя. Выпуск отмечен как первый официальный релиз (проект развивается с 2012 года). Код написан на языке Си и распространяется под лицензией GPLv2.

Утилиты могут использоваться для чтения регистров CSD (параметры карты), CID (идентификатор карты) и SCR (конфигурация карты), установки защиты от записи (временной или постоянной, а также затрагивающей лишь отдельные регионы устройства), настройки аутентификации и конфигурирования специфичных для eMMC возможностей, таких как размер сектора, BKOPS, управление кэшем и аппаратный сброс.

Для работы mmc-utils требуется система с "настоящим" хостом mmchci. Устройства, наподобие usb-картридеров, представляющие доступ к картам хранения в форме "USB mass storage", не подходят для работы с этими утилитами, так как не позволяют отправлять на устройство команды MMC.

  1. Главная ссылка к новости (https://lore.kernel.org/linux-...)
  2. OpenNews: Представлена техника атаки на микроконтроллеры, встроенные в MicroSD-карты
  3. OpenNews: Выпуск UDisks 2.10.0 с поддержкой NVMe
  4. OpenNews: Доступен набор утилит для управления SSD-накопителями - nvme-cli 2.0
  5. OpenNews: Представлен LibreBMC, открытый BMC-контроллер на базе архитектуры POWER
  6. OpenNews: В чипах ESP32 выявлены недокументированные команды для управления контроллером Bluetooth
Автор новости: Аноним
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63472-mmc-utils
Ключевые слова: mmc-utils, mmc, sd
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:44, 26/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    И что позволяет делать простому смертному эта штука?
     
     
  • 2.2, Аноним (2), 16:51, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как-то видеорегистратор переводил флешки в режим "только для чтения". Вероятно это должно помочь. Где взять нужные ридеры?
     
  • 2.3, Аноним (3), 16:51, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Во втором абзаце новости написано.
     
  • 2.4, Аноним (-), 16:53, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > И что позволяет делать простому смертному эта штука?

    Простому смертному лучше не трогать лапками низкоуровневые сервиснвые утилиты типа этого, hdparm, всяких flashrom, утилсов scsi и проч. Целее оборудование будет.

    Менее простому смертному это позволяет например настроить ряд параметров (u)SD/(e)MMC. Кроме всего прочего - они все например умеют ReadOnly. Как временный - так и перманентный. Ахтунг: перманентный readonly реально - перманентный. И снять его потом - нельзя.

    С другой стороны так можно сделать себе "верифицированную" бутявку с например линем, где софт 100% тот который задумано и никакой руткит-буткит-малварь не сможет это переписать вот хоть там что. Правда и обновить этот софт вы тоже не сможете.

     
     
  • 3.5, Аноним (-), 16:57, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Перманентный б̶а̶н̶ readonly это какая-то фьюза пережигается?
    Тогда оно, по идее, должно быть в стандарте.
    Следовательно у китайцем может быть, а может нет)
     
     
  • 4.11, Аноним (-), 18:54, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Перманентный б̶а̶н̶ readonly это какая-то фьюза пережигается?

    Как минимум, карты где-то внутри, в out of band области запоминают эту настройку - и по регламенту перманантный readonly - one-way! Временный - снимается. Постоянный - нет.

    > Тогда оно, по идее, должно быть в стандарте.

    А оно и есть в стандарте.

    > Следовательно у китайцем может быть, а может нет)

    Контроллеры и его фирмвару не так уж много фирм делают и скорее всего - они спеки все же реализовали. Можете поэкспериментировать и посмотреть. Только учтите что снять пермарентнй RO реально - не получится потом.

     
     
  • 5.28, Аноним (28), 10:25, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Есть ссылка на "прочитать" об этом? Не понимаю как работает. Т.е. прошивка на карте памяти такую функцию реализовывает?
     
     
  • 6.30, Аноним (-), 18:13, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >  Есть ссылка на "прочитать" об этом? Не понимаю как работает.

    Накормить поискарь словами типа SD Memory Card Specification 2.0 - и изучайте себе что оно там умеет. Аналогично для eMMC. Официально для SD урезанные спеки доступны легально но там все есть. Для eMMC вроде и полные - официально.

    > Т.е. прошивка на карте памяти такую функцию реализовывает?

    SD/eMMC состоит из микроконтроллера который рюхает команды интерфейса и массива флешпамяти за ним. Микроконтроллер делает
    1) Парсинг команд по интерфейсу и ответы на них.
    2) Вещи типа wear leveling, и вообще FTL

    Команды регламентированы в стандарте SD или eMMC. И конечно у него на самом деле куча настроек, своя фирмварь и что там еще. Часть настроек задефайнены в стандартном виде как регистры карты. На самом деле их конечно больше.

    С формальной точки зрения защита карты от записи - запись в карту содержимого регистра CSD (он частично записываемый), где установлен бит 13 (перманентный WP) или 12 (временный WP) - через CMD 27. Временный можно снять, постоянный - фигвам. По крайней мере, через официально специфицированный интерфейс снять уже не получится. Где CSD физически хранится и можно ли его переписать какими-то вендорспецифичными приколами и все же откатить эту диверсию - вопрос номер два, конечно. Но это настолко сложно и вендорспецифично - что в целом можно уповать что буткиты и проч обломаются. Особенно если потом это в usb ридер вставить, где отсылка команд SD/MMC не предусмотрена чисто технически и CMD27 и тем более вендорспецифика - до карты не долетит.

    В принципе если карту потом в usb ридер сунуть - можно и временный, ибо как всякие умники через usb ридер то CMD27 пропихнут? :) Правильно - скорее всего никак, в usb mass storage штатно такой абстракции - нет. Для этого придется карту в mmc host сунуть и там это снять.

     
  • 3.7, Аноним (7), 17:58, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Про перманентный ридонли, не знал, круто! Реально открывает ряд возможностей, как раз идеально для загрузочных флешек(если нужен софт по новее, просто покупается новая флешка), а так же для эмбедовки всякой - тот самый вариант лечения всех болезней перезагрузкой.
    Лично использую сабж чисто для мониторинга износа флешек.
     
     
  • 4.14, Аноним (14), 19:34, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Про перманентный ридонли, не знал, круто! Реально открывает ряд возможностей,

    Именно. Readonly boot loader, вохможно с вшитым "root of trust" который не получится заменить вот хоть там что. И перезпписать на более удобный для хацкера - тоже не получится.

    Так можно сделать схему доверяемой загрузки наподобие того что гугл в хромобуках практикует. С поправкой на то что служит это все тому кто такую штуку скроил, и это довольно сложно оспорить вот так сразу.

     
     
  • 5.17, пох. (?), 20:11, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    может, скажем ему?  А, не, улыбаемся и машем...

     
  • 3.21, Аноним (21), 02:46, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А если перевёл память телефона в перманентный read only? Один клиент так сделал и в результате чего ничего не помогает... Ни боксы, jtag, edl, isp... Только перепайка чипа памяти на плате телефона...
     
     
  • 4.31, Аноним (-), 18:47, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А если перевёл память телефона в перманентный read only?

    Если ему именно перманентный WP выставили через CSD бит 13 - упс, тогда вам все же придется отпаять eMMC, и на другой заменить, в общем случае. В eMMC _свой_ микроконтроллер встроен, рюхающий MMC интерфейс, с _своим_ набором настроек и мнением что и кому (не)льзя делать, на JTAG основного проца ему...

    Правда не очень понятно как клиент на такое вообще из#$%нуться сумел. Иногда sd/eMMC и сами в ридонли уходят - когда резервных блоков не осталось на ремап. Тут упс, оно просто отжило свое, это "safe mode" такой. Данные выцепить можно а сверх того - фиг.

    Если что вон те утилсы - умеют SD/MMC команды в "MMC хост" пулять. Но для этого они должны быть ессно запущены на проце девайса. И перманентный WP они все же не снимут. Но может дело не в нем?

    Посмотреть CSD как минимум в норм линухе можно cat /sys/class/mmc_host/mmc0/mmc0:aaaa/csd
    Выдаст CSD (128 бит регистр). Вместо aaaa может быть другое число, ls /sys/class/mmc_host/mmc0/ - и смотрите как оно обозвано.

    > Один клиент так сделал и в результате чего ничего не помогает...
    > Ни боксы, jtag, edl, isp... Только перепайка чипа памяти на плате телефона...

    Ну вот блин да. Если выставить перманентный readonly через CSD - бит 13 - тогда официально его вообще не того. Можно ли неофициально такое откатить - извратом с вендорскими командами - кто ж его там знает, оно вендорспецифично и такое исследование будет стоить - как товарный состав этих телефонов.

     
  • 3.25, Ю.Т. (?), 09:09, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я сейчас нуб в этом, а как там с долговечностью хранения, ведь вроде нужна периодическая перечитка полного содержимого (перезарядка кондеров) нужна, это не считается на низком уровне записью?
     
  • 3.27, Смузихлеб забывший пароль (?), 10:11, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Тут скорее вопрос, помогут ли и как эти приблуды, например, восстановить данные с помершей карты памяти( иные флешки, кстати, содержали внутри микро-сд + микро-картридер с юсб-выходом )
    Ибо из статьи оущение, что предлагается даром ненужный функционал - вроде чтения никому ненужных регистров и перевод карты памяти/ отдельных блоков на только_чтение. Ну ахренеть просто - взять - и сделать карту памяти незаписываемой!
     
  • 2.16, пох. (?), 20:10, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ровно нихрена. Откуда у простого смерда mmcblk устройство возьмется?

     
     
  • 3.19, Аноним (19), 22:26, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    У меня на ноуте, если во встроенный картридер вставить microSD, появляется mmcblk-устройство.
     
     
  • 4.32, Аноним (-), 18:52, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > У меня на ноуте, если во встроенный картридер вставить microSD, появляется mmcblk-устройство.

    Тебе кажись повезло и походу тебе настоящий MMC HCI подогнали, им можно с сабжевыми утилсами поразвлечься. Если перспектива превратить какую-нибудь карту в тыкву не пугает :)

    Заодно можешь смотреть всякие CID, CSD, mfd ID карты или что там еще, /sys/class/mmc_host/... живет, линух вывешивает что с карты прочитал.

     
  • 3.24, Аноним (24), 08:45, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ноуты на памяти emmc, одноплатники, кардридеры.
     
  • 2.23, Аноним (23), 08:34, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В SLC-режим память перевести. Теоретически.
    https://forums.raspberrypi.com/viewtopic.php?p=1118280&sid=90e05b96973a8750689
     
  • 2.26, winorun (?), 09:24, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Например у меня планшет работает только с одной картой на 16 гб на полной скорости, с остальными(не зависимо от размера) работает на низкой скорости. Чем эта одна карта отличается от остальных как раз и смогу узнать с помощью этой программы
     
     
  • 3.29, Аноним (29), 14:51, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Выравниванием раздела при форматировании? Прошивку копать для этого вообще не нужно.
     

  • 1.8, dannyD (?), 18:19, 26/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    годно, нужно, но я уже забыл когда последний раз полнорамерной SD пользовался... да и вообще SD/MMC.
     
     
  • 2.33, Аноним (-), 18:54, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > годно, нужно, но я уже забыл когда последний раз полнорамерной SD пользовался...
    > да и вообще SD/MMC.

    Это вообще прежде всего для eMMC сватается, но до кучи частично рюхает и (u)SD. Они на самом деле близкородственные стандарты, просто от разных стандартизаторов. Электрически и логически примерно одно и то же, плюс-минус несколько команд.

     

  • 1.9, eugene_martein (ok), 18:48, 26/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Утилита полезна для создания защищённых электронных журналов встраиваемых устройств.
     
  • 1.10, Аноним (10), 18:51, 26/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1. Как понять "настоящий"? Картридер ноутбука к нему относится?
    2. С microSD работает?
     
     
  • 2.12, Аноним (12), 19:25, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > 1. Как понять "настоящий"? Картридер ноутбука к нему относится?

    Скорее всего нет, обычно они на USB-шине сидят, а внутри он точно такой же как купленный за $5 на Амазоне.

    > 2. С microSD работает?

    Чего ж нет-то?

     
  • 2.13, Аноним (-), 19:29, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > 1. Как понять "настоящий"? Картридер ноутбука к нему относится?

    Если видите что-то типа




    [    3.823027] mmc0: host does not support reading read-only switch, assuming write-enable
    [    3.835794] mmc0: new high speed SD card at address aaaa


    ...и у вас есть /dev/mmcblk* - значит это оно. Но у ноутов ридер часто бывает тоже usb-бриджом и тогда это не лучше usb картридера, кроме того что оно - встроено.

    Такое часто есть на одноплатниках. Ну и мобилках, черт знает насколько сложно затолкать сабж утилиты на ведроида, но если у вас есть ведрофон с uSD слотом и дистр линя в чруте - возможно прокатит запустить сабж и там.

    > 2. С microSD работает?

    До некоторой степени. Readonly ставить вроде умеет, и CSD смотреть и проч. Технически (u)SD и (e)MMC это близкие и довольно плотно связанные стандарты. У них есть _некоторые_ отличия в _деталях_. И вот тут конечно возможны некоторые варианты на тему что в конкретнйо ситуации сабж рюхает. А для понимания о чем все это вообще - можно почитать стандарты на SD и eMMC. Да, если в вашем ведрофоне eMMC и удалось сабж завести - ктулху вас упаси параметры eMMC крутить, если вы кирпича не хотите получить. При том в некоторых случаях - перманентного.

     
     
  • 3.15, Аноним (15), 20:01, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    То есть так?
    /dev/mmcblk0: 7,45 GiB, 7994343424 байт, 15613952 секторов
     
     
  • 4.34, Аноним (-), 18:57, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > /dev/mmcblk0: 7,45 GiB, 7994343424 байт, 15613952 секторов

    Походу настоящий mmc hci. См /dev/mmcblk* и вон там написано как например его CID/CSD посмотреть например.

     

  • 1.18, Аноним (-), 20:56, 26/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >Код написан на языке Си и распространяется под лицензией GPLv2

    Скажите разрабам, чтобы лицензию переводили на GPLv3.

     
  • 1.22, Аноним (22), 06:21, 27/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А дампануть прошивку MMC, eMMC и SD на диск эта утилита может?
     
     
  • 2.35, Аноним (-), 19:05, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А дампануть прошивку MMC, eMMC и SD на диск эта утилита может?

    Вот именно эта, именно так сразу - врядли. Но если вы накопаете вендорские команды для такогого то можете на ее примере посмотреть как это слать и - подпатчить.

    В какой-то из спек eMMC вроде как запилили команды для аплоада новой фирвари, по типу как для SATA, но про ее чтение там вроде ничего не было. Чисто для апдейта. И тоже вероятно вендорспецифично весьма.

     
  • 2.36, Zig мой Zig (?), 13:00, 28/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У вас blk и dd, что вам ещё нужно
     
     
  • 3.37, Аноним (-), 15:47, 28/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > У вас blk и dd, что вам ещё нужно

    Прошивку контроллера карты вы так ессно не получите. И даже просто в boot area оной сунуться - весьма зависит от.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру