Hunting down app that shows annoying popups

Every day hundreds of new apps are added to the PlayStore. But quantity not necessarily means quality. When developers are motivared by purely short-term revenue gain, they tend to use various dirty techniques to make as much money as possible during the app’s short run.
One of such techniques is to show popup ads on the phone. Quite often app will wait for few days before start of the shitshow and it may not be obvious which app is guilty. This post shows few methods of identifying such apps.

Information in Play Store should be taken with grain of salt

Whenever you see reviews or number of installs, keep in mind that those numbers may not be genuine. Of course, Google is doing its best to protect integrity of that data, but reality is that bad actors can buy fake installs, reviews. Even the app itself can be bought, so don’t be tricked by quality of the app.
Pricing

Method 1: Recently installed apps

If you recently ibnstalled app, especially from unknown publisher - high chance that those app is responsible for popup ads. Need more proof? Let’s got to the next method.

Method 2: Identify by app icon

This method is also pretty straight forward and does not require any special tools or skills.
Whenever popup is shown, press Overview button on the phone and check the icon of the activity/screen. Often it will be the icon of the app itself. Go find that app and delete it (don’t forget to write bad review for it and report abuse)
Check out the icon

However, this method won’t work whenever developer deliberately tried to hide the app by using different icon:

Icon is not helpful here

Method 3: Use dumpsys tool

Fortunately, Android comes with plenty of useful debugging and troubleshooting commands.
One of such tools is dumpsys.

dumpsys is a tool that runs on Android devices and provides information about system services. You can call dumpsys from the command line using the Android Debug Bridge (ADB) to get diagnostic output for all system services running on a connected device.

To get Android Debug Bridge (ADB), one need to install Android SDK on the computer and enable developer mode on the phone.

After installed, you can run following command to identify rogue app (look for mFocusedApp or mCurrentFocus):

1
2
3
4
5
6
7
8
$ adb shell dumpsys window
.....
mCurConfiguration={0 1.0 themeSeq = 0 showBtnBg = 0 310mcc410mnc en_US ldltr sw360dp w360dp h616dp 640dpi nrml long port finger -keyb/v/h -nav/h mkbd/h s.6}
mHasPermanentDpad=false
mCurrentFocus=Window{fdc24c2 u0 d0 com.<hidden>.photoeditor/com.google.android.gms.ads.AdActivity}
mFocusedApp=AppWindowToken{5bafef3 token=Token{ee24d62 ActivityRecord{9b242d u0 com.<hidden>.photoeditor/com.google.android.gms.ads.AdActivity t20}}}
mInTouchMode=true mLayoutSeq=191
mLastDisplayFreezeDuration=0 due to Window{3e13406 u0 d0 StatusBar}

In this example you can see that running package is com..photoeditor. Go to play.google.com/store/apps/details?id= to find out the app.

Update: Method 2, Improved

David Šmíd suggested one easy method that eliminates the need for method 3.

If you press the button to switch apps (Overview button), long press on the app icon and another icon appears on the right to go to app info screen. Tap on ‘i’ button and it will reveal the app info.

Long press on the icon

App info

Summary

These three methods will help to find which app is responsible for annoying ad popups on Android phones. Please don’t forget to report abuse and leave appropriate comment.