回答:
私は少し掘り下げましたが、API 21以降のシステム権限なしで可能ですhttps://developer.android.com/reference/android/content/pm/PackageInstaller.html。
実際、その方法を示すGoogleのコードサンプルがあります。https://github.com/googlesamples/android-testdpc/blob/master/app/src/main/java/com/afwsamples/testdpc/cosu/CosuUtils.java
アプリがサイレントインストールされている場合(つまり、通常のインストールダイアログがない場合)、おそらくこれらのアプリは直接呼び出します pm
すなわち、PackageManager
システムアプリとして許可を負担しています、android.permission.INSTALL_PACKAGES
。
アプリがpm
ルートコンテキストで呼び出すことができるように、電話をルート化する必要があります。
編集:@Izzyがコメントで指摘したように、にandroid.permission.INSTALL_PACKAGES
インストールされて/system
いるアプリにも許可されます。詳細については、以下のコメントとこのSOの質問を参照してください。