{"package_name":"com.google.android.wfcactivation","label":"Operator setup","device_count":23,"observation_count":73,"user_facing_count":0,"first_seen":"2025-05-04T16:17:28Z","last_seen":"2026-11-01T22:09:43Z","guidance":{"summary":"\"Operator setup\", the label this package carries on the devices recorded here. It is Google's carrier emergency-address activation app for Wi-Fi calling, and it exists to satisfy a carrier requirement rather than to offer the user a feature of its own. It has no launcher icon and is not user-facing in our sample.\n\nThe mechanism it plugs into is documented in AOSP. The carrier configuration key wfc_emergency_address_carrier_app_string holds, in Android's own words, the component name of the activity that can set up the emergency address for Wi-Fi calling as per carrier requirement. The Settings Wi-Fi calling screen reads that key, turns the value into an intent aimed at the named component, and starts it with an EXTRA_LAUNCH_CARRIER_APP extra: LAUNCH_APP_ACTIVATE before Wi-Fi calling is switched on, and LAUNCH_APP_UPDATE when the user chooses to update their emergency address. In short, this package is the activity a carrier's configuration points that key at, so that a registered emergency address exists before Wi-Fi calling can carry an emergency call. Google's own AOSP test tooling names the component com.google.android.wfcactivation/.VzwEmergencyAddressActivity and uses it to set up a Verizon VoWiFi number, which corroborates both the package's role and the US carrier context it was built for.\n\nVersion note: the package name filling this role has changed across releases, and AOSP has since grown its own implementation of it. The same Google test tooling selects com.google.android.carrierentitlement/.VzwEmergencyAddressActivity on Nougat MR2 builds and com.google.android.wfcactivation/.VzwEmergencyAddressActivity on Oreo builds, so the activity moved package between those releases. From Android 12 AOSP ships ImsServiceEntitlement, an open-source implementation of the GSMA TS.43 service entitlement flow whose component com.android.imsserviceentitlement/.WfcActivationActivity is pointed at by the same carrier-config key and which can render the carrier's VoWiFi sign-up portal. Whether a given current build uses the Google package recorded here, the AOSP module, or both for different carriers could not be sourced, so treat that split as build-specific. The package is still present in our sample on devices from API 29 through 37, with target SDKs of 29 to 36.\n\nProvenance in our sample is consistent with a Google-built carrier component: it is Google-signed by certificates that do not sign the framework, it is never Play-eligible, and it appears on Google Pixel models from the Pixel 6 to the Pixel 10 Pro alongside HMD Global, Motorola, NUU and Zebra Technologies. Its permissions fit the job, including MODIFY_PHONE_STATE, WRITE_APN_SETTINGS, READ_PRIVILEGED_PHONE_STATE, restricted-network access and a setup-wizard compatibility permission.\n\nFor Android Enterprise, EMM and kiosk use it has no part in enrolment, policy or management. The flow described above is the one the Settings Wi-Fi calling screen drives, so on a fleet with no SIM or no Wi-Fi calling, which covers many kiosk and single-app deployments, that path is not expected to be exercised. Whether the package has any other entry point or responsibility could not be sourced, so do not read that as the package being inert. Where it clearly does matter is a fleet using Wi-Fi calling on a carrier that requires a registered emergency address. There, disabling it removes the activity the Settings screen launches to capture or update that address, which can stop Wi-Fi calling being turned on and has obvious implications for emergency calling. What else on a build might depend on it could not be sourced, so treat disabling it as a deliberate decision and test one device on the relevant carrier first.","safe_to_disable":"caution","sources":[{"title":"CarrierConfigManager.java, KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING - Android Open Source Project","url":"https://android.googlesource.com/platform/frameworks/base/+/refs/heads/main/telephony/java/android/telephony/CarrierConfigManager.java"},{"title":"WifiCallingSettingsForSub.java, carrier activity intent and EXTRA_LAUNCH_CARRIER_APP - Android Open Source Project","url":"https://android.googlesource.com/platform/packages/apps/Settings/+/refs/heads/main/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java"},{"title":"TelephonyBaseTest.py, VoWiFi setup naming the wfcactivation component - Android Open Source Project (tools/test/connectivity)","url":"https://android.googlesource.com/platform/tools/test/connectivity/+/163b53a"},{"title":"IMS service entitlement - Android Open Source Project","url":"https://source.android.com/docs/core/connect/ims-service-entitlement"},{"title":"Package provenance for com.google.android.wfcactivation - Android System App Database","url":"https://sysapps.bayton.org/api/packages/com.google.android.wfcactivation"}],"last_verified":"2026-09-25T00:00:00Z"},"labels":[{"label":"Carrier Setup","locale":"en-us","count":43},{"label":"Provider instellen","locale":"nl-NL","count":27},{"label":"Operator setup","locale":"en","count":22},{"label":"Operator setup","locale":"en-gb","count":12},{"label":"Carrier Setup","locale":"en","count":4},{"label":"Operator setup","locale":"en-GB","count":4},{"label":"Operator setup","locale":"en-mt","count":3},{"label":"Provider instellen","locale":"nl-nl","count":3},{"label":"Carrier Setup","locale":"","count":2},{"label":"Carrier Setup","locale":"en-US","count":2},{"label":"Configuración del proveedor","locale":"es-us","count":2},{"label":"Carrier Setup","locale":"en-BD","count":1},{"label":"Carrier Setup","locale":"en-GB","count":1},{"label":"Carrier Setup","locale":"en-bd","count":1},{"label":"Carrier Setup","locale":"en-ca-u-fw-mon-mu-celsius","count":1},{"label":"Carrier Setup","locale":"en-gb","count":1},{"label":"Carrier Setup","locale":"en-us-u-fw-mon-ms-ussystem-mu-fahrenhe","count":1},{"label":"Operator setup","locale":"","count":1},{"label":"Operator setup","locale":"en-au","count":1},{"label":"Operator setup","locale":"en-de","count":1}],"seen_on_pagination":{"paging_mode":"complete","limit":23,"offset":0,"has_more":false,"next_offset":null,"after":null,"next_after":null,"total":23},"seen_on":[{"device_id":325,"make":"Google","model":"Pixel 10 Pro","os_api":"36","observation_count":1,"user_facing_count":0,"last_seen":"2026-03-26T19:19:08Z","provenance":{"classification":"google","sha256":"4ef08e4f1a83bcdc0a3cfced775a2dcaecc888c9f4fbf101e71d64a8f35e0ad6"}},{"device_id":358,"make":"Google","model":"Pixel 10 Pro","os_api":"37","observation_count":1,"user_facing_count":0,"last_seen":"2026-11-01T22:09:43Z","provenance":{"classification":"google","sha256":"aec0408b9b3fbc34c11664182558f6492aff96ae01ff7ebc5055a5a4cea224ad"}},{"device_id":63,"make":"Google","model":"Pixel 6","os_api":"31","observation_count":1,"user_facing_count":0,"last_seen":"2025-06-22T21:31:08Z"},{"device_id":203,"make":"Google","model":"Pixel 6","os_api":"36","observation_count":1,"user_facing_count":0,"last_seen":"2025-10-13T09:58:56Z"},{"device_id":9,"make":"Google","model":"Pixel 6 Pro","os_api":"35","observation_count":9,"user_facing_count":0,"last_seen":"2025-06-23T14:09:38Z"},{"device_id":313,"make":"Google","model":"Pixel 7","os_api":"33","observation_count":1,"user_facing_count":0,"last_seen":"2026-02-19T22:30:10Z","provenance":{"classification":"google","sha256":"4ef08e4f1a83bcdc0a3cfced775a2dcaecc888c9f4fbf101e71d64a8f35e0ad6"}},{"device_id":318,"make":"Google","model":"Pixel 7 Pro","os_api":"36","observation_count":1,"user_facing_count":0,"last_seen":"2026-03-09T09:38:09Z","provenance":{"classification":"google","sha256":"4ef08e4f1a83bcdc0a3cfced775a2dcaecc888c9f4fbf101e71d64a8f35e0ad6"}},{"device_id":93,"make":"Google","model":"Pixel 8","os_api":"36","observation_count":4,"user_facing_count":0,"last_seen":"2026-06-03T19:01:11Z"},{"device_id":198,"make":"Google","model":"Pixel 8a","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-10-05T18:31:57Z"},{"device_id":6,"make":"Google","model":"Pixel 9 Pro XL","os_api":"36","observation_count":21,"user_facing_count":0,"last_seen":"2026-03-29T03:46:05Z","provenance":{"classification":"google","sha256":"4ef08e4f1a83bcdc0a3cfced775a2dcaecc888c9f4fbf101e71d64a8f35e0ad6"}},{"device_id":348,"make":"Google","model":"Pixel 9 Pro XL","os_api":"37","observation_count":2,"user_facing_count":0,"last_seen":"2026-10-26T00:10:46Z","provenance":{"classification":"google","sha256":"aec0408b9b3fbc34c11664182558f6492aff96ae01ff7ebc5055a5a4cea224ad"}},{"device_id":47,"make":"Google","model":"Pixel 9a","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-06-15T16:13:40Z"},{"device_id":108,"make":"Google","model":"Pixel 9a","os_api":"36","observation_count":6,"user_facing_count":0,"last_seen":"2026-06-02T15:57:40Z","provenance":{"classification":"google","sha256":"aec0408b9b3fbc34c11664182558f6492aff96ae01ff7ebc5055a5a4cea224ad"}},{"device_id":3574,"make":"Google","model":"Pixel 9a","os_api":"37","observation_count":1,"user_facing_count":0,"last_seen":"2026-07-16T23:51:20Z"},{"device_id":277,"make":"HMD Global","model":"Nokia 8.3 5G","os_api":"29","observation_count":1,"user_facing_count":0,"last_seen":"2025-12-25T19:50:30Z","provenance":{"classification":"google","sha256":"aec0408b9b3fbc34c11664182558f6492aff96ae01ff7ebc5055a5a4cea224ad"}},{"device_id":270,"make":"motorola","model":"moto g - 2025","os_api":"36","observation_count":2,"user_facing_count":0,"last_seen":"2026-10-25T04:45:21Z","provenance":{"classification":"google","sha256":"4ef08e4f1a83bcdc0a3cfced775a2dcaecc888c9f4fbf101e71d64a8f35e0ad6"}},{"device_id":166,"make":"motorola","model":"moto g34 5G","os_api":"34","observation_count":1,"user_facing_count":0,"last_seen":"2025-09-02T17:35:29Z"},{"device_id":149,"make":"motorola","model":"moto g85 5G","os_api":"34","observation_count":1,"user_facing_count":0,"last_seen":"2025-08-21T06:57:21Z"},{"device_id":117,"make":"motorola","model":"motorola edge 50 fusion","os_api":"35","observation_count":12,"user_facing_count":0,"last_seen":"2026-06-09T01:11:42Z","provenance":{"classification":"google","sha256":"4ef08e4f1a83bcdc0a3cfced775a2dcaecc888c9f4fbf101e71d64a8f35e0ad6"}},{"device_id":204,"make":"motorola","model":"motorola edge 50 fusion","os_api":"36","observation_count":2,"user_facing_count":0,"last_seen":"2026-07-01T13:55:22Z","provenance":{"classification":"google","sha256":"aec0408b9b3fbc34c11664182558f6492aff96ae01ff7ebc5055a5a4cea224ad"}},{"device_id":192,"make":"motorola","model":"ThinkPhone by motorola","os_api":"34","observation_count":1,"user_facing_count":0,"last_seen":"2025-09-26T23:38:27Z"},{"device_id":200,"make":"motorola","model":"ThinkPhone by motorola","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2025-10-11T18:14:41Z"},{"device_id":290,"make":"NUU","model":"S6707X","os_api":"34","observation_count":1,"user_facing_count":0,"last_seen":"2026-01-12T16:57:57Z","provenance":{"classification":"google","sha256":"4ef08e4f1a83bcdc0a3cfced775a2dcaecc888c9f4fbf101e71d64a8f35e0ad6"}}],"intelligence":{"insights":["Signed by Google's own signing key (the same key Google uses across devices), so it is a Google-provided preinstall that updates independently of the system image, though 2 different Google signing keys appear across the fleet. This certificate spans 4 device makes - the hallmark of a globally distributed Google key.","Its largest observed manifest declares 18 permissions: 1 runtime (user-granted), 5 signature or system-level, 6 install-time and 6 vendor or uncatalogued.","APK size ranges from 2.8 MB to 5.4 MB across the reporting device profiles, so the build differs substantially between them.","Never reported as user-facing, so it runs as a background or system component rather than an app the user opens."],"device_profiles":14,"signer_count":2,"signer_consistent":false,"max_permission_count":18,"min_size_bytes":2961806,"max_size_bytes":5612485,"min_target_sdk":29,"max_target_sdk":36,"oldest_version":"103.1.476128583","newest_version":"104.1.868098431","has_third_party_preinstall":false,"genuine_third_party":false,"play_eligible_count":0,"signers":[{"sha256":"aec0408b9b3fbc34c11664182558f6492aff96ae01ff7ebc5055a5a4cea224ad","classification":"google","observation_count":31,"makes":["Google","HMD Global","Zebra Technologies","motorola"],"signs_framework":false,"global_make_count":4,"global_package_count":1,"global_observation_count":31},{"sha256":"4ef08e4f1a83bcdc0a3cfced775a2dcaecc888c9f4fbf101e71d64a8f35e0ad6","classification":"google","observation_count":29,"makes":["Google","NUU","motorola"],"signs_framework":false,"global_make_count":3,"global_package_count":1,"global_observation_count":29}],"permissions":[{"permission":"android.permission.ACCESS_LOCAL_NETWORK","official":false},{"permission":"android.permission.ACCESS_NETWORK_STATE","description":"Allows the app to view information about network connections such as which networks exist and are connected.","official":true},{"permission":"android.permission.CHANGE_NETWORK_STATE","description":"Allows the app to change the state of network connectivity.","official":true},{"permission":"android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS","description":"Signature or privileged system permission.","official":false},{"permission":"android.permission.FOREGROUND_SERVICE","description":"Allows the app to make use of foreground services.","official":true},{"permission":"android.permission.INTERNET","description":"Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.","official":true},{"permission":"android.permission.MODIFY_PHONE_STATE","description":"Signature or privileged system permission.","official":false},{"permission":"android.permission.POST_NOTIFICATIONS","description":"Allows the app to show notifications","official":true},{"permission":"android.permission.READ_PRIVILEGED_PHONE_STATE","description":"Signature or privileged system permission.","official":false,"doc":{"title":"User Data Identifiers","url":"https://developer.android.com/identity/user-data-ids"}},{"permission":"android.permission.RECEIVE_BOOT_COMPLETED","description":"Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.","official":true},{"permission":"android.permission.USE_LOOPBACK_INTERFACE","official":false},{"permission":"android.permission.WAKE_LOCK","description":"Allows the app to prevent the phone from going to sleep.","official":true},{"permission":"android.permission.WRITE_APN_SETTINGS","description":"Signature or privileged system permission.","official":false,"doc":{"title":"Behavior changes: Apps targeting Android 11","url":"https://developer.android.com/about/versions/11/behavior-changes-11"}},{"permission":"android.permission.WRITE_SETTINGS","description":"Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.","official":true},{"permission":"com.google.android.apps.carrier.log.permission.SEND_LOGS","official":false},{"permission":"com.google.android.providers.gsf.permission.READ_GSERVICES","official":false},{"permission":"com.google.android.setupwizard.SETUP_COMPAT_SERVICE","official":false},{"permission":"com.qualcomm.permission.USE_QCRIL_MSG_TUNNEL","official":false}]},"previews":{"labels":{"kind":"preview","limit":60,"total":20,"truncated":false,"collection_url":"/api/packages/com.google.android.wfcactivation/labels"}},"collections":{"labels":"/api/packages/com.google.android.wfcactivation/labels","seen_on":"/api/packages/com.google.android.wfcactivation/seen_on"}}
