Найти в Дзене

Создание резервной копии карты памяти с навигацией Navionics

Продолжая тему водно-моторной электроники, хочу сегодня рассказать о том, как можно сделать копию SD карты Navionics.
Начнём с того как родилась идея. А всё началось с желания видеть рыбу и поиска эхолота. Так получилось, что мне повезло и удалось разжиться не просто эхолотом, а эхолотом с функцией картплоттера фирмы Lowrance, моделью Elite Ti. Кстати о переделке этого прибора в Elite Ti2 я рассказал в своей предыдущей статье, ознакомиться можно по ссылке Переделка эхолота Lowrance Elite Ti. И грех было бы не воспользоваться функцией отображения карт на экране прибора, для этого была куплена uSD с навигацией от Navionics, регион 52XG. С этого всё и началось.
Давайте договоримся сразу, если вы не любите читать — я для вас записал небольшое видео с описанием процесса. Все интересующие вопросы можете задавать там в комментариях. Для остальных, продолжаем…
В один из дней меня посетила мысль о том, что я буду делать если карта памяти сдохнет физически. Такое ведь случается, даже с фирменным

Приветствую всех!
Продолжая тему водно-моторной электроники, хочу сегодня рассказать о том, как можно сделать копию SD карты Navionics.
Начнём с того как родилась идея. А всё началось с желания видеть рыбу и поиска эхолота. Так получилось, что мне повезло и удалось разжиться не просто эхолотом, а эхолотом с функцией картплоттера фирмы Lowrance, моделью Elite Ti. Кстати о переделке этого прибора в Elite Ti2 я рассказал в своей предыдущей статье, ознакомиться можно по ссылке Переделка эхолота
Lowrance Elite Ti.

И грех было бы не воспользоваться функцией отображения карт на экране прибора, для этого была куплена uSD с навигацией от Navionics, регион 52XG. С этого всё и началось.
Давайте договоримся сразу, если вы не любите читать — я для вас записал небольшое видео с описанием процесса. Все интересующие вопросы можете задавать там в комментариях.

Для остальных, продолжаем…
В один из дней меня посетила мысль о том, что я буду делать если карта памяти сдохнет физически. Такое ведь случается, даже с фирменными картами памяти и тогда прощай мои карты. Тогда я просто попробовал перекопировать содержимое карточки на другую.

Содержимое карты памяти Navionics
Содержимое карты памяти Navionics

Ничего из этого не вышло. При установке в картплоттер карта не увиделась системой.
Далее я пошёл другим путём — на всякий случай, сделал образ всей карты памяти и начал удалять с рабочей карты одни типы файлов за другими. Сначала удалил папку Garmin, она взялась тут непонятно откуда, возможно после установки uSD карточки в какой-то навигатор Garmin:

Удаление папки Garmin
Удаление папки Garmin

Это действие не повлияло на загрузку карт.
Далее были удалены вот эти файлы:

Удаление неизвестных файлов
Удаление неизвестных файлов

Это тоже не помешало успешной загрузке карт.
Далее был удалён файл eligibility.xml:

Удаление файла eligibility.xml
Удаление файла eligibility.xml

Удаление этого файла тоже никак не сказалось на процессе.
И вот дошла очередь до файла config.xml:

Удаление файла config.xml
Удаление файла config.xml

Но и он не вызвал сбой при загрузке. Хотя с этим файлом была замечена одна особенность — после установки карты памяти в картплоттер, этот файл был автоматически создан самим прибором.
Мне стало интересно, чего же такого особенного содержит этот файл. Вот его содержимое:

Содержимое файла config.xml
Содержимое файла config.xml

Это обычный *.xml файл описывающий какие-то параметры или настройки. Сразу бросились в глаза два поля — cardInfo и plotterInfo:

Содержимое файла config.xml
Содержимое файла config.xml

Первый явно содержит какой-то зашифрованный идентификатор, а второй — информацию о картплоттере, в который эта карта установлена или устанавливалась ранее.
Забегая вперёд, содержимое именно этого файла привело к решению задачи копирования карты памяти. Но не будем пока забегать вперёд, всему своё время.
Последней остающейся на карте памяти папкой была папка с названием Navionic:

Удаление папки Navionic
Удаление папки Navionic

И как и следовало ожидать, удаление именно этой папки остановило загрузку карт в прибор. Значит эта папка и содержит сами карты:

Подкаталог с картами
Подкаталог с картами

Теперь можно вернуться к содержимому файла config.xml, а именно к полю cardInfo. Можно сделать предположение, что сами данные карт Navionics содержат в себе информацию о неком аппаратном идентификаторе карты и если содержимое карты просто перекопируется на другую, незнакомую, карту памяти, то программный и аппаратный идентификаторы не совпадают и карты не распознаются устройствами.
Я начал искать в интернете информацию о том, есть ли у физических карт памяти какой-либо аппаратный идентификатор. И, естественно, такая информация нашлась — у всех SD карт есть уникальный идентификатор и он называется CID. И раз есть идентификатор, значит его можно прочитать. С этим возникли некоторые трудности, как оказалось, прочитать этот идентификатор можно только на устройстве под управлением операционной системой Linux и только через cardreader, который соединён с процессором не через USB. Если с Linux-ом проблем особых нет — поставил виртуальную машину и вперёд, то вот кардридеры на всех современных ноутбуках и ПК подключены именно по USB интерфейсу.
На помощь пришла рабочая отладочная плата на основе процессора i.MX6:

Отладочная плата
Отладочная плата

С помощью этой платы и программы Putty удалось считать CID карточки, находящийся по пути /sys/block/mmcblk0/device/cid (mmcblk0 конкретно в моей отладочной плате, в других платах может быть другим, например mmcblk1 или mmcblk2):

CID
CID

И так, полдела сделано, CID считан, теперь нужно найти способ записать этот идентификатор в другую карту памяти. С этим возникла проблема — ещё пару лет назад можно было купить карты памяти Samsung Evo Plus,
в которых с помощью специального программного обеспечения можно было переназначать CID, но сейчас эта лавочка прикрылась и современные карты этого не позволяют. Идентификатор карты прописывается на заводе однократно, при изготовлении.
Но, как говорил барон Мюнхгаузен, безвыходных ситуаций не бывает и решение всегда найдётся, стоит только лишь очень сильно этого захотеть. Решение нашлось на
Aliexpress, через поиск там можно найти огромное множество предложений о продаже карт памяти с услугой записи уникального CID заказчика. Я воспользовался услугами одного из продавцов и заказал две карточки для экспериментов. По приезду карточек я проверил через отладочную плату их CID, всё совпало. Записал на карту памяти папку Navionic и установил в прибор. Карты загрузились - задача решена!
Надеюсь я не сильно утомил вас большим количеством текста, но уж очень хотелось описать весь процесс как можно подробнее.
В конце статьи хочу акцентировать особое внимание на том, что эта статья написана не с целью подстрекательства к действиям по получению коммерческой выгоды от копирования лицензионных карт компании Navionics и их последующей продажи, а лишь для того чтобы люди могли сделать резервную копию своих карт, не боясь выхода из строя физического носителя оригинальной карты.