How to create System Apps in android

18,260

True system apps are baked into the ROM image, and signed with the same key the ROM was signed with, giving them extra access to the system.

You cannot add a new system app on the same level without updating the ROM image of the device, and even then you'll need the OEM key to sign your app and you will have to request them to include it in their ROM.

Having a rooted device allows standard apps to gain extra access without being system apps.

Share:
18,260
ponraj
Author by

ponraj

Learning Everyday from Everyone and Everywhere

Updated on June 04, 2022

Comments

  • ponraj
    ponraj about 2 years

    I want to create an system application(while installing it will ask user permission to make it as system app) for UN-rooted application. As I am not familiar in android, please tell me how to create it.

    Thanks in advance.

  • adelphus
    adelphus almost 11 years
    Not exactly correct. System Apps do not need to be in the firmware/ROM - they can be installed just like ordinary (non-system) Apps. The critical point, as you indicate, is that the App must be signed with the same key used to sign the firmware Apps.
  • Raghav Sood
    Raghav Sood almost 11 years
    @adelphus But if they're installed like ordinary apps, they can also be uninstalled the same way iirc.
  • Delyan
    Delyan almost 11 years
    They can be uninstalled, that's not necessarily a problem, though. (If they're baked into the ROM properly, only updates can be uninstalled)
  • Basher51
    Basher51 almost 10 years
    @adelphus : (1) Are you saying that if an app is signed with same key as the OS then even if they reside in data/app they have all privileges like a system app? (2) Say, once we sign an app with the system key,is there any way we can confirm that the app really has become a system app?
  • Hardik Joshi
    Hardik Joshi almost 10 years
    Hello, I am thinking to do this like : 1) Root phone programatically 2) Install apk in System/apps folder 3) UnRoot device. Is it feasible way to do? I need to make one default app which will never be uninstall from device. Please share any possible ways to achieve this. Thanks
  • adelphus
    adelphus almost 10 years
    @Basher51 (1) Yes. (2). To actually make an app run as the system user, you need to specify android:sharedUserId="android.uid.system" in the Apps' manifest (and of course, sign it with the firmware key). The easiest way to determine if an app is actually running as system is to look at its' uid in logcat messages - the system user always has a uid of 1000.
  • adelphus
    adelphus almost 10 years
    @Prince - is it feasible? Yes - it is common for people with rooted devices to remount /system as read-write and install apps into the system/app folder. The apps don't need to be system-level apps and installing it into the (normally read-only) system partition will prevent the user from uninstalling it - unless of course, the user can root the device and delete the APK themselves.
  • yams
    yams over 2 years
    This comment is't true. System apps can be installed like regular apps.