PSマイクへのアプリケーションのアクセスを監視する説明を記事に追加しました。
インストールする必要があるもの:
- ADB ( Android Debug Bridge )(たとえば、 Android SDK Platform Toolsの一部として- こちらからダウンロードできます );
- 電話のドライバー(必要な場合、たとえば、 Google USBドライバーはここからダウンロードできます )。
電話でUSBデバッグモードをオンにして、スマートフォンをコンピューターのUSBポートに接続します。「充電のみ」以外のUSB接続モードを選択する必要があります。
非表示のテキスト
「デバイスマネージャー」には、たとえば次のようなスマートフォンが表示されます。
「写真」または「ファイル」モード
USBドライブモードで
したがって、 lsusbコマンドの出力では次のようになります。
「写真」または「ファイル」モード

USBドライブモードで

したがって、 lsusbコマンドの出力では次のようになります。

「ツール」がインストールされているディレクトリでコマンドラインを開きます。
接続が成功したことを確認します(接続されたスマートフォンのシリアル番号が表示されます):
( Windowsの場合 )adb devices

Linuxの場合、コマンドは次のようになります。
./adb devices
コンピューターがこのスマートフォンでの使用を許可されていない場合( Android 4.2.2以降)、シリアル番号の横に警告メッセージ「 無許可 」が表示されます。
承認するには、スマートフォンのUSB経由でデバッグ許可を確認する必要があります。
非表示のテキスト
Linuxでは、「 権限がありません 」というメッセージが表示される場合があります。私の場合、スマートフォンを「メディアデバイス( MTP )」モードに切り替えることで問題を解決できました。
デバイスでシェルを起動します(「$」プロンプトが表示されます)。
adb shell

次に、次の「マジック」シンボルを紹介します。
while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" ; date; sleep 1; done
改善されたバージョン、出力「NAME」と空行を削除します。
while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
そして、何も起こりません:-)何かが小さなショットをとることを決定するまで:-)
示された「マジック」文字セットは、カメラサービス-media.cameraへのアクセスの監視を可能な限り速く開始します(このサービスはlibcameraservice.soライブラリによって実装されます)。 カメラがアクティブでない場合、 dumpsysは次のようなものを表示します。

カメラが必要な場合、次のように表示されます。

grepは「 PID 」の存在をチェックし、このチェーンが存在する場合、文字列からプロセス番号を切り取り、このプロセスに関するデータを表示するpsコマンドに送ります。別のgrepは名前を切り取ります。 カメラのアクティビティを検出した後、メッセージが頻繁にこぼれないように1秒間停止します。 コマンドの操作を中断するには、キーの組み合わせCTRL-Cを使用し、シェル-CTRL-Dを終了します。
最も単純な例は、写真/ビデオ撮影用の通常のスマートフォンアプリケーションを起動した後、プロセス名と日付/時刻を含むメッセージが1秒間隔で流出し始めることです。

しかし、より巧妙なアプリケーションがあり、キーワード「スパイカム」で見つけることができます(たとえば、1ピクセルのプレビューでトリックを使用します ( http://www.ez.ai/2014/05/exploring-limits-of-covert-data .html ))。 このような作成は、撮影とレポートの開始時に崩壊しますが、メッセージは定期的に流れます。

また、フローティングボタンをクリックするとシングルショットを撮るアプリケーションで、提案されたメソッドの機能を確認しました。

スクリプトはカメラへの呼び出しを正常にキャッチし、ショットごとに2つのメッセージを発行しました。

しかし、より無害な名前のアプリケーションに同様の機能を実装することを妨げるものは何もありません( https://www.zdnet.com/article/this-scary-android-malware-can-record-audio-video-and-steal-your-データ/ )、および許可-まあ、すべての種類のケースがあります。 はい。「合法的な」アプリケーションは、必要に応じて報告できます(そのようなケースの1つに言及しました)。 また、 Android Pがバックグラウンドアプリケーションがカメラにアクセスするのを防ぐ手段を講じたのも無駄ではありません。
この方法は、 Huawei SCL-L01 ( Android 5.1.1)およびHuawei G700-U20 ( Android 4.2.1)スマートフォンでテスト済みです。dumpsys出力形式は、他のスマートフォンモデルと異なる場合があります( media.cameraサービスでは標準化されていません)。 。
メッセージ形式は/system/lib/libcameraservice.soライブラリにハードコーディングされています-たとえば、 Huawei SCL-L01スマートフォンの場合:

コメントで-Android 9のスマートフォンを操作するためのコードを変更する方法のヒント。
この解説は、 HTC U11によって記録されたカメラアクセスログを示しています。
ただし、たとえば、「古代の」 Huawei U8650 ( Android 2.3.4)では、 dumpsysは正常に機能します。

そして、権利は... grepには十分ではありません:-)

マイクアクセスの監視
同様の方法を使用して、マイクへのアプリケーションのアクセスを監視できます。 この場合、サービスmedia.audio_flingerを監視する必要があります。
「シェル」にコマンドを入力します(指定されたコードはHuawei SCL-L01スマートフォン( Android 5.1.1)で動作します):
while true; do ps `while ! (dumpsys media.audio_flinger | grep -A20 Input| grep -A1 Client | grep yes | grep -o "[^yes ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
マイクを介してサウンドを録音するアプリケーションがある場合、 dumpsys media.audio_flingerの出力に同様のフラグメントがあります。

( 入力スレッド -入力ストリーム、 22467-サウンドを記録するプロセスのPID )。
標準アプリケーション「ボイスレコーダー」で音声を録音し、監視が有効になっている場合(上記のコードを使用)、次のメッセージが表示されます。

ただし、 Google翻訳の音声入力がアクティブになったときにどのようなメッセージが注がれますか。

他のスマートフォンでは、 dumpsysの出力形式が異なる場合があり、コードの修正が必要になります。
たとえば、スマートフォンHuawei G700-U20 ( Android 4.2.1)の場合:

この場合、監視用のコードは次のようになります。
while true; do ps `while ! (dumpsys media.audio_flinger | grep -A3 Input| grep -A1 Clien | grep -o "[^ ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done
この場合、「復活した」アリスがどのように現れるかを以下に示します。
