2

I have create an application and installed it to a device in the Android system image.

Now I have added some new features to my app and I want to update my current install app with that new feature.

One way I could do this is by re-installing the android OS with the new version of the app.

Is there another way that I can do this so that I can update the app without having to update my whole Android operating system?

4

As long as you have the release key (or whatever key you use) used sign the app in the /system you could just quickly side-load your application:

adb install -r bin/my-signed-app.apk

Note the '-r' option.

This will update the application, but not remove/update the apk file in /system or clear the user's data.

You might have to clear the data first due to database schema changes:

adb shell pm clear my.app.package

You could then go and manually remove this 'update' via the app settings Activity.

1

There's not a "straightforward" way to do it. You can't update the system application from the Play Store - you can download the update, but it will install as an indepent application (that will work instead of the system application from there on), but the system application will still stay in the system, and it cannot be replaced by the Play Store or the defalt installer present in the system.

You can do it manually, by replacing the .apk file from /system/app (or priv-app) with the different .apk, and setting the adequate permissions.

And it can also be done by updating the system, either OTA, or by flashing ROMs - that will completely replace the old application.

  • Thanks Aleksandar Stefannovic , yes we cannot update the system app from Google play . I also don't want to update the system . And after publishing we cannot update it manually to every user's device . Can we have any other option for this ? – Arun kumar Mar 13 '15 at 8:19
1
  1. Root the device

  2. Remount /system as writable (I use Root Explorer for this)

  3. Replace /system/app/NameOfYourApp.apk with the new version

  4. You might have to clear the app cache/data and reboot.

  • Hi Matthew thanks for your answer but we cannot root every user's device . I my app is using by 1000 of user then how can I root ever user device . – Arun kumar Mar 16 '15 at 6:26
  • You can't alter the system partition without root or flashing. You can likely install an update the normal way with the Package Installer, which will leave the original version on the device, but if you're looking for a remote delivery system and don't want to use existing ones like Play ... you'll have to create one yourself. – Matthew Read Mar 16 '15 at 12:48

protected by Community Aug 4 '17 at 13:43

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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