StreetPass 2: Восстание из пепла
Алексей Братковский
Внимание! Приложение для инжектирования StreetPass данных в CECD всё ещё находиться в разработке (15 марта 2019).
Внимание! Пока это кривоватая альтернатива умершему HomePass.
Все данные StreetPass пользователя находятся в одном файле, а это значит, что им можно делиться с другими. Кроме того одним и тем же файлом можно пользоваться неограниченное количество раз.
Файлы пользователей и англоязычную инструкцию можно найти здесь: https://docs.google.com/spreadsheets/d/1A3IReJh9cj-5kTgkFHW_oZ-WLg2Oz79gr-MiMXVhJmU/edit#gid=0
Пост на реддите здесь: https://www.reddit.com/r/3dshacks/comments/a7qh8n/streetpass_2_rise_from_the_ashes/?utm_medium=android_app&utm_source=share
Тема на gbatemp здесь: https://gbatemp.net/threads/streetpass-2-rise-from-the-ashes.526749/
Детальная англоязычная информация по файлам StreetPass: https://www.reddit.com/r/3dshacks/comments/70gwgu/everything_you_wanted_to_know_about_the_3ds_but/
Файл в котором содержаться данные StreetPass называется CECD (Chance Encounter Communications Data) и находиться по пути ctrnand/data/ID0/sysdata/00010026/.
Внимание! Инжектирование файла заменяет данные для каких игр был активирован StreetPass на те, что находятся в инжектируемом файле.
- Переименовываем скачанный CECD файл в 00000000 и закидываем его на карту памяти консоли в любое удобное место.
- Запускаем на консоли GodMode9, выбираем [0:] SDCARD и переходим в папку со скачанным CECD файлом.
- Затем нажимаем на консоли R+крестовина вправо, чтобы перейти на другую панель, выбираем [1:] SYSNAND CTRNAND и переходим к нашему "оригинальному" CECD файлу по пути ctrnand/data/*ID0*/sysdata/00010026/. Жмём на консоли кнопку А и в меню на нижнем экране выбираем copy to gm9/out (таким образом мы создаём резервную копию нашего файла).
- Затем нажимаем на консоли R+крестовина влево, чтобы вернуться в предыдущую панель, и нажимаем на консоли кнопку Y.
- Затем нажимаем на консоли R+крестовина вправо и снова нажимаем на консоли кнопку Y.
- Затем выбираем на нижнем экране Copy path(s), разблокируем запись в SysNAND путём ввода комбинации клавиш указанной на нижнем экране. Затем выбираем пункт overwrite. После копирования файла отказываемся блокировать обратно запись в SysNAND нажатием кнопки В.
- Затем нажимаем на консоли кнопку А и выбираем на нижнем экране пункт Calculate CMAC + соглашаемся на исправление файла.
- Жмём на консоли кнопку Start чтобы загрузиться в систему и пользуемся StreetPass данными (идём в Площадь StreetPassMii).
Все передачи данных связанные со StreetPass находятся в CECD файле по пути ctrnand/data/*ID0*/sysdata/00010026/. Формат файла - DISA (https://www.3dbrew.org/wiki/DISA_and_DIFF#DISA_header), соответственно он может быть распакован с помощью 3ds-save-tool (https://github.com/wwylele/3ds-save-tool).
В родительском каталоге CECD файла находятся папки игр для которых активирован StreetPass и два файла с метаданными. "MBoxList____" это простой текстовый список StreetPass ID игр. Папки игр для которых активирован StreetPass всегда содержат подпапки InBox и OutBox, а также 4 MBox файла. Название игры находиться в файле 010, в 050 - SPID , в 001 - неизвестные данные, в четвёртом файле находятся метаданные.
В папке InBox всегда находится Х+1 файл, где Х это количество раз получения данных через StreetPass (может равняться 0) + файл с метаданными. В папке OutBox всегда находятся 3 файла: 1 содержит данные для передачи, а 2 остальных - метаданные.
Таким образом именно в папке OutBox находятся данные которыми обмениваются консоли. Эта папка передаётся при каждом соединении для каждой игры для которой активирован StreetPass.
Если создать бэкап своего файла CECD после того как произошла передача данных через StreetPass, использовать эти данные в играх, а затем восстановить созданный ранее бэкап, то таким образом можно получить бесконечные StreetPass.