Rooting is the process of allowing users of smartphones, tablets and other devices running the Android mobile operating system to attain privileged control over various Android subsystems. As Android uses the Linux kernel, rooting an Android device gives similar access to administrative (superuser) permissions as on Linux or any other Unix-like operating system such as FreeBSD or macOS.
ADB + Fastboot
Download SDK Platform-Tools for Windows
Download SDK Platform-Tools for Linux
Download SDK Platform-Tools for Mac