web-dev-qa-db-ja.com

システムアプリによるプログラムによるサイレントインストールapk(ルートなし)

Android:sharedUserId = "Android.uid.system"(UID:1000)のシステムレベルのアプリがあります。

デバイスがルート化されていません!マニフェストにはINSTALL_PACKAGES権限が含まれています。

ダウンロードした* .apkをサイレントインストールできますか?

29
yuralife

私は問題を見つけました。

  1. Android.permission.INSTALL_PACKAGES "許可。
  2. signapk.jar "デバイスの製造元から取得した証明書付き。
  3. そして今、このアプリは「pm install /.../app.apk "「su」なし。

できます!

追伸アプリケーションの更新「pm install」だけを使用すると、既存のアプリケーションは新しいものに置き換えられませんが、exit_value = 0が返されます。更新するには、2つの方法があります。

  • 使用する "pm install -r /.../app.apk ";
  • 最初に「pm uninstall com.mydomain.myapp "(" Android.permission.DELETE_PACKAGES "許可)してから、新しいものをインストールします。
41
yuralife

いいえ、あなたがすることはできません。単に同じUIDを持つだけでは十分ではありません。また、ROM自体と同じキーで署名する必要があります。

セキュリティ上の理由から、アプリのサイレントインストールまたは独自のアプリの更新は許可されていません。

8
Raghav Sood