The Basics
This is where your journey of understanding the basics begin. We try to answer questions such as “what’s a system app?” or “what’s a shell?”. You will need to understand these nomenclatures and information as it will be used throughout the rest of the knowledgebase. Here is a summary of the chapters contained in this page:
- What is a system app?
- What is a user app?
- What is system data?
- What is root/rooting?
- What about the Android security model?
- Why isn’t my phone rooted out of the box?
- What do “NAND locked” and “S-ON” mean?
- Everyone talks about “opening a shell” so how do I do that?
1. What is a system app ?
A system app is an application that resides in /system/app/ and thus is technically a part of your ROM.
2. What is a user app ?
A user app is an application that resides either on the /data partition of your phone’s internal memory or on your SD card.
3. What is system data ?
In the vast majority of cases, system data is simply the data that belongs to system apps or services. For example your SMS/MMS are system data that belong to the “Dialer Storage” system service. There are some special elements (such as the Wi-Fi access points list) that don’t belong to a specific system element, but they must be considered as exceptions.
4. What is root/rooting ?
- “root” is the UNIX system administrator.
- Rooting an Android phone means modifying your ROM (or installing a 3rd-party custom ROM) so that you can grant “root” privileges to certain programs.
- In our case, Titanium Backup uses these privileges to backup other applications’ data, regardless of security restrictions. Without root privileges this would be impossible to do (see the Android security model point below).
5. What about the Android security model ?
- Under the Android security model, every app can access its own data, plus some of the general phone’s data (eg: SMS/MMS, Contacts) if it has the necessary permissions. Apps may also share their data with other apps, but they are (of course) not forced to do so.
- While some apps have a way of backing up/restoring their own data (which resides inside the phone’s memory) to your SD card or to the cloud, and some apps offer a way of sharing their data, the vast majority of apps do not have any backup or data sharing features built-in. This is where Titanium Backup comes in.
- Titanium Backup is not constrained by the Android security model so it can potentially backup/restore all the data that is on your device.
6. Why isn’t my phone rooted out of the box ?
- Because of restrictions imposed by the manufacturer or perhaps by your carrier. In its pure form, the Android OS itself is open-source and not limited.
- Rooting gives you full access to your device, which gives you more power and responsibilities – which some novice users may not need nor want.
7. What do “NAND locked” and “S-ON” mean ?
- A “NAND locked” (or “S-ON”) device is a device where the ROM (usually mounted at /system) is write-protected in hardware and thus cannot be modified, even if you have root privileges. Sometimes you get the illusion that you can write to /system, but in any case all changes will disappear after a reboot. This is why these devices often have “temp root” instead of “permanent root”.
- In order to get permanent root access, you need to make your device “NAND unlocked” (or “S-OFF”) first. In other words, you need to “unlock the bootloader”.
8. Everyone talks about “opening a shell” so how do I do that ?
- A shell simply is a “command line” to type commands on your Android phone.
- If you’re comfortable with typing on the phone then you can just use the ConnectBot (free) app or the Better Terminal (paid) app.
- If you want (or need) to type commands from a computer, just install the Android SDK, then enable “USB debugging” on your phone and finally, connect your phone through USB and type “adb shell” on your computer.