{"package_name":"com.google.android.tetheringentitlement","label":"Tethering Entitlement","device_count":18,"observation_count":57,"user_facing_count":0,"first_seen":"2025-05-04T16:17:28Z","last_seen":"2026-11-02T06:57:16Z","guidance":{"summary":"Recorded as \"Tethering Entitlement\", this is a Google package that appears to perform carrier entitlement checks for mobile hotspot (tethering). The system configuration file nexus.xml, in the copy extracted into the redfin device directory of the TheMuppets proprietary_vendor_google tree cited here, lists this package and describes it in a comment as the \"Tethering entitlement check app\", allowlisting it to run a JobIntentService in the background while the device is in power save (except idle) and Internet access in the background while data saver is on. AOSP's Tethering module configuration describes the mechanism such an app plugs into: where the mobile hotspot feature \"requires provisioning\", a provisioning app can be named for the UI check and a no-UI broadcast check, with a recheck period that defaults to 24 hours. The AOSP default leaves those slots empty, and no cited source shows which value Pixel builds set, so the tie between this package and those slots rests on its label, the nexus.xml comment and its permissions, and is an inference.\n\nOn this site it is recorded on Google Pixel phones and on some NUU, Nothing and Unihertz devices, on devices reporting OS API levels 31 to 37. Where this site holds signer data, which is 3 of those 4 makes (Google, NUU and Nothing), it is signed by Google keys that do not sign the Android framework, and this site records two distinct signing keys for it. This site records it requesting TETHER_PRIVILEGED, CONNECTIVITY_USE_RESTRICTED_NETWORKS, WRITE_APN_SETTINGS, READ_PRIVILEGED_PHONE_STATE and INTERNET, among others. This site aggregates permissions across observations rather than per build, so which builds declare each of them cannot be established.\n\nVersion note: AOSP documents that the Tethering module, which includes the \"interaction with tethering entitlement\", is the updatable com.android.tethering APEX available for devices running Android 11 or higher, and that from Android 12 all of packages/modules/Connectivity is in the module's scope. That describes the platform side; whether this package's own role changed across those releases could not be sourced. The nexus.xml copy cited here is from that tree's lineage-19.1 branch, a single snapshot, so it does not show whether later builds configure the package the same way.\n\nFor Android Enterprise, EMM and kiosk use this package is not a management control. If it is the entitlement checker its label and the nexus.xml comment indicate, it acts for the carrier rather than for the organisation, and disabling it could affect whether hotspot can be turned on where the carrier requires an entitlement check; that effect was not verified here. To restrict tethering, the Android Management API's deviceConnectivityManagement tetheringSettings field is the documented lever: DISALLOW_ALL_TETHERING is documented as supported on fully managed devices and work profiles on company-owned devices on all supported Android versions, and DISALLOW_WIFI_TETHERING on company-owned devices running Android 13 and above.","sources":[{"title":"nexus.xml (redfin, lineage-19.1) - TheMuppets/proprietary_vendor_google, GitHub","url":"https://github.com/TheMuppets/proprietary_vendor_google/blob/7bc30dbbb0f010a9d2c8b77285ad7f99089a716f/redfin/proprietary/product/etc/sysconfig/nexus.xml"},{"title":"Tethering/res/values/config.xml - AOSP packages/modules/Connectivity","url":"https://android.googlesource.com/platform/packages/modules/Connectivity/+/refs/heads/main/Tethering/res/values/config.xml"},{"title":"Tethering - Android Open Source Project","url":"https://source.android.com/docs/core/ota/modular-system/tethering"},{"title":"Policy resource (DeviceConnectivityManagement) - Android Management API","url":"https://developers.google.com/android/management/reference/rest/v1/enterprises.policies"},{"title":"Package provenance for com.google.android.tetheringentitlement - Android System App Database","url":"https://sysapps.bayton.org/api/packages/com.google.android.tetheringentitlement"}],"last_verified":"2026-10-14T00:00:00Z"},"labels":[{"label":"Tethering Entitlement","locale":"en-us","count":33},{"label":"Tethering Entitlement","locale":"nl-NL","count":27},{"label":"Tethering Entitlement","locale":"en","count":21},{"label":"Tethering Entitlement","locale":"en-gb","count":12},{"label":"Tethering Entitlement","locale":"en-GB","count":4},{"label":"Tethering Entitlement","locale":"","count":3},{"label":"Tethering Entitlement","locale":"nl-nl","count":3},{"label":"Tethering Entitlement","locale":"sv-SE","count":3},{"label":"Tethering Entitlement","locale":"en-US","count":1},{"label":"Tethering Entitlement","locale":"en-au","count":1},{"label":"Tethering Entitlement","locale":"en-ca-u-fw-mon-mu-celsius","count":1},{"label":"Tethering Entitlement","locale":"en-de","count":1},{"label":"Tethering Entitlement","locale":"en-us-u-fw-mon-ms-ussystem-mu-fahrenhe","count":1},{"label":"Tethering Entitlement","locale":"sv-se","count":1}],"seen_on_pagination":{"paging_mode":"complete","limit":18,"offset":0,"has_more":false,"next_offset":null,"after":null,"next_after":null,"total":18},"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":"a4960cb7bf84511441f269979cac01378f76624d01d64f14c2829a6a5f79f33a"}},{"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":"f3c7affb5fd177a18e91d414cf006d1439c1842fcc1b1df26089d4e3a6c6a3ff"}},{"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":"a4960cb7bf84511441f269979cac01378f76624d01d64f14c2829a6a5f79f33a"}},{"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":"a4960cb7bf84511441f269979cac01378f76624d01d64f14c2829a6a5f79f33a"}},{"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":"a4960cb7bf84511441f269979cac01378f76624d01d64f14c2829a6a5f79f33a"}},{"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":"f3c7affb5fd177a18e91d414cf006d1439c1842fcc1b1df26089d4e3a6c6a3ff"}},{"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":"f3c7affb5fd177a18e91d414cf006d1439c1842fcc1b1df26089d4e3a6c6a3ff"}},{"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":25,"make":"Nothing","model":"A015","os_api":"35","observation_count":2,"user_facing_count":0,"last_seen":"2025-05-14T07:26:24Z"},{"device_id":344,"make":"Nothing","model":"A063","os_api":"35","observation_count":1,"user_facing_count":0,"last_seen":"2026-11-02T06:57:16Z","provenance":{"classification":"google","sha256":"a4960cb7bf84511441f269979cac01378f76624d01d64f14c2829a6a5f79f33a"}},{"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":"a4960cb7bf84511441f269979cac01378f76624d01d64f14c2829a6a5f79f33a"}},{"device_id":267,"make":"Unihertz","model":"Titan 2","os_api":"35","observation_count":2,"user_facing_count":0,"last_seen":"2026-01-05T18:10:15Z"}],"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 3 device makes - the hallmark of a globally distributed Google key.","Its largest observed manifest declares 11 permissions: 4 signature or system-level, 4 install-time and 3 vendor or uncatalogued.","Never reported as user-facing, so it runs as a background or system component rather than an app the user opens."],"device_profiles":10,"signer_count":2,"signer_consistent":false,"max_permission_count":11,"min_size_bytes":467697,"max_size_bytes":771327,"min_target_sdk":33,"max_target_sdk":36,"oldest_version":"104.1.737890240","newest_version":"104.1.737890240","has_third_party_preinstall":false,"genuine_third_party":false,"play_eligible_count":0,"signers":[{"sha256":"a4960cb7bf84511441f269979cac01378f76624d01d64f14c2829a6a5f79f33a","classification":"google","observation_count":29,"makes":["Google","NUU","Nothing"],"signs_framework":false,"global_make_count":3,"global_package_count":1,"global_observation_count":29},{"sha256":"f3c7affb5fd177a18e91d414cf006d1439c1842fcc1b1df26089d4e3a6c6a3ff","classification":"google","observation_count":26,"makes":["Google","Nothing"],"signs_framework":false,"global_make_count":2,"global_package_count":1,"global_observation_count":26}],"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.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.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.TETHER_PRIVILEGED","description":"Signature or privileged system permission.","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":"com.google.android.apps.carrier.log.permission.SEND_LOGS","official":false},{"permission":"com.google.android.providers.gsf.permission.READ_GSERVICES","official":false}]},"previews":{"labels":{"kind":"preview","limit":60,"total":14,"truncated":false,"collection_url":"/api/packages/com.google.android.tetheringentitlement/labels"}},"collections":{"labels":"/api/packages/com.google.android.tetheringentitlement/labels","seen_on":"/api/packages/com.google.android.tetheringentitlement/seen_on"}}
