「ShareIt」、「Xender」などは、「不明なソース」権限を必要とせずにAPKをインストールする方法を教えてください。


9

通常、apk(SDカードなど)をインストールする必要がある場合は、電話の設定で「不明なソース」を有効にする必要があります。しかし、「ShareIt」を使用して別の電話からAPKを転送してインストールする場合、私の電話ではそのような許可は必要ありません。

ShareItはこの権限をどのように回避できますか?


ShareItはデバイスにプリインストールされていますか、それとも自分でインストールしましたか?
イジー

回答:


8

私は少し掘り下げましたが、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


アプリは実際にこれを使用するかどうかを見つけるために、今、このアップを掘るための賛辞...
アンディ・ヤン

2
@beeshyams-そうでもない。アプリは「サイレント」インストールを実行できません。保留中の意図により、インストール時にユーザーの明示的な「クリック」が必要です。
ネオ

1
@Neoくそー、私が答えを書いたとき、私はサイレントインストールを想定しただ​​けだった...私の悪い。
アンディヤン

2
他のニュースでは、ShareItのパッケージが何らかの形で難読化されているように見えるため、私のツールがJavaコードの生成に成功したとしても、スタブからは何も重要なことがわかりません。
アンディヤン

待ってください-別のツールを使用しました。確認後、回答に編集させていただきます。
アンディヤン

4

アプリがサイレントインストールされている場合(つまり、通常のインストールダイアログがない場合)、おそらくこれらのアプリは直接呼び出します pmすなわち、PackageManagerシステムアプリとして許可を負担しています、android.permission.INSTALL_PACKAGES

アプリがpmルートコンテキストで呼び出すことができるように、電話をルート化する必要があります。

編集:@Izzyがコメントで指摘したように、にandroid.permission.INSTALL_PACKAGESインストールされて/systemいるアプリにも許可されます。詳細については、以下のコメントとこのSOの質問を参照してください。


私は実際にShareItを試して実際に何をしているかを分析したのではなく、最も可能性の高い理論を提示しただけであることに注意してください。あなたが根付いていなくてもそれがうまくいくなら、調査するはるかに興味深い問題があるかもしれません。
アンディヤン

1
@beeshyamsここ中国では、多くのサードパーティアプリ市場がサイレントまたは自動インストールを実行します。最初の方法はここで説明したとおりであり、最初のインストール時にroot権限を要求します。2つ目は、ユーザー補助サービスをオンにしてから、[インストール]ボタンのクリックを自動化するように依頼することです。
アンディヤン

1
私の電話は根付いていません。また、ルート権限も要求されませんでした。しかしインドでは、ShareItはピアツーピアでアプリをインストールする非常に人気のある方法です。
Neo

1
@beeshyamsそのアプリと、必要なアクセス許可の恐ろしいモルを避けてください。代わりに、オープンソースのHTTP経由の共有(F-Droidで利用可能)の使用を検討してください。私は決してアプリと提携していません。
グリモア2017

1
@beeshyams同じネットワークに接続されているすべてのデバイスで動作します。私の知る限り、ホストはAndroidである必要がありますが、どのデバイスも同じネットワークに接続し、アプリに表示されるHTTPアドレスにアクセスしてファイルをダウンロードできます。
グリモア2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.