i

Android Rooting & Creating Emulator

Android Rooting :-

Rooting allows all users to run admin privileged level commands which were not allowed in stock configuration. Rooting allows users to delete system files, remove pre-installed applications.
Few key terms to be known: -

Bootloader: Bootloader loads and starts bootloading tasks and processes
Sideloading: It simply means transferring a media file to a mobile device via USB, Bluetooth or Wifi
Overcloaking: It simply means increasing the frequency of processor to the maximum level thereby increasing the performance of your android device.
Bloatware: It is a software using large amounts of unnecessary features, memory and RAM.  
Flashing: It means installing something on your device
Bricking: It means breaking during flashing or other acts

Advantages of rooting: -
Complete control of the feel and look of the device
Complete control of the kernel
Complete control of applications allowing us to remove bloatware.
It allows us to install custom hardware or software increasing the features of the device.

Methods Of Android Rooting: -
   We can root Android from terminal using adb (Android Debug Bridge) commands.
   C:\AndroidExploit\bin> adb push exploit /data/local/tmp
   C:\AndroidExploit\bin> adb shell
    $ls -l
    $./exploit root
   C:\AndroidExploit\bin> adb shell
   We should see uid = 0 (root)

Another method of rooting called "systemless root" uses various techniques to root the
android device without changing the system partition. An example of it is Magisk.

Creating Emulator: -
An emulator can be created by installing the Santoku OS in the system. Santoku is a customized OS created from Ubuntu based OS specifically for testing of Android based  applications.  

Another way is to use Genymotion in the system in which Android OS can be created and then testing of Android applications can be done.