4

既存の APK をオーバーロード/オーバーライドして新しい APK を作成することができます。

たとえば、WhatsAppメッセンジャーがあります。「Xさんがオンラインになりました」などの通知を通知領域に表示したい場合、既存のWhatsAppメッセンジャーを使用することはできません。そこで、私のカスタム コードの一部を使用して、WhatsApp メッセンジャーのすべての機能を使用する新しいカスタム メッセンジャーを開発したいと思います。JAR をインポートするのと同じように、APK をインポートできますか??

これは他人の作品を使っているように見えますが、学習の観点から、その可能性を知りたいです。今のところ、すべてのセキュリティ、脆弱性を残しましょう。

4

3 に答える 3

6

一言で言えば、いいえ。

APK は、アプリに簡単にインポートできる Jar ファイルとは異なります。また、XML やアセットなどの他のリソースも含まれています。コードは、アプリ コードの Jar ファイルから生成される classes.dex ファイルに保持されます。

さらに、各アプリは独自の DVM で実行され、アプリ間のこの種のやり取りを防ぐためにサンドボックス化されています。サードパーティのアプリとして、自分のアプリで WhatsApp のコードを単純に使用することはできません。

ただし、目的を達成する方法は 2 つあります。

  1. ターゲットにしているアプリが、コンテンツ プロバイダーを介して API を提供するか、ユーザーがオンラインになるなどのデータやイベントにアクセスするために使用できる Web サービスを提供する場合。WhatsAppはそのようなAPIを提供していません
  2. ターゲット アプリを逆コンパイルし、独自のコードを挿入して目的を実行します。WhatsApp などのほとんどの一般的なアプリはコードを難読化して解読を困難にしているため、これは非常に困難な場合があります (ただし、不可能ではありません)。さらに、WhatsApp は、メッセージ、連絡先、チャット スレッドなどのほとんどのデータを AES を使用して暗号化します。これにより、いくつかの場所でバイパスするレイヤーが追加されます。ああ、これを行うと、いくつかの IP および著作権法にも違反します。
于 2013-06-28T08:44:56.440 に答える
2

はいといいえ。

アプリ (スタンドアロンのアプリ) がその情報を他のアプリと共有するには、いくつかの方法があります。1 つはコンテンツ プロバイダーを使用する方法で、もう 1 つはカスタム ブロードキャストを使用する方法です。

たとえば、WhatsApp がそのアプリを文書化しており、さらにその上に構築できるように構築されている場合、それらのブロードキャストをキャッチし、それらのプロバイダーをリッスンして、アプリが WhatsApp で行われた変更に反応できるようにすることができます。

于 2013-06-24T07:11:48.330 に答える
0

ソースコードがあると仮定して、config.properties ファイルを作成し、それを wattsup メッセンジャーの Asset フォルダーに挿入できます。

ここで、このファイルにその変更を書き込むようにカスタム アプリケーションを構成する必要があります。

上記のシナリオでは、変更を加えることができますが、コードではなく APK を扱っているため、アプリケーションはその変更を更新しません。したがって、APK を再生成して最新の変更を適用する必要があります。

自動化された APK 生成の場合、ANT ツールを使用できます。build.xml ファイルを wattsp ソース コードに配置することで、最新のコードで新しい APK を生成するスクリプトを実行できます。私の意見では、APK をライブラリとして使用することはできません。

于 2013-07-02T13:14:42.120 に答える