Why are there two sets of tools and bootloaders in the Arduino IDE? After digging around on a separate problem, I found that avrdude, avr-gcc and some more tools can be found in two different locations:

(1): C:\Program Files\Arduino\hardware

(2): C:\Users\&lt;user&gt;\AppData\Local\Arduino15\packages\arduino


These two folders also both contain similar copies of the hardware directory where all the bootloader hex-files and source code is stored:

(3): C:\Program Files\Arduino\hardware\arduino\avr

(4): C:\Users\&lt;user&gt;\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.17


I say similar because the bootloaders\caterina folder in (4) contains quite a few hex-files that are missing in (3).

When burning a bootloader, looking at verbose output from the Arduino IDE reveals that hex-file and executable of avrdude from (2) are used, not (1).

What is the reason for this? My guess would be that location (1) is deprecated, but why choose to put stuff like this into Appdata in the first place?
Arduino IDE comes with a "platform" (the arduino AVR) in the Arduino\hardware folder.
Then you can add/upgrade platforms with the boards manager.
These will be installed in C:\Users\\AppData\Local\Arduino15\packages.
The reason for this is that Arduino IDE wants to be able to "work out of the box".
If they did not deliver the platform inside the installation/zip a "installation finishing" job needs to run after opening the Arduino IDE.