Лонгрид о работе Атмосферы, Кефире, стоке и семи-стоке

Лонгрид о работе Атмосферы, Кефире, стоке и семи-стоке

rashevskyv

Отказ от ответственности.

Я не несу ответственности за ваши консоли и не претендую на абсолютную достоверность во всех мелочах в нижеизложенном. Все технические моменты максимально упрощены для простоты изложения и восприятия. Если после прочтения текста у вас остались вопросы, пойдите попейте чаю и прочитайте текст еще раз. Ну нужно после каждого предложения бежать по чатам с криками "мне не понятно". Прочитайте текст полностью, хотя бы дважды, только потом задавайте вопросы. Спасибо

Что случилось с группой nincfw?

Группу забанили по просьбе Nintendo, что подтвердила техподдержка и Nintendo Россия. Старой группы больше нет.

  • Всегда актуальный адрес группы - vk.customfw.xyz
  • Всегда актуальная телега группы - tg.customfw.xyz

Что такое Atmosphere? 

Это кастомная прошивка, которая загружается из карты памяти в оперативную память приставки. Она не меняет никаких файлов во внутренней памяти консоли, только в оперативной памяти. Её автор, SciresM, против пиратства и создавал эту прошивку не для запуска какого-либо ПО в нарушение защиты (то есть, для запуска пиратки).

Как Atmosphere запускает пиратку? Что такое сигпатчи (sigpatches).

Atmosphere — мощный инструмент, и благодаря тому, что она поддерживает IPS-патчи умельцы нашли, в каком месте в оперативной памяти консоли находится проверка запуска нелицензионного ПО, отключив её.. Эти патчи называются ‘signature patches’, то есть патчи, которые обходят проверку подписи (сигнатур) приложений и проверки сертификатов.  

Обобщая, сигпатчи нужны для обхода проверок безопасности, для запуска самодельных и/или неподписанных приложений. Это могут быть как пиратские игры, так и homebrew-приложения, запускаемые через HBL. Для первых нужны ES-патчи, они обходят проверку тикета: куплена или нет игра, и FS-патчи, они нужны для обхода проверки сертификата и подписи в NCA, чтобы запускались сконвертированные из картриджа дампы. Для запуска хомбрю нужны loader-патчи, в кефире они активированы на уровне Atmosphere. 

Раньше сигпатчи можно было легко скачать из интернета, но с недавних пор Nintendo закрыла многие источники, которые их распространяли, и патчи теперь нужно делать самостоятельно. Большинство AiO (All-in-One, всё в одном) сборок, например, тот же кефир уже имеют в своем составе сигпатчи, поэтому вам не нужно беспокоиться об их наличии.

Так зачем же нужна Atmosphere, если не для пиратки?

Atmosphere создавалась именно в качестве замены прошивки Nintendo Switch - Horizon OS (HOS). В данный момент, Atmosphere всё ещё находится в процессе длительной разработки и не может работать как самостоятельная ОС; именно поэтому она подменяет файлы и вызовы официальной HOS на свои. Пока полностью, с нуля переписаны не все компоненты HOS, но в конечном итоге именно такое положение вещей является целью автора прошивки. 

SciresM — огромный фанат покемонов, можно сказать, он начал писать Atmosphere в том числе и для того, чтобы иметь больше возможностей ковыряться в своих любимых играх. Так, с помощью Atmosphere можно устанавливать на Switch-игры переводы и модификации, существенно расширяя первоначальные возможности игр, получить доступ к памяти консоли, заниматься дата-майнингом, писать игровые читы, и прочее-прочее-прочее. 

Что такое сертификат, ключи, тикеты, логи? Немного информации про защиту консоли.

У Tegra, центрального процессора Nintendo Switch, очень много степеней защиты. Данные во внутренней памяти консоли, установленные игры и прочее, хранятся в консоли в полностью зашифрованном виде. В каждый выпущенный процессор ещё на заводе вшивается уникальный ключ, и с его помощью всё шифруется. Именно этот ключ (ключи, их там много) мы дампим в процессе создания бекапа внутренней памяти консоли. Кроме ключа, у каждой консоли есть и уникальный идентификатор, серийник, и сертификат. Когда вы заходите в eShop - сервера Нинтендо получают ваш идентификатор и связывают его с вашим сертификатом безопасности. Так сервер знает, кто именно на нем залогинился (какая именно консоль), и в дальнейшем сопоставляет сертификат именно с вашей консолью, с определенным ID и серийным номером. 

