3

Android でサード パーティ アプリケーションを監視することは可能ですか。つまり、木曜日の午前 2 時 30 分のアプリ xyz アクセスの連絡先リストなど、サード パーティ アプリのすべてのログについて知りたいということです。

アプリがsqliteフレームワーククラスでクエリを実行するたびに1つのログが生成されるように、フレームワークコードを変更できますか? ルート化されたデバイスを介して可能になるはずですが、これを実装する方法がわかりません。

4

5 に答える 5

4

LogCollectorLOG COLLECTOR アプリケーションのインストール

于 2012-09-06T12:11:53.063 に答える
4

誰が contentProvider にアクセスしたかを知るためにフレームワークを変更する 1 つの方法は、変更することです。

enforceReadPermissionenforceWritePermissionContentProvider.java で、contentProvider を呼び出しているパッケージをログに記録します。

Log.d(TAG,""+getCallingPackages() +" app called provider "+ uri.getAuthority());

getcallingpackages 関数

private Collection<String> getCallingPackages() {
     int caller = Binder.getCallingUid();
     if (caller == 0) {
         return null;
     }
     return Lists.newArrayList(mContext.getPackageManager().getPackagesForUid(caller));
 }
于 2012-09-16T09:34:33.637 に答える
2

アプリがsqliteフレームワーククラスでクエリを実行するたびに1つのログが生成されるように、フレームワークコードを変更できますか?

Androidにフォークして変更を追加し、フォークしたAndroidのコピーを含む独自のROM modを作成し、そのROMmodをデバイスにインストールします。

ルート権限を取得されたデバイスを介して可能になるはずだと思います

せいぜい、「独自のROM modの作成」ステップをスキップして、改訂されたフレームワークJARをルート化されたデバイスにコピーしようとすることができます。ただし、そのフレームワークJARがOSの他の部分と一致しない場合、さまざまなことが機能しない可能性があります。そのため、これを行うための唯一の安全な方法は、完全なROMmodを使用することです。

于 2012-09-17T17:03:30.380 に答える
2

これは当たり前のように思えるかもしれませんが、とにかく言います。Eclipse の LogCat で任意のアプリケーションのログを読み取ることができます。

アプリケーション名が分かっていて、実際にログが作成される (つまり、ログが有効になっている) 場合は、それらをフィルタリングして、そのアプリケーションに固有のログを表示します。

于 2012-09-06T12:16:17.480 に答える
1

Android用のaopフレームワークを実装できるかもしれません...

于 2012-09-16T02:16:23.297 に答える