-
-
Notifications
You must be signed in to change notification settings - Fork 25
/
gmscompat_config
279 lines (229 loc) · 9.13 KB
/
gmscompat_config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
[[flags]]
[com.google.android.gms.enpromo]
# enpromo is a GmsCore module that shows a notification that prompts the user to enable
# Exposure Notifications (en). It needs location access to determine which location-specific app
# needs to be installed for Exposure Notifications to function.
# Location permission can't be revoked for privileged GmsCore, it being revoked leads to a crash
# (location access being disabled is handled correctly, but spoofing it would break other functionality)
PromoFeature__enabled perms-none-of android.permission.ACCESS_COARSE_LOCATION false
[com.google.android.gms.fido]
# Note that the rest of dynamic FIDO flags are forced to their default values by force_default_flags
# below for increased stability
Passkeys__client_data_hash_override_for_security_keys true
[com.google.android.metrics]
# controls access to privileged StatsManager#getRegisteredExperimentIds()
add_external_experiment_ids false
[com.google.android.gms.nearby]
# disable WearableDataListenerService, it needs privileged permissions
FastPairFeature__enable_wearable_service false
# use PackageManager#getNameForUid() instead of PackageManager#getPackagesForUid(), the latter needs
# a shim that is currently absent
FastPairConfig__sass_get_package_name_from_playback_configuration false
[com.google.android.gms.cast]
# Prevent crashes in GmsCore caused by calling ConnectivityManager#registerNetworkCallback too many
# times when it has no INTERNET permission (there's a OS-enforced limit on the number of these callbacks).
# Likely a regression, newer and older versions of GmsCore don't have this issue.
# This flag makes it use a deprecated BroadcastReceiver instead.
MdnsConfigs__use_connectivity_manager_for_wifi_monitor_if_possible false
# CAST_CONNECTION_NOTIFY dialogs are incompatible with gmscompat code that shows a notification
# prompt on background activity starts, because startActivity() calls are used for both showing and
# auto-dismissing them. These dialogs are disabled by default, but were enabled with a PhenotypeFlag
# update.
# See https://discuss.grapheneos.org/d/1263-notification-says-google-play-services-needs-to-show-a-screen
ReceiverControlChannelFeatures__enable_user_accept_dialogs false
[com.google.android.gms.people]
# controls access to ContactsContract$SimContacts#getSimAccounts()
AccountCategoriesFeature__use_cp2_sim_account_settings perms-none-of android.permission.READ_CONTACTS false
FsaDeviceContactsMoveFeature__large_contact_list_device_opt_in_disallowed perms-none-of android.permission.READ_CONTACTS false
[com.google.android.gms.security]
# disable TelecomTaskService, it needs privileged MODIFY_PHONE_STATE permission
enable_telecom_feature false
[com.google.android.gms.update]
# OS update service
# This flag is replaced with the gservices update_service_enabled flag since GmsCore 24.31
service_enabled false
[com.google.android.westworld]
# seems to be an OS stats/analytics service, requires privileged permissions to function
enabled false
is_enabled false
metrics_enabled false
metadata_enabled false
[com.google.android.gms.auth_account]
# needed to prevent GmsCore from blocking Google account removal due to lacking a privileged integration into OS
BugFixFeatures__fix_frp_in_r false
[com.google.android.location]
# these flags are needed to prevent GmsCore from ignoring results of the legacy WifiManager#startScan()
# method, which doesn't have an unprivileged modern version. It's used for location estimation based
# on nearby Wi-Fi access points
d_psl false
fwm true
[com.google.android.gms.kidssettings#com.google.android.gms]
SeparateApkFeature__disable_separate_apk_if_not_used false
[gservices]
# make sure PhenotypeFlags are overridable by Gservices flags. Overriding Play Store (finsky) PhenotypeFlags
# directly is much more complex than overriding Gservices flags.
finsky.kill_switch_phenotype_gservices_check set-string 0
# disable GmsCore OS update service
update_service_enabled set-string 0
[[stubs]]
[android.app.ActivityManager]
addOnUidImportanceListener void
# 2 is ProcessState.IMPORTANCE_TOP
getPackageImportance int 2
[android.app.admin.DevicePolicyManager]
isDeviceProvisioned true
isDeviceProvisioningConfigApplied true
getDeviceOwnerComponentOnAnyUser null
getDeviceOwnerNameOnAnyUser nullString
getProfileOwnerNameAsUser nullString
notifyPendingSystemUpdate void
[android.app.backup.BackupManager]
isBackupEnabled false
isBackupServiceActive false
[android.app.usage.UsageStatsManager]
# 10 is STANDBY_BUCKET_ACTIVE
getAppStandbyBucket int 10
[android.bluetooth.BluetoothAdapter]
disable false
enable false
# 20 is SCAN_MODE_NONE
getScanMode int 20
getName nullString
# 02:00:00:00:00:00 is DEFAULT_MAC_ADDRESS
getAddress String 02:00:00:00:00:00
listenUsingInsecureL2capChannel throw java.io.IOException
getProfileProxy false
registerBluetoothConnectionCallback default
unregisterBluetoothConnectionCallback default
[android.bluetooth.BluetoothDevice]
getIdentityAddress default
getMetadata default
setMetadata default
setPairingConfirmation default
setSilenceMode default
[android.bluetooth.BluetoothManager]
openGattServer default
[android.bluetooth.le.BluetoothLeAdvertiser]
startAdvertisingSet default
[android.content.ContentResolver]
registerContentObserver void
[android.content.pm.verify.domain.DomainVerificationManager]
queryValidVerificationPackageNames emptyList
[android.hardware.usb.UsbManager]
getPorts emptyList
grantPermission void
setCurrentFunctions void
[android.location.LocationManager]
getLastKnownLocation null
registerGnssMeasurementsCallback false
registerGnssStatusCallback false
setExtraLocationControllerPackage void
setExtraLocationControllerPackageEnabled void
[android.media.AudioManager]
muteAwaitConnection void
getMutingExpectedDevice null
registerMuteAwaitConnectionCallback void
unregisterMuteAwaitConnectionCallback void
[android.media.session.MediaSessionManager]
getActiveSessions emptyList
addOnActiveSessionsChangedListener void
[android.net.wifi.WifiManager]
getPrivilegedConfiguredNetworks emptyList
getAllMatchingWifiConfigs emptyList
getMatchingOsuProviders emptyMap
getMatchingPasspointConfigsForOsuProviders emptyMap
getSoftApConfiguration null
getCurrentNetwork null
reconnect false
[android.nfc.NfcAdapter]
disable false
[android.os.DropBoxManager]
getNextEntry null
[android.os.SystemVibratorManager$SingleVibrator]
addVibratorStateListener void
[android.os.UserManager]
getSeedAccountOptions null
getUserName String Owner
getUserRestrictionSources emptyList
[android.safetycenter.SafetyCenterManager]
isSafetyCenterEnabled false
[android.telecom.TelecomManager]
getAllPhoneAccountHandles emptyList
getCallCapablePhoneAccounts emptyList
getPhoneAccount null
getSelfManagedPhoneAccounts emptyList
getUserSelectedOutgoingPhoneAccount null
placeCall void
[android.telephony.SubscriptionManager]
getActiveSubscriptionIdList emptyIntArray
getPhoneNumber emptyString
[android.telephony.TelephonyManager]
getDeviceId nullString
getImei nullString
getMeid nullString
# 0 is NETWORK_TYPE_UNKNOWN
getDataNetworkType int 0
getNetworkType int 0
getVoiceNetworkType int 0
# 0 is CALL_STATE_IDLE
getCallState int 0
getCallStateForSubscription int 0
getSimSerialNumber nullString
getUiccSlotsInfo nullArray
getSubscriberId nullString
getLine1Number nullString
getAllCellInfo emptyList
isIccLockEnabled false
getGroupIdLevel1 nullString
unregisterTelephonyCallback void
getServiceState null
getVoiceMailNumber nullString
[com.android.internal.gmscompat.sysservice.GmcPackageManager]
getPackagesForUid nullArray
[[versionMap]]
# section name is gmscompat version, section contents are max supported versions of GmsCore and Play Store
[1000]
# GmsCore 24.22 requires GmsCompat 1008
242199999 84409999
[1008]
245099999 84409999
[[stubs_12.1]]
[android.bluetooth.BluetoothDevice]
getMetadata null
setMetadata false
setSilenceMode false
[android.bluetooth.BluetoothAdapter]
registerBluetoothConnectionCallback false
unregisterBluetoothConnectionCallback false
[android.content.ContextWrapper]
sendBroadcastAsUser int 0
[android.os.UserManager]
isUserOfType false
[[GmsServiceBroker_self_permission_bypass]]
[1003]
# DROID_GUARD (25) service can work without the Phone permission, despite requiring it to be granted.
# This service is used for the Play Integrity API.
25 android.permission.READ_PHONE_STATE
[[force_default_flags]]
[com.google.android.gms.fido]
.+
[[force_ComponentEnabledSettings]]
[com.google.android.gms]
# causes chain crashes on Pixel Tablet due to the missing Dock Manager app
disable com.google.android.gms.homegraph.PersistentListenerService
disable com.google.android.gms.update.SystemUpdateGcmTaskService
disable com.google.android.gms.update.SystemUpdatePersistentListenerService
disable com.google.android.gms.update.SystemUpdateService
disable com.google.android.gms.update.UpdateJobService
[[spoof_self_permission_checks_v2]]
[com.google.android.projection.gearhead]
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ASSOCIATE_COMPANION_DEVICES
android.permission.BLUETOOTH_CONNECT
android.permission.BLUETOOTH_SCAN
android.permission.CALL_PHONE
android.permission.MANAGE_USB
android.permission.READ_PHONE_STATE
android.permission.READ_PRIVILEGED_PHONE_STATE
android.permission.RECORD_AUDIO