Minecraft:Obfuscation map: Difference between revisions
More actions
Sync: new page from Minecraft |
Sync: updated from Minecraft |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{ | {{Removed feature|edition=java}} | ||
{{relevant tutorial|See Minecraft's code}} | {{relevant tutorial|See Minecraft's code}} | ||
'''Obfuscation maps''' are {{w|ProGuard}} mappings from old (original) names to new (obfuscated) names for classes and class members that have been renamed.<ref>{{link|url=https://www.guardsquare.com/en/products/proguard/manual/usage|title=ProGuard manual | Usage|website=Guardsquare}}</ref> They have been exported in the [[Minecraft:client.json]] for every snapshot and release available in the [[Minecraft:Minecraft Launcher|Launcher]] from [[Minecraft:Java Edition 19w36a|19w36a]] through [[Minecraft:Java Edition 1.21.11|1.21.11]], and the [[Minecraft:client.json]] for [[Minecraft:Java Edition 1.14.4|1.14.4]] has been updated slightly after 19w36a's release to include obfuscation maps as well.<ref>{{tweet|Dinnerbone|1169257039597645824|I've been pushing for this for a while, so I'm really happy that we were finally able to release the obfuscation mappings public. @SeargeDP had a great idea to release the 1.14.4 mappings as comparison, so those are going out right now.|September 4th, 2019}}</ref> | '''Obfuscation maps''' are {{w|ProGuard}} mappings from old (original) names to new (obfuscated) names for classes and class members that have been renamed.<ref>{{link|url=https://www.guardsquare.com/en/products/proguard/manual/usage|title=ProGuard manual | Usage|website=Guardsquare}}</ref> They have been exported in the [[Minecraft:client.json]] for every snapshot and release available in the [[Minecraft:Minecraft Launcher|Launcher]] from [[Minecraft:Java Edition 19w36a|19w36a]] through [[Minecraft:Java Edition 1.21.11|1.21.11]], and the [[Minecraft:client.json]] for [[Minecraft:Java Edition 1.14.4|1.14.4]] has been updated slightly after 19w36a's release to include obfuscation maps as well.<ref>{{tweet|Dinnerbone|1169257039597645824|I've been pushing for this for a while, so I'm really happy that we were finally able to release the obfuscation mappings public. @SeargeDP had a great idea to release the 1.14.4 mappings as comparison, so those are going out right now.|September 4th, 2019}}</ref> | ||
| Line 43: | Line 43: | ||
|{{HistoryLine||September 3, 2019|link={{tweet|Dinnerbone|1168818898101293056}}|[[Minecraft:Dinnerbone]] mentions "a small surprise for modders!" for [[Minecraft:19w36a]].}} | |{{HistoryLine||September 3, 2019|link={{tweet|Dinnerbone|1168818898101293056}}|[[Minecraft:Dinnerbone]] mentions "a small surprise for modders!" for [[Minecraft:19w36a]].}} | ||
|{{HistoryLine||1.15|dev=19w36a|Downloads to client and server obfuscation maps are now included in [[Minecraft:client.json]].}} | |{{HistoryLine||1.15|dev=19w36a|Downloads to client and server obfuscation maps are now included in [[Minecraft:client.json]].}} | ||
|{{HistoryLine|| | |{{HistoryLine||September 4, 2019|link={{tweet|Dinnerbone|1169257039597645824}}|[[Minecraft:Dinnerbone]] releases obfuscation mappings for [[Minecraft:Java Edition 1.14.4|1.14.4]] as well.}} | ||
|{{HistoryLine||August 12, 2020|link={{tweet|Dinnerbone|1293597326561488897}}|[[Minecraft:Dinnerbone]] indicates the license of the obfuscation maps will be updated and encourages modders to switch to Mojang's obfuscation map, claiming in [{{tweet|Dinnerbone|1293597329854009344}} another tweet] that it would "help with compatibility". | |{{HistoryLine||August 12, 2020|link={{tweet|Dinnerbone|1293597326561488897}}|[[Minecraft:Dinnerbone]] indicates the license of the obfuscation maps will be updated and encourages modders to switch to Mojang's obfuscation map, claiming in [{{tweet|Dinnerbone|1293597329854009344}} another tweet] that it would "help with compatibility". | ||
|He offered [https://gist.github.com/Dinnerbone/07b20a9f02e50a569217df6449cc1185 a preview of the updated license] as well.}} | |He offered [https://gist.github.com/Dinnerbone/07b20a9f02e50a569217df6449cc1185 a preview of the updated license] as well.}} | ||
Latest revision as of 11:23, 18 September 2026
Template:Removed feature Template:Relevant tutorial Obfuscation maps are Template:W mappings from old (original) names to new (obfuscated) names for classes and class members that have been renamed.<ref>Template:Link</ref> They have been exported in the Minecraft:client.json for every snapshot and release available in the Launcher from 19w36a through 1.21.11, and the Minecraft:client.json for 1.14.4 has been updated slightly after 19w36a's release to include obfuscation maps as well.<ref>Template:Tweet</ref>
Usage
The obfuscation maps can be used to remap obfuscated stack traces (as in crash reports) to readable stack traces.<ref>Template:Link</ref> See Minecraft:Tutorial:Obtaining a crash report for further reading.
Minecraft:Dinnerbone and Minecraft:Adrian Östergård have suggested that the obfuscation maps may make Minecraft:modding easier.<ref>Template:Tweet</ref><ref>Template:Tweet</ref> Minecraft:Searge has implied that the obfuscation maps can replace certain Minecraft:third-party programs such as the Mod Coder Pack.<ref>Template:Tweet</ref>
On August 12th, 2020, Dinnerbone announced that the license for the obfuscation maps would be revised to encourage modding projects to adopt them.<ref>Template:Tweet</ref>
Third-party usages
Template:Disclaimer The obfuscation maps include enough information to deobfuscate Minecraft for Template:W, making it possible to reconstruct human-readable Java code. See Minecraft:Tutorial:See Minecraft's code for further reading.
According to the License, such decompiled source code can only be distributed in a modified version or part of a larger project. This was changed from being available only for internal purposes before August 14th, 2020.
Unobfuscated versions
Unobfuscated versions were created in preparation for the removal of obfuscation Template:In. They are no longer being released separately starting with Minecraft:26.1 Snapshot 1, as the standard versions are no longer obfuscated. They are variants of versions from Minecraft:25w45a through Minecraft:1.21.11.
Format
Unobfuscated versions are formatted as "<version name> Unobfuscated". The shortened name used in the launcher is "<version ID>_unobfuscated"
License
Every obfuscation map file starts with a line indicating the license of the maps.
The current license has been in use since the release of Minecraft: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.
Obfuscation map files for versions prior to 21w03a have a slightly different license.
# (c) 2020 Microsoft Corporation. All rights reserved. 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 source code for Minecraft: Java Edition is governed by the Minecraft End User License Agreement available at https://account.mojang.com/documents/minecraft_eula.
For some Minecraft:missing launcher versions released before August 14, 2020, such as the Minecraft:Combat Tests, their obfuscation maps are available on another older license.
# (c) 2019 Microsoft Corporation. All rights reserved. This information is provided "as-is" and you bear the risk of using it. This information does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this information for your internal, reference purposes. Microsoft makes no warranties, express or implied, with respect to the information provided here.
According to Minecraft:Dinnerbone, any obfuscation mapping released before the license update on August 14, 2020 would be still available under this older license in addition to being available under the new license.<ref>Template:Tweet</ref>
History
Trivia
- Before the August 16th, 2020 license update, versions released in year 2020 had
# (c) 2019 Microsoft Corporation.in the license notice in the obfuscation map files.
- Despite being published after the license update, Combat Test 8b still uses the old license notice.
- In client obfuscation mappings, one of the first listed functions is called
youJustLostTheGame(), an easter egg reference to The Game.
- This function is used to trigger a Java crash after holding the debug key combination Template:Key for ten seconds.
References
See also
- Template:W on Wikipedia
Template:Navbox Java Edition technical
Minecraft:de:Obfuscation Map Minecraft:es:Mapa de ofuscación Minecraft:fr:Carte d'obfuscation Minecraft:ja:難読化マップ Minecraft:ko:난독화 맵 Minecraft:pt:Mapas de ofuscação Minecraft:ru:Карта обфускации Minecraft:uk:Карта обфускації Minecraft:zh:混淆映射表