Когда вы устанавливаете ту или иную игру, помимо неё вы получаете еще и тикет, специальный файл, который ‘говорит’ серверу, имеете ли вы право на владение этой игрой, куплена ли она (тогда даётся personalized ticket), или это скачанная бесплатная демка (выдаётся common ticket). Если будет обнаружен фейковый тикет, либо personalized ticket от игры, про покупку которой в базе данных на серверах Nintendo нет записей, вы неминуемо получите бан. Про баны будет ниже.

Логи. На каждый чих, вылет, и любое другое событие, консоль собирает информацию в своих логах. Это делается для того, чтобы отлавливать ошибки в системе и вносить в неё исправления, однако, никто с уверенностью не знает, может ли Nintendo по анализу логов узнавать, запускалось ли на консоли что-то пиратское, или всё же нет.

Что такое LayeredFS, и как работают модификации для игр? 

LFS — это самописная (homebrew) виртуальная файловая система, существующая в оперативной памяти. При запуске игры, её содержимое находится в оперативной памяти уже в расшифрованном виде, готовом для работы, следовательно, с этим содержимым можно легко взаимодействовать. У каждой игры, DLC и обновления есть свой, уникальный идентификатор - TitleID. При запуске игры Atmosphere смотрит, есть ли на карте памяти в папке /atmosphere/contents папка с TitleID, который совпадает с TitleID запущенной базовой игры. Если это так, то все файлы, находящиеся в папке TitleID, заменят соответствующие файлы и папки в оперативной памяти. Тем самым, простой заменой файлов на карте памяти можно оперативно влиять на файлы, которые будут запускаться в самой игре. Стоит при этом понимать, что если вы таким образом взаимодействуете с онлайн-игрой, есть шанс, что у неё могут быть свои, дополнительные проверки на подобные подмены: например, могут сравниваться хеши файлов в памяти с эталонными, чтобы избежать нечестной игры. Для оффлайн-игр такие проверки обычно никогда не производятся. 

Модули, Tesla Overlay System, и прочее. 

Atmosphere умеет работать с модулями, которые расширяют её возможности. Управление модулями происходит через специальное меню - Tesla Overlay Menu. Его можно запустить, одновременно нажав (L) + крестовина вниз + (R3). Через это меню можно включать, выключать, и использовать модули. Часть модулей может выводить информацию о системе, часть позволяет использовать сторонние контроллеры по проводу и без него, есть модули для управления разгоном, и заданного переключения режима работы консоли в портативный режим, либо в режим док-станции. Есть модули для эмуляции работы Amiibo, есть модуль для управления читами. Использование модулей, как правило, безопасно даже при игре онлайн, потому что они обыкновенно не делают ничего сверх того, что умеет делать сама система. Например, модуль поддержки сторонних контроллеров перехватывает нажатия подключенного контроллера и говорит системе, что это нажатие сделал обычный Pro Controller, подключенный таким-то пользователем. То есть, система думает, что подключен простой прокон вместо, например, дуалсенса. Ничего необычного. Модуль разгона просто управляет частотами, заменяя собой системный модуль с этой же функцией, модуль переключения режима работы программно переключает консоль на режим работы в док-станции и обратно. И так по каждому модулю, кроме модуля читов. Стоит ли говорить, что читы в онлайне недопустимы, легко считываются и приводят к бану? 

Обновление системного ПО через настройки или через Daybreak 

Atmosphere в своем составе имеет отдельную утилиту для обновления системного ПО, которая работает точно так же, как и официальное обновление через настройки. Как именно обновлять ПО в стоке с запущенной Atmosphere — исключительно дело вкуса. Отдельно стоит упомянуть, что на приставке с затертым серийным номером, или с баном по сертификату, ПО через настройки обновить не получится. 

Что такое EmuNAND? 

EmuNAND — это полная побайтовая копия внутренней памяти консоли, находящаяся на карте памяти, microSD, а Atmosphere прозрачно для пользователя делает так, чтобы HOS работала с системой на карте памяти, вместо системы на eMMC (внутренней памяти) консоли. Получается, что у вас в консоли есть две (возможно и более) независимых систем. Одна - EmuNAND - на карте памяти в папке emuMMC, а другая, Сток (сиснанд, sysNAND) - находится во внутренней памяти консоли, eMMC. 

Когда вы загружаетесь в EmuNAND, всё, что вы делаете с вашей консолью никак не отражается на её внутренней памяти. Когда вы запускаете сток, всё, что вы делаете с консолью не отражается на эмунанде. 

