Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

As I've played around with different ROMs and used Titanium Backup, I see that apps are categorized into system and user apps. Several ROM developers state that Titanium Backup should only be used for user apps and not for system apps, and when I proceed to uninstall system apps, TiBu warns me that the ROM may not work correctly.

Other than the fact that user apps are downloadable via the Market or some other means, what are the key differences between the two?

What is it about the system apps that make them more integral to the OS itself?

share|improve this question

3 Answers 3

up vote 3 down vote accepted

Nothing about storing an app in /system/app/ makes the app special. That location is read-only without root so it prevents uninstalling applications, that's all.

So applications that are critical are put there so that they can't be uninstalled. Carrier bloatware that they don't want to let you remove is also put there. The latter category of apps can be removed, the former not so much.

As for why apps might be critical, that depends on the ROM. HTC's Sense is heavily dependent on their built-in apps from what I hear, for example. They simple didn't design their UI such that it would work natively with third party apps (or fail nicely if the system apps were missing). Other apps are essentially part of the Android OS but, for whatever reason, Google coded them as apps/services.

Some system apps can be downloaded via the Market like Google Maps. If it didn't come preinstalled as a system app on your device then you can use Titanium to convert it from a user app to a system app.

share|improve this answer
    
does it also mean that a system app cant be killed by task killers?? or that they would auto start if killed?? –  ashishsony Jan 11 '12 at 8:08
    
@ashishsony System services are normally auto-started, yes, but (most?) apps/services can still be killed. For example I can kill the Browser on my device. (Insert usual advice about how task killers are bad.) –  Matthew Read Jan 11 '12 at 16:29

The other answers are correct, but fail to point out a couple differences:

Permissions

System apps are granted the ability to request certain system-only permissions that are never available to user apps. This is not the same as root/sudo/su permissions.

One example that I know of and use daily is the ability to reset the missed call notification counter. I have Go Dialer, which is a replacement for the stock dialer and contact app (how you make phone calls). When I miss a call, android lets me know that with a notification. However, Go Dialer is not allowed to reset this counter, even though it asks for that permission when you install the app. Android 2.2 and earlier let user apps reset it, but made this permission a system-only accessible permission for android 2.3

By moving my Go Dialer app to the system partition, it is allowed to reset this counter. Root is not required for the app (except, of course, to actually move the app to the System partition).

Another system permission is the ability to set the current gps location. Now, Android does have a preference where you can allow mock locations, so any gps spoofing app you install can declare a gps location. But if the app is in the System partition, mock locations can be disabled while still letting the app spoof the gps location.

Updates

System apps can be updated just like user apps, but the update is never integrated into the original rom. That is, system apps have the unique ability to roll back to the version that existed when the rom was first installed.

Move to SD

Android lets users move user apps from internal memory to the sd card. System apps cannot be moved and always take up some internal space. Most (all?) devices, though, have internal user apps on a different partition, so uninstalling a system app would not give you any more user app space (other than the dalvik-cache being removed).

You will recover some space if you uninstall any updates to a system app. As noted, the updates are not integrated with the rom and are thus stored in user space. The updates are not allowed to move to the sd card either, but if removed, user space is recovered.

How it affects you

If you are a casual android user, you likely won't run into scenarios where system vs user app would make a difference. If you are an advanced user, you likely have root and can thus change a system app to user (and vice versa) if you ever run into one of these situations.

share|improve this answer
    
Did you mean "This is not the same as root/su permissions"? I seem to recall that sudo and su are not the same - at least in Unix and Linux. –  ChuongPham Jun 10 '13 at 22:08
    
You're right that su and sudo are different in *nix. But sudo is more applicable here, because sudo is asking for root privileges, whereas su is simply asking to Switch User. In order to use su, you only need to know the password of the account to which you are switching; if you don't specify an account, then you are asking to become root. In Android, however, there is no root password, nor any other accounts, so su is the command known by users to run in a terminal to gain root privileges. –  Stephen Schrauger Jun 11 '13 at 13:33
    
At any rate, I'll update the answer to include su, since that is what some Android users equate to root. –  Stephen Schrauger Jun 11 '13 at 13:34

System apps are apps that are included within the system. They are located in the /system/app folder.

The vast majority of them are required to make the device run. An example of some of these are the dialer, which sets up all the network connectivity, and browser, without which no in-app webviews would work.

share|improve this answer
1  
The dialer sets up the network connectivity? –  Matthew Read Jan 4 '12 at 17:59
1  
@MatthewRead Yes - It does! The actual 'Dialer' is a seperate activity located in the dialer application. The dialer.apk is the app that sets up the connectivity - if you want proof, freeze the dialer and dialer storage apps, the network wont work. –  Liam W Jan 5 '12 at 6:59
    
That's quite weird! –  Matthew Read Jan 5 '12 at 17:06
    
Android is weird! –  Liam W Jan 5 '12 at 17:32

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.