web-dev-qa-db-fra.com

Installation silencieuse apk par programme par application système (sans root)

J'ai une application au niveau du système avec Android: sharedUserId = "Android.uid.system" (UID: 1000).

L'appareil n'est pas enraciné! La permission INSTALL_PACKAGES est incluse dans le manifeste.

Puis-je installer le fichier * .apk téléchargé en mode silencieux?

29
yuralife

J'ai trouvé le problème.

  1. Ajoutée "Android.permission.INSTALL_PACKAGES" autorisation.
  2. J'ai signé ma demande à l'aide de "signapk.jar "avec le certificat que j'ai obtenu du fabricant de mon appareil.
  3. Et maintenant, cette application peut en installer d'autres en utilisant "pm install /.../app.apk "sans" su ".

Ça marche!

P.S. Mise à jour de l'application en utilisant simplement "pm install" ne remplace pas l'application existante par une nouvelle, mais renvoie exit_value = 0. Donc, pour mettre à jour, il y a deux façons:

  • utilisation "pm install -r /.../app.apk ";
  • supprimez d'abord l'application en utilisant "pm uninstall com.mydomain.myapp" (vous avez besoin "Android.permission.DELETE_PACKAGES "autorisation), puis installez-en une nouvelle.
41
yuralife

Non vous ne pouvez pas. Avoir simplement le même UID ne suffit pas. Vous devez également être signé avec la même clé que le ROM lui-même.

L'installation silencieuse d'applications ou de mises à jour de votre propre application n'est pas autorisée pour des raisons de sécurité.

8
Raghav Sood