| Android Rooting for Programmers |
|
|
|
| Friday, 28 October 2011 12:59 |
|
You have an Android Device and you are familiar with Linux based operating systems. Maybe, you like SSH or telnet to communicate with the device; you want to setup your device as a router to connect home PC to the Internet. However, you will be surprised. Android has neither login screen nor possibility to gain privileged user access to the system to do these things. This is one of the Android security principles to isolate applications from the user, each other, and the system. In this article, I will describe you how to gain root access on an Android device in spite of security. I will delve deeply into one of the Android rooting principles - the Written By: Maksim Arshynkin, Rooting principles Rooting principlesOverviewIn three words, the main rooting idea is to get super user rights on a device shell. Like a standard Linux shell, it allows you to interact with the device by executing commands from the shell. The shell can be accessed via ADB (Android Debug Bridge) command tool. The main purposes of the ADB on Android-powered devices are debugging, helping to develop applications and also, in some cases, it is used for synchronization purposes (when syncing HTC Wildfire, it is required to turn on the USB Debugging). We will use the ADB tool for uploading and executing the exploit, working with rooted device via super user shell with full access to whole device file system, programs and services. ADB includes three components:
We are interested only in the third component. The daemon runs on a device and communicates with a client through a server. When you issue the To understand why the The first user land process started after the Android device booting is the init process. After initialization and starting of internal services like property service, Let’s look at the ADB daemon initialization source code. The main daemon entry point, where it starts its execution, is So, what we see here. When the ADB daemon is starting, it has super user rights, like the init process has. However, the daemon reads some properties from the system and decides to set ro.kernel.qemu – "0" // is running on the emulator After properties are checked, the secure flag is set to true, and we hit to such code section: Starting from this point, the daemon continues its execution with the The complete article text is available only for the registered users. Please Log In or Register. |






