I recently rooted my device which got me curious regarding the process. I would really like to understand how rooting applications work under the hood. Articles I have found over the internet have been very vague. I really would like to root my device all by myself. How can I get started with the same? Id really appreciate some guidance and/or pointers.
Basically, it involves exploiting some vulnerabilities(for example, a buffer overflow) in Linux kernel to gain advanced privileges. The exact technique used varies with devices and Android versions.
This Stackoverflow answer should give some idea.
Androidcentral has a page that gives more information on root.