• PSA: Use adb to check which ad services are running on your Android

    From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android on Wed Mar 11 03:15:18 2026
    From Newsgroup: comp.mobile.android

    PSA: Use adb to check which ad services are running on your Android

    Background:
    I was digging into why Project Mainline was only updating via
    Samsung OTA updates and not via Google Play Store updates, so I
    had to re-install adservices and telemetry APKs (which are required
    for Mainline bundles), but then I checked to see if ad services
    are running. They're not. Whew! I dodged bullet. Did you?

    Run this from your desktop or laptop computer:
    adb shell ps -A | grep -i ad
    Mine didn't report these, but you should look for them.
    com.google.android.gms.ads
    com.google.android.gms.adservices
    com.google.android.adservices.service
    com.google.android.adservices.api
    com.google.android.gms.measurement
    com.google.android.gms.analytic
    You don't want them, that's for sure.

    Also make sure this reports nothing:
    adb shell dumpsys package com.google.mainline.adservices | grep -i provider
    <nothing> (Play Services does not expose content://com.google.android.gms.ads.identifier)

    Also query the Advertising ID via Play Services:
    adb shell settings get global advertising_id
    null (i.e., the Advertising ID is disabled)
    adb shell settings get secure advertising_id
    null (i.e., the Advertising ID is disabled)

    Check the "limit ad tracking" flag
    adb shell settings get global limit_ad_tracking
    null (i.e., the subsystem not active)
    adb shell settings get secure limit_ad_tracking
    null (i.e., the subsystem not active)

    Check whether the Advertising ID provider exists
    adb shell pm list providers | grep -i ads
    <nothing> (i.e., the Advertising ID provider is not active)

    adb shell content query --uri content://com.google.android.gms.ads.identifier
    Error while accessing provider:com.google.android.gms.ads.identifier
    java.lang.IllegalStateException: Could not find provider: com.google.android.gms.ads.identifier
    at com.android.commands.content.Content$Command.execute(Content.java:519)
    at com.android.commands.content.Content.main(Content.java:735)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:411)

    Check whether Play Services has the Ads Identifier module active.
    adb shell dumpsys activity service com.google.android.gms/.chimera.GmsServiceDumpService | grep -i ads
    <nothing>
    adb shell dumpsys activity service com.google.android.gms/.chimera.container.GmsModuleService | grep -i ads
    <nothing>
    In both cases, what you do NOT want to see are things like:
    ads_identifier
    ads.service
    com.google.android.gms.ads
    GmsServiceId: ADVERTISING_I
    If you see nothing, that means:
    a. Play Services has not loaded the Ads Identifier module.
    b. Because Play Services considers ads disabled.

    Given I had to enable adservices & telemetry today to get Mainline to work, luckily, my Android device currently has:
    i. No Advertising ID
    ii. No ad personalization
    iii. No ad tracking
    iv. No Topics API
    v. No Fledge
    vi. No Attribution Reporting
    vii. No ad-related Play Services providers
    viii. No ad-related processes running

    Even though the Mainline AdServices module is installed (because Mainline requires it),
    it's dormant, as far as I can tell, as adservicdes is completely inert.

    The system literally cannot generate or return an advertising ID (AFAIK).
    As far as I know, I have successfully restored the Mainline update pipeline without enabling any advertising functionality. So my device is secure, updatable,
    and yet still completely ad-free (AFAICT).

    What are your adb results?
    --- Synchronet 3.21d-Linux NewsLink 1.2