Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Silent install apk programmatically by system app (without root)

I have system-level app with android:sharedUserId="android.uid.system" (UID: 1000).

Device is not rooted! INSTALL_PACKAGES permission is included to Manifest.

Can I install downloaded *.apk silently?

like image 748
yuralife Avatar asked Mar 25 '13 16:03

yuralife


People also ask

Can you install APK without rooting?

You don't need ROOT permissions to get the list of Installed Apps. You can do it with android PackageManager.

How do I install a non installed APK?

The Android app not installed error can be combated after resetting app permissions. Go to Settings > Apps > Reset App Preferences/Reset Application Permissions. After this, third-party software can be installed on your device.


1 Answers

I`ve found the issue.

  1. Added "android.permission.INSTALL_PACKAGES" permission.
  2. I signed my application using "signapk.jar" with certificate that I`ve got from manufacturer of my device.
  3. And now this app can install others using "pm install /.../app.apk" without "su".

It works!

P.S. Updating application using just "pm install" doesn`t replace existing application with new one, but returns exit_value = 0. So to update there are two ways:

  • use "pm install -r /.../app.apk";
  • firstly delete app using "pm uninstall com.mydomain.myapp" (you need "android.permission.DELETE_PACKAGES" permission) and then install new one.
like image 92
yuralife Avatar answered Sep 23 '22 19:09

yuralife