はじめに
子どもが使っているFire Tabletに、ある時から不自然なタイミングで広告が立ち上がる事象が確認されました。
頻繁にアプリのDLをしているため、なにか悪意のあるアプリをDLしてしまったものと仮説を立てて調べることにしました
前提
端末情報などは以下の通り
Key | Value |
---|---|
デバイス | Fire HD 10(Fire OS 8.1.0:Android 11 ベース) |
作業用Mac | macOS 12.7(Apple Silicon) |
シェル | zsh(/bin/zsh ) |
ADB | platform-tools 35.0.1‐10411341 |
事象
- アプリ利用中に数分おきで全画面広告が割り込む。
- 広告タップで Amazon Appstore が開く。
- 開いた直後にアクティビティ一覧を出すとAppstoreが開いたことがわかる
- 端末再起動後も再発。
調べてみたこと
ADB セットアップ(macOS)
# ダウンロード & 展開
cd ~/Downloads
unzip platform-tools-latest-darwin.zip
mkdir -p ~/.android-sdk/platform-tools
mv platform-tools/* ~/.android-sdk/platform-tools/
# zsh に PATH を追加
echo 'export PATH="$PATH:$HOME/.android-sdk/platform-tools"' >> ~/.zshrc
source ~/.zshrc
USB デバッグ許可
Fire OS: 設定 → 端末オプション → 開発者オプション → USB デバッグ ON
接続後、ポップアップで「常に許可」を選択。
端末認識確認
“device”と表示されればOK
adb devices
リアルタイムログ取得
めっちゃ流れるので、実行したらすぐ再現トライする
adb logcat -v time | tee ~/Desktop/fire_ads.log
広告発生直後のパッケージ特定
再現したらすぐlogcatを止める
止めたら、grepする
grep -E "START u0|Displayed" ~/Desktop/fire_ads.log | tail
06-30 18:23:17.036 I ActivityTaskManager: START u0 {flg=0x10004000
cmp=com.escape.running.robot/com.nb.market.page.OMGActivity} from uid 10672
06-30 18:24:24.685 I ActivityTaskManager: START u0 {cmp=com.escape.running.robot/
com.mbridge.msdk.reward.player.MBRewardVideoActivity (has extras)} from uid 10672
詳細情報の取得
adb shell dumpsys package com.escape.running.robot | grep -E "firstInstallTime|installerPackageName|versionName"
# firstInstallTime=2025-06-29 ...
# installerPackageName=com.amazon.venezia
原因解析
項目 | 内容 | 備考 |
---|---|---|
パッケージ名 | com.escape.running.robot | Amazonで購入したゲーム Robot Adventure – Run and Escape と一致(購入履歴をリストして怪しいものを突合したら見つかった) |
アクティビティ | OMGActivity , MBRewardVideoActivity | MBridge(旧 Mobvista)系 SDK が広告動画を全画面再生 |
オーバーレイ権限 | SYSTEM_ALERT_WINDOW: default | 権限は未許可 → 代替としてフルスクリーン遷移が実行 |
インストール時刻 | 2025-06-29 08:22 | 広告出現開始と合致 |
当該ゲームが、広告 SDK を介して常に自アクティビティを前面に出し、リワード動画を再生していたようだ
対処手順
# ❶ 一時的に無効化
adb shell pm disable-user com.escape.running.robot
# ❷ 完全削除(問題なければ)
adb uninstall com.escape.running.robot
確認ポイント
- 端末を再起動し、
adb logcat
監視で同パッケージが再度表示されないか確認。 adb shell pm list packages | grep escape
が空ならOK。
施策 | コマンド/設定例 |
---|---|
オーバーレイ権限の定期点検 | 設定 → アプリと通知 → 特別なアクセス → 他のアプリの上に重ねて表示 |
購入前レビュー確認 | 「広告がしつこい」「ロック画面に出る」系レビューは避ける |
子ども用プロフィール分離 | 親アカウントでアプリ購入を PIN 保護 |
Appstore 推奨通知の遮断 | 設定 → アプリと通知 → Amazon Appstore → 通知/オーバーレイ OFF |
まとめ
- adb + logcat で「広告発生時のアクティビティ名」を捕捉すると発生源を即特定できる。
SYSTEM_ALERT_WINDOW
が拒否されても、自前アクティビティ遷移で広告を出すアプリがある。- Amazon Appstore でも広告過多アプリは混在するため、インストール履歴とログを突き合わせて検証するのが確実。