Карта обфускации

Карты обфускации — это файлы сопоставлений ProGuard от старых (изначальных) к новым (обфусцированным) имена классов и переменных, которые были переименованы.[1] Они экспортируются в client.json для каждой версии, доступной в лаунчере, начиная с 19w36a, и client.json для 1.14.4, который был слегка обновлён после выпуска 19w36a, чтобы тоже включать в себя карты обфускации.[2]

Использование

Карты обфускации могут использоваться для расшифровки трассировок стека (например, в отчётах об ошибках) к более понятному виду.[3]

Dinnerbone и Адриан Эстергорд предположили, что карты обфускации могут сделать разработку модов легче.[4][5] Searge разъяснил, что карты обфускации могут заменить сторонние средства, например Minecraft Coder Pack.[6]

12 августа 2020 Dinnerbone заявил, что разработчики могут переходить на использование официальных названий от Mojang, приведённых в картах обфускации.[7]

Использование в сторонних проектах

Карты обфускации содержат достаточно сведений, чтобы деобфусцировать Minecraft для декомпиляции. Для этих целей есть сторонние программы.

Согласно лицензии, такой декомпилированный исходный код можно распространять лишь в модифицированном виде или в виде части большего проекта. До 14 августа 2020 позволялось лишь использовать его только в личных целях.

Лицензия

Каждый файл карты обфускации начинается со строки, обозначающей лицензию карт.

Текущая лицензия используется с версии 21w03a:

# (c) 2020 Microsoft Corporation. These mappings are provided "as-is" and you bear the risk of using them. You may copy and use the mappings for development purposes, but you may not redistribute the mappings complete and unmodified. Microsoft makes no warranties, express or implied, with respect to the mappings provided here. Use and modification of this document or the source code (in any form) of Minecraft: Java Edition is governed by the Minecraft End User License Agreement available at https://account.mojang.com/documents/minecraft_eula.

Согласно Dinnerbone, любые карты обфускации, выпущенные до обновления лицензии 14 августа 2020, доступны по данной старой лицензии, а также новой.[8]

История

3 сентября 2019Dinnerbone упоминает о «маленьком сюрпризе для моддеров!» в 19w36a.
Официальный выпуск Java Edition
1.1519w36aСсылки на скачивание клиентских и серверных карт обфускации теперь доступны в client.json.
4 сентября 2019Dinnerbone выпускает карты обфускации и для версии 1.14.4.
12 августа 2020Dinnerbone сообщает об обновлении лицензии к картам обфускации Mojang, заявляя в другом твите, что это «поможет с совместимостью».
Он также показал предварительную версию обновлённой лицензии.
14 августа 2020Лицензия карт обфускации была обновлена.
version_manifest.json был обновлён так, чтобы файлы client.json для 1.14.4 и версий с 19w36a ссылались на обновлённые карты обфускации.
1.1721w03aИзменены формулировки в лицензии.

Интересные факты

Примечания

В данной статье используются материалы из статьи «Карта обфускации» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-Share Alike. Авторы статьи.