Логично, что при создании эмунанда на карте памяти будет занято количество свободного места, равное размеру внутренней памяти консоли (32 либо 64 ГБ, если консоль OLED). Вас может ввести в заблуждение, что в самой системе при загруженном EmuNAND она видится как внутренняя память консоли, однако физически он всё равно продолжает оставаться на карте памяти. Нужно понять эту концепцию, чтобы не искать с калькулятором, куда делись 30, а то и 60 ГБ на карте памяти. 

Представим, что наша внутренняя память и карта памяти - это коробки А и Б, объемом 25 и 100 единиц, соответственно. Когда мы создаём эмунанд, мы клонируем нашу коробку А и кладём её клон в коробку Б. В итоге, мы имеем три коробки - А - наша внутренняя память, А1 - клон коробки ‘А’, Б - большая коробка (это наша карта памяти). Причём коробка А лежит отдельно, а коробка А1 лежит внутри коробки Б. 

Рисунок 1 - общий вид карты памяти и внутренней памяти после создания эмунанда.


Если мы запускаем сток, то он грузится из коробки А; при этом мы можем класть игры как в эту коробку, так и в коробку Б. Коробка А1 продолжает лежать в коробке Б, но она остаётся закрытой (незагруженной), и мы пока не можем пользоваться её объемом. 

Нам доступно 100 единиц объёма: 25 из коробки А и 75 из коробки Б (25 из коробки А1 не доступны).

Рисунок 2 - загружен сток, доступа в коробку А1, в файлы эмунанда, мы не имеем. Файлы эмунанда расположены на карте памяти, внутри коробки Б.


Когда мы загружаемся в эмунанд, то вместо коробки А используется коробка А1, и теперь коробка А остаётся закрытой, и мы не имеем к ней доступ. Получаются те же 100 единиц объема, 25 из коробки А1 и 75 из коробки Б (25 из коробки А недоступны)

Рисунок 3 - загружен эмунанд, доступа в коробку А, в файлы внутренней памяти, мы не имеем. Файлы внутренней памяти расположены в чипе eMMC, установленном на плате консоли.


Когда мы делаем что-то в коробке А, это никак не отражается на содержимом коробки А1, и наоборот. 

То есть, при загрузке в сток мы можем пользоваться всем объемом коробки А - 25 единиц, и свободным местом коробки Б, а это 75 единиц, поскольку 25 единиц зарезервировала для себя коробка А1, физически расположенная в коробке Б (из стока мы можем видеть саму эту коробку (файлы в папке emuMMC), но к самим файлам мы не имеем доступа, коробка-то закрыта). 

Похожая ситуация будет при загрузке в EmuNAND - мы можем пользоваться всем объемом коробки А1 - 25 единиц и свободным местом коробки Б, это 75 единиц. То есть фактически весь размер коробки Б (100 единиц) будет нам доступен, а коробка А не будет доступна вообще, она находится на отдельном носителе и даже не будет видна из системы, в отличии от самой коробки А1, которую мы так же можем наблюдать в папке emuMMC.

В обоих случаях коробка А и А1 будут показаны в системе как внутренняя память, однако, при загрузке в EmuNAND внутренняя память физически будет продолжать находится на нашей карте памяти microSD. 

Отдельно отмечу, что устанавливая игры в эмунанде во внутреннюю память, мы, фактически, все равно будем ставить их на карту памяти, потому что наша коробка А1 физически находится на карте, то есть внутри коробки Б. 

Эмунанд можно уменьшать, но в этом нет никакого смысла, ведь нет никакой разницы, будет ли коробка А1 занимать 25 или 5 единиц, когда суммарно нам будет всё равно доступно не больше объема нашей карты память, то есть всего объёма коробки Б. 

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

Зачем вообще нам EmuNAND? Работа EmuNAND в KEFIR. 

Почему именно в KEFIR? Потому что настройки конкретно кефира могут отличаться от настроек в других сборках, и точно отличаются от настройки ванильной Atmosphere. Об этом и поговорим. 

В большинстве случаев, эмунанд нужен для игры в пиратку таким образом, чтобы не оставлять следов на стоке. О каких следах идет речь? В первую очередь, это тикеты и логи. В кефире логи большей частью отключены, а те что не отключены (таких быть не должно, но мало ли), завернуты и хранятся на карте памяти. Естественно, они никуда не отправляются. В ванильной атмосфере все логи складываются в соответствующие папки на карте памяти. 

