[Android] 找出哪個 app 在發送通知 notification

[Android] 找出哪個 app 在發送通知 notification

最近 PT 的手機突然出現一些奇怪的發送訊息,

看起來有點像廣告訊息,點下去之後沒什麼反應,

不過後來在手機桌面上發現多跑出來一些 app…

整個感覺上就是裝到了什麼惡意/廣告軟體,

問題是:是哪一個呀?

 

在網路上找了一下,發現有至少有三種方法可以找出來:

1. 使用 Android 4.1 系統內建的資訊

如果是 Android 4.1 以上的系統的話,恭喜你,

在訊息上面按久一點 > App info 就可以看到是哪個 app 在發送訊息囉~

 

舉例來說,我想知道訊息列中的 Bluelight Filter 這個訊息是哪個 app 發的,

(它不是惡意/廣告軟體啦,只是拿來舉例)

就可以長按該訊息,就會出現 App info~

Screenshot_2014-10-07-00-19-53

 

選擇 App info 之後,就會跳出來發出此訊息的 app 的資訊囉,

如果確定是惡意或不好的 app 就可以移除了~

以 PT 遇到的例子來說,這種偷偷發送訊息,也不說自己是哪個 app,

然後點了訊息後不徵求同意就擅自在桌面上裝其他的東西的 app,

完全就是個惡意 app,不用考慮立刻移除吧~

Screenshot_2014-10-07-00-19-59  

 

2. 使用 app 來偵測是哪個 app 在發送訊息

較多網友推薦的是 AirPush Detector,或是也可以在 Google Play 上搜尋 airpush detect

這類的 app 應該可以幫忙找出來哪個東西是壞蛋 (即使你的 Android 不是 4.1 以上),

不過我自己是沒有試過啦~

 

3. 使用 Android SDK 中的 adb 命令來查詢

這是在 StackExchange: How can I find out which app is putting ads in my notification bar? 這邊看到的一種解答,

如果有裝 Android SDK 的話,可以用 adb 的方式來查詢:

adb shell dumpsys notification

 

下面是執行的一個範例結果:

test@localhost ~/adt-bundle/sdk/platform-tools $ ./adb shell dumpsys notification
Current Notification Manager state:
Notification List:
NotificationRecord{44739078 pkg=jp.ne.hardyinfinity.bluelightfilter.free id=29365a1 tag=null score=0}
icon=0x7f020028 / jp.ne.hardyinfinity.bluelightfilter.free:drawable/ic_notification
pri=0
score=0
contentIntent=PendingIntent{44597fe8: PendingIntentRecord{443df640 jp.ne.hardyinfinity.bluelightfilter.free startService}}
deleteIntent=null
tickerText=Filter disabled
contentView=android.widget.RemoteViews@42886708
uid=10156
defaults=0x0
flags=0x62
sound=null
vibrate=null
ledARGB=0x0 ledOnMS=0 ledOffMS=0

 

老實說這個方法列出來的不是很容易看,像以 BluelightFilter 這個 app 的訊息而言,

手機上看到的是 Tap here to enable filter,但這段文字在 adb 的輸出中沒看到,

只看到它有個 tickerText 是寫 Filter disabled,應該是沒有顯示全部的資訊出來…

因此要從這個 adb 的輸出中找出是哪個 app 會比較麻煩,可能要一一過濾囉~

 

 

(本頁面已被瀏覽過 438 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料