Так же в кефире скрыт серийник, поэтому даже при настойчивых попытках консоли, не удастся подключиться к серверам Nintendo. Используя защитные механизмы Atmosphere (сокрытие серийника и/или сертификата), консоль больше не может быть идентифицирована серверами Nintendo. Сервер видит консоль, но не может сопоставить её с её ID/сертификатом/серийником, потому не и пускает. Грубо говоря, вы находитесь в той же ситуации, что и забаненный пользователь, но делаете это осознанно и контролируемо. Серийник скрыт только для EmuNAND, при загрузке в сток скрытие серийника не нужно, там сокрытие автоматически отключается.

То есть, эмунанд кефира не только изолирован от стока, но еще и надежно спрятан от серверов Nintendo. При этом сам доступ в интернет продолжает работать, и им можно смело пользоваться для просмотра видео, скачивания в tinfoil, ланплея, или чего вам там ещё придет в голову.

Сток: Full Stock, Semi-stock, методы запуска всего перечисленного на консолях с разными типами взлома.

В общем случае, стоком называется загрузка из NAND консоли. То есть, НЕ из эмунанда. Однако в сток загрузиться можно несколькими разными способами. Самый простой способ загрузки в сток - это запуск приставки вообще без взлома. Его поддерживают приставки с программным взломом, и чипованные консоли с чипом, прошитым на китайскую версию Spacecraft (версии r031, и старше). У первых для загрузки достаточно отключить AutoRCM, если он был включен, и просто запустить приставку. У вторых следует включить приставку, удерживая кнопку понижения громкости. В обоих случаях, приставка пропустит сам взлом и загрузится в сток. При этом методе запуски стока используется родной загрузчик консоли.

Второй способ загрузки в сток применялся в кефире до версии 647, начиная с версии 648 он был убран. Этот метод использует Гекату в качестве загрузчика, в остальном он не отличается от предыдущего. Находился в меню Launch -> Full Stock, что приводило к куче лишних вопросов у новичков, и к случайному сбросу AutoRCM при обновлении или сбросе прошивки у бедолаг с временной прошивкой на консолях первой ревизии с закрытой уязвимостью, потому и был убран

Третий способ (используется в кефире) идентичен первому, кроме того, что он запускается из Гекаты, с главной страницы кнопкой Reboot -> OFW. После нажатия на неё, геката запускает официальный загрузчик, затем идет загрузка, идентичная первому методу. Если у вас при этом стоит AutoRCM, придется пробросить пейлоад для запуска стока (по идее, после проброса сразу пойдет загрузка стока). Неудобно. Но ведь вам всё равно придется пробрасывать пейлоад для запуска EmuNAND. Ничего непривычного. 

Последний способ (используется в кефире) - Semi-stock. Самый неоднозначный, и потому самый интересный. Он является рекомендуемым способом запуска стока по умолчанию для кефира. При этом, сток работает через запущенную Атмосферу, что обязательно требует определенной осознанности при его использовании. 

Semi-Stock 

Семисток хорош тем, что работает из-под атмосферы. Этим же он и плох. 

Плюсы

  • Позволяет быстро перезагружаться, не теряя взлома на приставках первой ревизии. Для грустных бедолаг с временным взломом, это также единственная возможность использовать сток
  • Обновление прошивки без потери AutoRCM
  • Не отправляет логи в Nintendo, и не создает новые
  • Позволяет пользоваться плюсами кастомной прошивки на стоке, как-то: хомбрю, модули, переводы, разгон, резервное копирование сохранений, темы и проч.

Минусы

  • При неумелом использовании и злоупотреблении, может привести к бану (но тут нужно постараться)

Этот способ является рекомендованным для большинства пользователей! Если вы уверены, что этот метод вам не подходит, используйте Reboot -> OFW для гекаты! 

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

Стоит также вспомнить и об LayeredFS. Поскольку Atmosphere не различает запущена она из стока или эмунанда, в семистоке LFS также работает. Поэтому, если у вас в эмунанде установлена тема, в семистоке она тоже будет отображаться. Если у вас в эмунанде включен модуль разгона, он так же запуститься в семистоке с настройками по умолчанию. Это касается вообще всего, у чего есть настройки по умолчанию. 

Сторонние контроллеры также будут работать, покуда запущены модули для их поддержки. С Tesla Overlay вас тоже никто не забанит. Как и за Emuiibo, если уж так прям надо их использовать. Всё это безопасно, поскольку просто меняет и улучшает соответственные возможности самой HOS!

Но если используете читы в игре в эмунанде, и она же стоит в семистоке, готовьтесь к тому, что читы могут запуститься и там. Автоматически в кефире читы не запустятся. Вы должны будете запустить и активировать их вручную! Просто не делайте этого и всё. Читы невозможно запустить случайно!

Если вам не нужен онлайн в игре, просто не запускайте эту игру на семистоке. Можно, конечно, но зачем? 

Хоумбрю на семистоке тоже будут работать, и их тоже вполне безопасно использовать, например, если вы не собираетесь пиратствовать вообще, но желаете использовать Ретроарч, семисток вам вполне подходит. 

Бан и методы защиты от бана.

Бан - невозможность получить доступ к серверам Nintendo, а следовательно, играть онлайн официально и покупать игры. Бан бывает как аккаунта, так и консоли. В случае бана аккаунта, вы не сможете использовать аккаунт ни на этой, ни на любой другой консоли. Другие аккаунты и сама консоль будут работать. В случае бана консоли доступ станет невозможен с любым аккаунтом конкретно на забаненной консоли. На других консолях эти аккаунты будут работать и их использование безопасно. 

Как же пользоваться семистоком, чтобы не получить бан?

Очень просто, на самом деле. Не делайте ничего такого, за что бы вас забанили. За читы будет бан. За абьюз сохранений будет бан. За пиратку в семистоке будет бан. Всё остальное, по идее, разрешено. Лучшее применение семистока - это просто играть, в купленные или бесплатные, игры. Если вы станете использовать его исключительно для этого, то шанс бана всегда будет оставаться очень невысоким. 

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

В кефире по умолчанию всё настроено так, чтобы ваш опыт использования смемистока был максимально безопасным.

Чистый сток

Это такой сток, на котором никогда не запускали пиратку. В ряде случаев пользователи игнорируют необходимость создавать эмунанд и запускают пиратку прямо со стока. Разумеется, при подключении к интернету без скрытия серийника, например, загрузившись в семисток, а не в Atmosphere из кефира такие пользователи получают бан. Проверить, есть бан или нет без очистки стока невозможно. В таких ситуациях, обычно из грязного стока снимают эмунанд, чистят сток через TegraExplorer -> wipesystem.te -> Wipe Stock, и проверяют, есть бан или нет. Если бан есть, то можно смело восстанавливать эмунанд в систему, поскольку толку от него на приставке с баном немного. 

Загрузка системы в кефире

В качестве загрузчика, в кефире используется Hekate. Чтобы попасть в неё, нужно зажать кнопку понижения громкости на заставке кефира. Здесь вы можете выбирать, как будет загружаться ваша система. Доступны следующие варианты:  

  • Reboot -> OFW - загрузка в сток через официальный загрузчик. Для параноиков. Самый чистый вариант загрузки консоли. Равносилен варианту загрузки без взлома. Не используйте, если у вас стоит временная прошивка, иначе взлом слетит! Лучше всего работает для пользователей с чипами, в ином случае потребует дополнительных пробросов пейлоада для перезагрузки обратно в прошивку, или для загрузки в OFW, если стоит AutoRCM. Для понимания: если у вас на консоли стоит AutoRCM, пробросьте пейлоад после активации загрузки этим методом!
  • Launch -> Atmosphere - запускает атмосферу с патчами для пиратки. Если есть Эмунанд, то загрузится он, если его нет или он отключен, запустится сток с патчами. При выборе этого пункта серийник приставки будет скрыт, и доступ к серверам Nintendo невозможен
  • Launch -> Semi Stock - запуск стока с патчами атмосферы, но без FS- и ES-патчей и без скрытия серийника консоли. Доступ в eShop возможен. Подробнее о семистоке читайте выше.

Обобщая всё вышесказанное, и разбор конкретных примеров 

  • Sys-con, Mission Control, emuiibo, модули статистики, разгон, темы в семистоке использовать безопасно
  • Если на семистоке будут пользоваться ТОЛЬКО купленными официально играми, онлайн, типа танков, анимал кроссинг, сплатун, то шанс бана минимальный 
  • Если вы используете в эмунанде модификации для Animal Crossing, они автоматом подхватятся и при игре в AC в семистоке. За что можно получить бан от Nintendo
  • Если вы переносите сохранения из эмунанда на другой консоли на семисток, за это тоже можете получить бан. Некоторые игры умеют это отслеживать 
  • Читы в онлайне - бан
  • При использовании разгона и сохранении пресета разгона по умолчанию, этот пресет также сработает и в семистоке, учтите.

Почему мне просто не использовать Reboot -> OFW? 

Вы можете использовать то что Вам удобно и то, что Вам нравится. Кефир создан быть наиболее универсальным решением для наибольшего количества пользователей, потому именно Семисток был выбран решением по умолчанию. Что и как использовать - решать вам.

Report Page