├── .github └── workflows │ └── debug.yml ├── .gitignore ├── Android.mk ├── LICENSE ├── LICENSES ├── Apache-2.0.txt ├── CC-BY-4.0.txt └── CC0-1.0.txt ├── README.md ├── build.gradle ├── fake-signature ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ └── res │ └── values │ ├── arrays.xml │ └── signature.xml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── play-services-api ├── build.gradle ├── gradle.properties └── src │ └── main │ ├── AndroidManifest.xml │ ├── aidl │ └── com │ │ └── google │ │ └── android │ │ ├── auth │ │ └── IAuthManagerService.aidl │ │ └── gms │ │ ├── auth │ │ ├── AccountChangeEventsRequest.aidl │ │ ├── AccountChangeEventsResponse.aidl │ │ ├── GetHubTokenInternalResponse.aidl │ │ ├── GetHubTokenRequest.aidl │ │ ├── HasCapabilitiesRequest.aidl │ │ ├── api │ │ │ ├── credentials │ │ │ │ ├── Credential.aidl │ │ │ │ ├── CredentialRequest.aidl │ │ │ │ └── internal │ │ │ │ │ ├── DeleteRequest.aidl │ │ │ │ │ ├── GeneratePasswordRequest.aidl │ │ │ │ │ ├── ICredentialsCallbacks.aidl │ │ │ │ │ ├── ICredentialsService.aidl │ │ │ │ │ └── SaveRequest.aidl │ │ │ ├── internal │ │ │ │ ├── IAuthCallbacks.aidl │ │ │ │ └── IAuthService.aidl │ │ │ └── proxy │ │ │ │ ├── ProxyRequest.aidl │ │ │ │ └── ProxyResponse.aidl │ │ └── appcert │ │ │ └── IAppCertService.aidl │ │ ├── checkin │ │ └── internal │ │ │ └── ICheckinService.aidl │ │ ├── common │ │ └── server │ │ │ └── FavaDiagnosticsEntity.aidl │ │ ├── http │ │ └── IGoogleHttpService.aidl │ │ └── people │ │ └── internal │ │ ├── IPeopleCallbacks.aidl │ │ └── IPeopleService.aidl │ └── java │ └── com │ └── google │ └── android │ └── gms │ ├── auth │ ├── AccountChangeEvent.java │ ├── AccountChangeEventsRequest.java │ ├── AccountChangeEventsResponse.java │ ├── GetHubTokenInternalResponse.java │ ├── GetHubTokenRequest.java │ ├── HasCapabilitiesRequest.java │ ├── TokenData.java │ ├── api │ │ ├── credentials │ │ │ ├── Credential.java │ │ │ ├── CredentialPickerConfig.java │ │ │ ├── CredentialRequest.java │ │ │ ├── HintRequest.java │ │ │ ├── IdToken.java │ │ │ ├── IdentityProviders.java │ │ │ └── internal │ │ │ │ ├── DeleteRequest.java │ │ │ │ ├── GeneratePasswordRequest.java │ │ │ │ └── SaveRequest.java │ │ └── proxy │ │ │ ├── ProxyRequest.java │ │ │ └── ProxyResponse.java │ └── firstparty │ │ ├── dataservice │ │ ├── AccountRecoveryGuidanceRequest.java │ │ ├── AccountRemovalRequest.java │ │ ├── ConfirmCredentialsRequest.java │ │ ├── TokenRequest.java │ │ └── TokenResponse.java │ │ ├── delegate │ │ └── ConfirmCredentialsWorkflowRequest.java │ │ ├── proximity │ │ └── data │ │ │ └── Permit.java │ │ └── shared │ │ ├── AccountCredentials.java │ │ ├── AppDescription.java │ │ └── CaptchaSolution.java │ ├── common │ └── server │ │ └── FavaDiagnosticsEntity.java │ ├── identity │ ├── accounts │ │ └── api │ │ │ └── AccountData.java │ └── intents │ │ └── model │ │ ├── CountrySpecification.java │ │ └── UserAddress.java │ └── people │ ├── internal │ └── ParcelableLoadImageOptions.java │ └── model │ ├── AccountMetadata.java │ └── AvatarReference.java ├── play-services-base-api ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── aidl │ └── com │ │ └── google │ │ └── android │ │ └── gms │ │ └── common │ │ ├── api │ │ └── internal │ │ │ └── IStatusCallback.aidl │ │ ├── data │ │ └── DataHolder.aidl │ │ └── images │ │ └── WebImage.aidl │ └── java │ └── com │ └── google │ └── android │ └── gms │ ├── auth │ └── api │ │ └── signin │ │ └── GoogleSignInAccount.java │ └── common │ ├── data │ ├── DataHolder.java │ └── Freezable.java │ └── images │ └── WebImage.java ├── play-services-base-core ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── org │ │ └── microg │ │ └── gms │ │ ├── AbstractGmsServiceBroker.java │ │ ├── BaseService.java │ │ ├── DummyService.java │ │ └── common │ │ ├── DeviceConfiguration.java │ │ ├── DeviceIdentifier.java │ │ ├── ForegroundServiceContext.java │ │ ├── ForegroundServiceInfo.java │ │ ├── HttpFormClient.java │ │ ├── MultiListenerProxy.java │ │ ├── NonCancelToken.java │ │ ├── PackageUtils.java │ │ ├── PhoneInfo.java │ │ ├── RemoteListenerProxy.java │ │ └── Utils.java │ ├── kotlin │ └── org │ │ └── microg │ │ └── gms │ │ ├── common │ │ └── PackageSpoofUtils.kt │ │ ├── profile │ │ ├── Build.kt │ │ ├── ProfileManager.kt │ │ └── ProfileProvider.kt │ │ ├── settings │ │ ├── MetaDataPreferences.kt │ │ ├── SettingsContract.kt │ │ └── SettingsProvider.kt │ │ └── utils │ │ ├── BinderUtils.kt │ │ └── FileXmlResourceParser.kt │ └── res │ ├── drawable │ └── ic_foreground_notification.xml │ ├── values-ar │ └── strings.xml │ ├── values-az │ └── strings.xml │ ├── values-be │ └── strings.xml │ ├── values-bn │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-es-rES │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-he │ └── strings.xml │ ├── values-hi │ └── strings.xml │ ├── values-hu │ └── strings.xml │ ├── values-id │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-ja │ └── strings.xml │ ├── values-ko │ └── strings.xml │ ├── values-lt │ └── strings.xml │ ├── values-pt-rBR │ └── strings.xml │ ├── values-ru │ └── strings.xml │ ├── values-th │ └── strings.xml │ ├── values-tr │ └── strings.xml │ ├── values-uk │ └── strings.xml │ ├── values-vi │ └── strings.xml │ ├── values-zh-rCN │ └── strings.xml │ ├── values-zh-rTW │ └── strings.xml │ └── values │ └── strings.xml ├── play-services-base ├── build.gradle ├── gradle.properties └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ ├── com │ │ └── google │ │ │ └── android │ │ │ └── gms │ │ │ └── common │ │ │ ├── GoogleApiAvailability.java │ │ │ ├── GooglePlayServicesClient.java │ │ │ ├── GooglePlayServicesUtil.java │ │ │ ├── api │ │ │ ├── AccountInfo.java │ │ │ ├── Api.java │ │ │ ├── GoogleApi.java │ │ │ ├── GoogleApiActivity.java │ │ │ ├── GoogleApiClient.java │ │ │ ├── HasApiKey.java │ │ │ ├── PendingResult.java │ │ │ └── internal │ │ │ │ └── ApiKey.java │ │ │ └── data │ │ │ └── DataBuffer.java │ └── org │ │ └── microg │ │ └── gms │ │ └── common │ │ ├── DummyApiClient.java │ │ ├── ForwardConnectionCallbacks.java │ │ ├── ForwardConnectionFailedListener.java │ │ ├── GmsClient.java │ │ ├── GmsConnector.java │ │ ├── MultiConnectionKeeper.java │ │ └── api │ │ ├── AbstractPendingResult.java │ │ ├── AbstractPlayServicesClient.java │ │ ├── ApiClientBuilder.java │ │ ├── ApiClientSettings.java │ │ ├── ConnectionCallbacks.java │ │ ├── GoogleApiClientImpl.java │ │ ├── GoogleApiManager.java │ │ ├── InstantPendingResult.java │ │ ├── OnConnectionFailedListener.java │ │ ├── PendingGoogleApiCall.java │ │ ├── ResultCallbackHandler.java │ │ ├── ReturningGoogleApiCall.java │ │ └── VoidReturningGoogleApiCall.java │ └── res │ └── values │ └── version.xml ├── play-services-basement ├── build.gradle ├── gradle.properties └── src │ └── main │ ├── AndroidManifest.xml │ ├── aidl │ └── com │ │ └── google │ │ └── android │ │ └── gms │ │ ├── common │ │ ├── ConnectionResult.aidl │ │ ├── GoogleCertificatesLookupQuery.aidl │ │ ├── GoogleCertificatesLookupResponse.aidl │ │ ├── GoogleCertificatesQuery.aidl │ │ ├── api │ │ │ └── Status.aidl │ │ └── internal │ │ │ ├── ConnectionInfo.aidl │ │ │ ├── GetServiceRequest.aidl │ │ │ ├── ICancelToken.aidl │ │ │ ├── ICertData.aidl │ │ │ ├── IGmsCallbacks.aidl │ │ │ ├── IGmsServiceBroker.aidl │ │ │ ├── IGoogleCertificatesApi.aidl │ │ │ ├── ISignInButtonCreator.aidl │ │ │ └── ValidateAccountRequest.aidl │ │ └── dynamic │ │ └── IObjectWrapper.aidl │ ├── java │ ├── com │ │ └── google │ │ │ └── android │ │ │ └── gms │ │ │ ├── common │ │ │ ├── ConnectionResult.java │ │ │ ├── Feature.java │ │ │ ├── GoogleCertificatesLookupQuery.java │ │ │ ├── GoogleCertificatesLookupResponse.java │ │ │ ├── GoogleCertificatesQuery.java │ │ │ ├── Scopes.java │ │ │ ├── api │ │ │ │ ├── CommonStatusCodes.java │ │ │ │ ├── Releasable.java │ │ │ │ ├── Result.java │ │ │ │ ├── ResultCallback.java │ │ │ │ ├── Scope.java │ │ │ │ └── Status.java │ │ │ └── internal │ │ │ │ ├── BinderWrapper.java │ │ │ │ ├── CertData.java │ │ │ │ ├── ConnectionInfo.java │ │ │ │ ├── GetServiceRequest.java │ │ │ │ ├── ValidateAccountRequest.java │ │ │ │ └── safeparcel │ │ │ │ ├── AbstractSafeParcelable.java │ │ │ │ ├── SafeParcelReader.java │ │ │ │ ├── SafeParcelWriter.java │ │ │ │ ├── SafeParcelable.java │ │ │ │ ├── SafeParcelableCreatorAndWriter.java │ │ │ │ └── SafeParcelableSerializer.java │ │ │ └── dynamic │ │ │ └── ObjectWrapper.java │ └── org │ │ └── microg │ │ └── gms │ │ ├── auth │ │ └── AuthConstants.java │ │ ├── common │ │ ├── Constants.java │ │ ├── GmsService.java │ │ ├── Hide.java │ │ └── PublicApi.java │ │ └── gcm │ │ └── GcmConstants.java │ └── kotlin │ └── com │ └── google │ └── android │ └── gms │ └── dynamic │ └── ObjectWrapper.kt ├── play-services-core-proto ├── build.gradle └── src │ └── main │ └── proto │ ├── appcert.proto │ ├── auth.proto │ ├── checkin.proto │ └── mcs.proto ├── play-services-core ├── build.gradle ├── microg-ui-tools │ ├── build.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── org │ │ │ └── microg │ │ │ └── tools │ │ │ └── ui │ │ │ ├── AbstractAboutFragment.java │ │ │ ├── AbstractDashboardActivity.java │ │ │ ├── AbstractSettingsActivity.java │ │ │ ├── AbstractSettingsFragment.java │ │ │ ├── Condition.java │ │ │ ├── DialogPreference.java │ │ │ ├── LongTextPreference.java │ │ │ ├── RadioButtonPreference.java │ │ │ ├── ResourceSettingsFragment.java │ │ │ ├── SwitchBar.java │ │ │ ├── SwitchBarResourceSettingsFragment.java │ │ │ └── ToggleSwitch.java │ │ └── res │ │ ├── drawable │ │ ├── ic_expand_less.xml │ │ └── ic_expand_more.xml │ │ ├── layout-v21 │ │ └── preference_material.xml │ │ ├── layout │ │ ├── about_root.xml │ │ ├── condition_card.xml │ │ ├── dashboard_activity.xml │ │ ├── preference_widget_radiobutton.xml │ │ ├── settings_activity.xml │ │ └── switch_bar.xml │ │ ├── values-ar │ │ └── strings.xml │ │ ├── values-az │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-bn │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-eo │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-he │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-id │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-lt │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sr │ │ └── strings.xml │ │ ├── values-th │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-vi │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ ├── colors.xml │ │ └── strings.xml ├── multidex-keep.pro ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── ic_launcher-playstore.png │ ├── java │ ├── com │ │ └── google │ │ │ └── android │ │ │ └── gms │ │ │ ├── auth │ │ │ ├── GetToken.java │ │ │ └── TokenActivity.java │ │ │ ├── chimera │ │ │ └── DynamiteModuleInitializer.java │ │ │ ├── common │ │ │ ├── security │ │ │ │ └── ProviderInstallerImpl.java │ │ │ └── ui │ │ │ │ └── SignInButtonCreatorImpl.java │ │ │ └── security │ │ │ └── ProviderInstaller.java │ └── org │ │ └── microg │ │ ├── gms │ │ ├── auth │ │ │ ├── AccountContentProvider.java │ │ │ ├── AuthManager.java │ │ │ ├── AuthManagerServiceImpl.java │ │ │ ├── AuthRequest.java │ │ │ ├── AuthResponse.java │ │ │ ├── SignInService.java │ │ │ ├── login │ │ │ │ ├── AssistantActivity.java │ │ │ │ └── LoginActivity.java │ │ │ └── loginservice │ │ │ │ ├── AccountAuthenticator.java │ │ │ │ └── GoogleLoginService.java │ │ ├── checkin │ │ │ ├── CheckinClient.java │ │ │ ├── CheckinManager.java │ │ │ ├── CheckinService.java │ │ │ └── TriggerReceiver.java │ │ ├── gcm │ │ │ ├── GcmDatabase.java │ │ │ ├── GcmLegacyData.java │ │ │ ├── McsConstants.java │ │ │ ├── McsInputStream.java │ │ │ ├── McsOutputStream.java │ │ │ ├── McsService.java │ │ │ ├── PushRegisterManager.java │ │ │ ├── RegisterRequest.java │ │ │ ├── RegisterResponse.java │ │ │ ├── SendReceiver.java │ │ │ ├── TriggerReceiver.java │ │ │ └── UnregisterReceiver.java │ │ ├── gservices │ │ │ ├── DatabaseHelper.java │ │ │ ├── GServices.java │ │ │ └── GServicesProvider.java │ │ ├── people │ │ │ ├── ContactSyncService.java │ │ │ ├── DatabaseHelper.java │ │ │ ├── PeopleManager.java │ │ │ ├── PeopleService.java │ │ │ └── PeopleServiceImpl.java │ │ ├── settings │ │ │ └── GoogleSettingsProvider.java │ │ └── ui │ │ │ ├── AboutFragment.java │ │ │ ├── GoogleMoreFragment.java │ │ │ ├── LegacyAccountSettingsActivity.java │ │ │ ├── SettingsActivity.java │ │ │ └── SettingsDashboardActivity.java │ │ └── tools │ │ └── AccountPickerActivity.java │ ├── kotlin │ ├── com │ │ └── google │ │ │ └── android │ │ │ └── gms │ │ │ └── common │ │ │ └── GoogleCertificatesImpl.kt │ └── org │ │ └── microg │ │ └── gms │ │ ├── accountsettings │ │ └── ui │ │ │ ├── LoaderActivity.kt │ │ │ ├── MainActivity.kt │ │ │ ├── WebViewHelper.kt │ │ │ └── extensions.kt │ │ ├── auth │ │ ├── AuthPrefs.kt │ │ ├── appcert │ │ │ ├── AppCertManager.kt │ │ │ └── AppCertService.kt │ │ ├── credentials │ │ │ ├── CredentialPickerActivity.kt │ │ │ └── CredentialsService.kt │ │ └── proxy │ │ │ └── AuthProxyService.kt │ │ ├── checkin │ │ ├── CheckinPrefs.kt │ │ ├── LastCheckinInfo.kt │ │ └── ServiceInfo.kt │ │ ├── gcm │ │ ├── GcmPrefs.kt │ │ ├── PushRegisterService.kt │ │ └── ServiceInfo.kt │ │ └── ui │ │ ├── AppIconPreference.kt │ │ ├── Constants.kt │ │ ├── DeviceRegistrationFragment.kt │ │ ├── DeviceRegistrationPreferencesFragment.kt │ │ ├── PreferenceSwitchBarCallback.kt │ │ ├── PushNotificationAdvancedFragment.kt │ │ ├── PushNotificationAllAppsFragment.kt │ │ ├── PushNotificationAppFragment.kt │ │ ├── PushNotificationAppPreferencesFragment.kt │ │ ├── PushNotificationFragment.kt │ │ ├── PushNotificationPreferencesFragment.kt │ │ ├── SettingsFragment.kt │ │ ├── TextPreference.kt │ │ ├── Utils.kt │ │ └── settings │ │ └── SettingsProvider.kt │ └── res │ ├── drawable │ ├── dots_horizontal.xml │ ├── ic_add_account.xml │ ├── ic_baseline_hide_source_24.xml │ ├── ic_cloud_bell.xml │ ├── ic_device_login.xml │ ├── ic_expand_apps.xml │ └── ic_info_outline.xml │ ├── layout │ ├── device_registration_fragment.xml │ ├── login_assistant.xml │ ├── login_assistant_loading.xml │ ├── preference_category_no_label.xml │ ├── preference_progress_bar.xml │ ├── preference_switch_bar.xml │ ├── push_notification_app_fragment.xml │ ├── push_notification_fragment.xml │ └── settings_root_activity.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── navigation │ └── nav_settings.xml │ ├── values-ar │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-az │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-be │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-bn │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-cs │ └── strings.xml │ ├── values-es-rES │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-fr │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-he │ └── strings.xml │ ├── values-hi │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-id │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-it │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-ja │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-ko │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-lt │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-night-v31 │ └── themes.xml │ ├── values-night │ └── themes.xml │ ├── values-pt-rBR │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-ru │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-th │ └── strings.xml │ ├── values-tr │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-uk │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-v31 │ └── themes.xml │ ├── values-vi │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-zh-rCN │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values-zh-rTW │ ├── arrays.xml │ ├── plurals.xml │ └── strings.xml │ ├── values │ ├── arrays.xml │ ├── bools.xml │ ├── colors.xml │ ├── dimens.xml │ ├── ic_launcher_background.xml │ ├── permissions.xml │ ├── plurals.xml │ ├── resources.xml │ ├── strings.xml │ └── themes.xml │ └── xml │ ├── authenticator.xml │ ├── network_security_config.xml │ ├── preferences_account.xml │ ├── preferences_auth.xml │ ├── preferences_device_registration.xml │ ├── preferences_gcm_advanced.xml │ ├── preferences_google_more.xml │ ├── preferences_push_notifications.xml │ ├── preferences_push_notifications_all_apps.xml │ ├── preferences_push_notifications_app.xml │ ├── preferences_start.xml │ ├── profile_bullhead_27.xml │ ├── profile_lineage_falcon_25.xml │ ├── profile_redfin_33.xml │ ├── profile_sdk_gphone64_arm64_33.xml │ └── profile_sdk_gphone64_x86_64_33.xml ├── play-services-iid-api ├── build.gradle ├── gradle.properties └── src │ └── main │ ├── AndroidManifest.xml │ ├── aidl │ └── com │ │ └── google │ │ └── android │ │ └── gms │ │ └── iid │ │ └── IMessengerCompat.aidl │ └── java │ └── com │ └── google │ └── android │ └── gms │ └── iid │ └── MessengerCompat.java ├── play-services-tasks ├── build.gradle ├── gradle.properties └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ ├── com │ └── google │ │ └── android │ │ └── gms │ │ └── tasks │ │ ├── CancellationToken.java │ │ ├── CancellationTokenSource.java │ │ ├── Continuation.java │ │ ├── DuplicateTaskCompletionException.java │ │ ├── OnCanceledListener.java │ │ ├── OnCompleteListener.java │ │ ├── OnFailureListener.java │ │ ├── OnSuccessListener.java │ │ ├── OnTokenCanceledListener.java │ │ ├── RuntimeExecutionException.java │ │ ├── SuccessContinuation.java │ │ ├── Task.java │ │ ├── TaskCompletionSource.java │ │ ├── TaskExecutors.java │ │ └── Tasks.java │ └── org │ └── microg │ └── gms │ └── tasks │ ├── CancellationTokenImpl.java │ ├── CancelledExecutor.java │ ├── CompletedExecutor.java │ ├── ContinuationExecutor.java │ ├── ContinuationWithExecutor.java │ ├── FailureExecutor.java │ ├── SuccessContinuationExecutor.java │ ├── SuccessExecutor.java │ ├── TaskImpl.java │ ├── UpdateExecutor.java │ ├── UpdateListener.java │ └── UpdateListenerLifecycleObserver.java ├── proguard.flags └── settings.gradle /.github/workflows/debug.yml: -------------------------------------------------------------------------------- 1 | name: Debug APK Builder 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v1 16 | - name: JDK 8 Setup 17 | uses: actions/setup-java@v1 18 | with: 19 | java-version: 11.0.8 20 | 21 | - name: Install NDK 22 | run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;21.0.6113669" 23 | 24 | - name: Grant rights 25 | run: chmod +x ./gradlew 26 | 27 | - name: Build project 28 | run: ./gradlew build 29 | 30 | - name: Build APK 31 | run: ./gradlew assembleDebug 32 | 33 | - name: Upload to Artifacts 34 | uses: actions/upload-artifact@v2 35 | with: 36 | name: 'MicroG' 37 | path: play-services-core/build/outputs/apk/debug/play-services-core-debug.apk -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | gen/ 3 | bin/ 4 | build/ 5 | .gradle/ 6 | .idea/ 7 | user.gradle 8 | local.properties 9 | .directory 10 | play-services-core/release 11 | 12 | .settings 13 | .classpath 14 | .project -------------------------------------------------------------------------------- /fake-signature/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2023 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | apply plugin: 'com.android.library' 7 | 8 | android { 9 | namespace "org.microg.signature.fake" 10 | 11 | compileSdkVersion androidCompileSdk 12 | buildToolsVersion androidBuildVersionTools 13 | 14 | defaultConfig { 15 | minSdkVersion androidMinSdk 16 | targetSdkVersion androidTargetSdk 17 | } 18 | 19 | compileOptions { 20 | sourceCompatibility JavaVersion.VERSION_1_8 21 | targetCompatibility JavaVersion.VERSION_1_8 22 | } 23 | } 24 | 25 | dependencies { 26 | } 27 | -------------------------------------------------------------------------------- /fake-signature/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | com.google.android.gms 9 | com.android.vending 10 | com.spotify.music 11 | 12 | 13 | com.truecaller 14 | 15 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | android.useAndroidX=true 2 | android.disableAutomaticComponentCreation=true 3 | org.gradle.jvmargs=-Xmx2048m -XX:+UseParallelGC 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /play-services-api/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2015 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | apply plugin: 'com.android.library' 18 | 19 | android { 20 | compileSdkVersion androidCompileSdk 21 | buildToolsVersion androidBuildVersionTools 22 | 23 | defaultConfig { 24 | minSdkVersion androidMinSdk 25 | targetSdkVersion androidTargetSdk 26 | } 27 | 28 | compileOptions { 29 | sourceCompatibility = 1.8 30 | targetCompatibility = 1.8 31 | } 32 | } 33 | 34 | dependencies { 35 | api project(':play-services-basement') 36 | api project(':play-services-iid-api') 37 | api project(':play-services-base-api') 38 | } -------------------------------------------------------------------------------- /play-services-api/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/auth/IAuthManagerService.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.auth; 2 | 3 | import android.os.Bundle; 4 | import android.accounts.Account; 5 | 6 | import com.google.android.gms.auth.AccountChangeEventsResponse; 7 | import com.google.android.gms.auth.AccountChangeEventsRequest; 8 | import com.google.android.gms.auth.GetHubTokenRequest; 9 | import com.google.android.gms.auth.GetHubTokenInternalResponse; 10 | import com.google.android.gms.auth.HasCapabilitiesRequest; 11 | 12 | interface IAuthManagerService { 13 | Bundle getToken(String accountName, String scope, in Bundle extras) = 0; 14 | Bundle clearToken(String token, in Bundle extras) = 1; 15 | AccountChangeEventsResponse getChangeEvents(in AccountChangeEventsRequest request) = 2; 16 | 17 | Bundle getTokenWithAccount(in Account account, String scope, in Bundle extras) = 4; 18 | Bundle getAccounts(in Bundle extras) = 5; 19 | Bundle removeAccount(in Account account) = 6; 20 | Bundle requestGoogleAccountsAccess(String packageName) = 7; 21 | int hasCapabilities(in HasCapabilitiesRequest request) = 8; 22 | GetHubTokenInternalResponse getHubToken(in GetHubTokenRequest request, in Bundle extras) = 9; 23 | } 24 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth; 2 | 3 | parcelable AccountChangeEventsRequest; -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/AccountChangeEventsResponse.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth; 2 | 3 | parcelable AccountChangeEventsResponse; -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/GetHubTokenInternalResponse.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth; 2 | 3 | parcelable GetHubTokenInternalResponse; 4 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/GetHubTokenRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth; 2 | 3 | parcelable GetHubTokenRequest; 4 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/HasCapabilitiesRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth; 2 | 3 | parcelable HasCapabilitiesRequest; 4 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/Credential.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.credentials; 2 | 3 | parcelable Credential; -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/CredentialRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.credentials; 2 | 3 | parcelable CredentialRequest; -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.credentials.internal; 2 | 3 | parcelable DeleteRequest; -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.credentials.internal; 2 | 3 | parcelable GeneratePasswordRequest; -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsCallbacks.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.credentials.internal; 2 | 3 | import com.google.android.gms.common.api.Status; 4 | import com.google.android.gms.auth.api.credentials.Credential; 5 | 6 | interface ICredentialsCallbacks { 7 | void onStatusAndCredential(in Status status, in Credential credential) = 0; 8 | void onStatus(in Status status) = 1; 9 | void onStatusAndString(in Status status, String string) = 2; 10 | } -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/ICredentialsService.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.credentials.internal; 2 | 3 | import com.google.android.gms.auth.api.credentials.CredentialRequest; 4 | import com.google.android.gms.auth.api.credentials.internal.ICredentialsCallbacks; 5 | import com.google.android.gms.auth.api.credentials.internal.DeleteRequest; 6 | import com.google.android.gms.auth.api.credentials.internal.GeneratePasswordRequest; 7 | import com.google.android.gms.auth.api.credentials.internal.SaveRequest; 8 | 9 | interface ICredentialsService { 10 | void request(ICredentialsCallbacks callbacks, in CredentialRequest request) = 0; 11 | void save(ICredentialsCallbacks callbacks, in SaveRequest request) = 1; 12 | void delete(ICredentialsCallbacks callbacks, in DeleteRequest request) = 2; 13 | void disableAutoSignIn(ICredentialsCallbacks callbacks) = 3; 14 | void generatePassword(ICredentialsCallbacks callbacks, in GeneratePasswordRequest request) = 4; 15 | } -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/credentials/internal/SaveRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.credentials.internal; 2 | 3 | parcelable SaveRequest; -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/internal/IAuthCallbacks.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.internal; 2 | 3 | import com.google.android.gms.auth.api.proxy.ProxyResponse; 4 | 5 | interface IAuthCallbacks { 6 | void onProxyResponse(in ProxyResponse response) = 0; 7 | void onSpatulaHeader(String spatulaHeader) = 1; 8 | } 9 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/internal/IAuthService.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.internal; 2 | 3 | import com.google.android.gms.auth.api.internal.IAuthCallbacks; 4 | //import com.google.android.gms.auth.api.proxy.ProxyGrpcRequest; 5 | import com.google.android.gms.auth.api.proxy.ProxyRequest; 6 | 7 | interface IAuthService { 8 | void performProxyRequest(IAuthCallbacks callbacks, in ProxyRequest request) = 0; 9 | // void performProxyGrpcRequest(IAuthCallback callbacks, in ProxyGrpcRequest request) = 1; 10 | void getSpatulaHeader(IAuthCallbacks callbacks) = 2; 11 | } 12 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/proxy/ProxyRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.proxy; 2 | 3 | parcelable ProxyRequest; 4 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/api/proxy/ProxyResponse.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.api.proxy; 2 | 3 | parcelable ProxyResponse; 4 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/auth/appcert/IAppCertService.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.auth.appcert; 2 | 3 | interface IAppCertService { 4 | boolean fetchDeviceKey() = 0; 5 | String getSpatulaHeader(String packageName) = 1; 6 | } 7 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/checkin/internal/ICheckinService.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.checkin.internal; 2 | 3 | interface ICheckinService { 4 | String getDeviceDataVersionInfo(); 5 | long getLastCheckinSuccessTime(); 6 | String getLastSimOperator(); 7 | } 8 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/common/server/FavaDiagnosticsEntity.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.server; 2 | 3 | parcelable FavaDiagnosticsEntity; -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.http; 2 | 3 | import android.os.Bundle; 4 | 5 | interface IGoogleHttpService { 6 | Bundle checkUrl(String url); 7 | } 8 | -------------------------------------------------------------------------------- /play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.people.internal; 2 | 3 | import android.os.Bundle; 4 | import android.os.ParcelFileDescriptor; 5 | 6 | import com.google.android.gms.common.data.DataHolder; 7 | 8 | interface IPeopleCallbacks { 9 | void onDataHolder(int code, in Bundle resolution, in DataHolder holder) = 1; 10 | void onDataHolders(int code, in Bundle resolution, in DataHolder[] holders) = 3; 11 | void onParcelFileDescriptor(int code, in Bundle resolution, in ParcelFileDescriptor fileDescriptor, in Bundle extras) = 4; 12 | } 13 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/AccountChangeEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.auth; 18 | 19 | import org.microg.safeparcel.AutoSafeParcelable; 20 | 21 | public class AccountChangeEvent extends AutoSafeParcelable { 22 | public static Creator CREATOR = new AutoCreator(AccountChangeEvent.class); 23 | } 24 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/GetHubTokenInternalResponse.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2022 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.auth; 7 | 8 | import android.accounts.Account; 9 | import android.content.Intent; 10 | 11 | import org.microg.safeparcel.AutoSafeParcelable; 12 | 13 | public class GetHubTokenInternalResponse extends AutoSafeParcelable { 14 | @Field(1) 15 | public TokenData tokenData; 16 | @Field(2) 17 | public String status; 18 | @Field(3) 19 | public Intent recoveryIntent; 20 | public static final Creator CREATOR = new AutoCreator<>(GetHubTokenInternalResponse.class); 21 | } 22 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/GetHubTokenRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2022 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.auth; 7 | 8 | import org.microg.safeparcel.AutoSafeParcelable; 9 | 10 | public class GetHubTokenRequest extends AutoSafeParcelable { 11 | @Field(1) 12 | public String accountName; 13 | @Field(2) 14 | public String service; 15 | @Field(3) 16 | public String packageName; 17 | @Field(4) 18 | public int callerUid; 19 | public static final Creator CREATOR = new AutoCreator<>(GetHubTokenRequest.class); 20 | } 21 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/HasCapabilitiesRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2022 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.auth; 7 | 8 | import android.accounts.Account; 9 | 10 | import org.microg.safeparcel.AutoSafeParcelable; 11 | 12 | public class HasCapabilitiesRequest extends AutoSafeParcelable { 13 | @Field(1) 14 | public Account account; 15 | @Field(2) 16 | public String[] capabilities; 17 | public static final Creator CREATOR = new AutoCreator<>(HasCapabilitiesRequest.class); 18 | } 19 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/DeleteRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.auth.api.credentials.internal; 18 | 19 | import org.microg.safeparcel.AutoSafeParcelable; 20 | 21 | public class DeleteRequest extends AutoSafeParcelable { 22 | public static final Creator CREATOR = new AutoCreator(DeleteRequest.class); 23 | } 24 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/GeneratePasswordRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.auth.api.credentials.internal; 18 | 19 | import org.microg.safeparcel.AutoSafeParcelable; 20 | 21 | public class GeneratePasswordRequest extends AutoSafeParcelable { 22 | public static final Creator CREATOR = new AutoCreator(GeneratePasswordRequest.class); 23 | } 24 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/api/credentials/internal/SaveRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.auth.api.credentials.internal; 18 | 19 | import org.microg.safeparcel.AutoSafeParcelable; 20 | 21 | public class SaveRequest extends AutoSafeParcelable { 22 | public static final Creator CREATOR = new AutoCreator(SaveRequest.class); 23 | } 24 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/api/proxy/ProxyResponse.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2022 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.auth.api.proxy; 7 | 8 | import android.app.PendingIntent; 9 | import android.os.Bundle; 10 | 11 | import org.microg.safeparcel.AutoSafeParcelable; 12 | 13 | public class ProxyResponse extends AutoSafeParcelable { 14 | public static final int STATUS_CODE_NO_CONNECTION = -1; 15 | 16 | @Field(1000) 17 | private final int versionCode = 1; 18 | @Field(1) 19 | public int gmsStatusCode; 20 | @Field(2) 21 | public PendingIntent recoveryAction; 22 | @Field(3) 23 | public int httpStatusCode; 24 | @Field(4) 25 | public Bundle headers; 26 | @Field(5) 27 | public byte[] body; 28 | 29 | public static final Creator CREATOR = new AutoCreator<>(ProxyResponse.class); 30 | } 31 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.auth.firstparty.dataservice; 18 | 19 | public class TokenResponse { 20 | } 21 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.auth.firstparty.proximity.data; 18 | 19 | public class Permit { 20 | } 21 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/CaptchaSolution.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.auth.firstparty.shared; 18 | 19 | import org.microg.safeparcel.AutoSafeParcelable; 20 | import org.microg.safeparcel.SafeParceled; 21 | 22 | // TODO 23 | public class CaptchaSolution extends AutoSafeParcelable { 24 | 25 | @SafeParceled(1) 26 | private final int versionCode = 1; 27 | 28 | public static final Creator CREATOR = new AutoCreator(CaptchaSolution.class); 29 | } 30 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/common/server/FavaDiagnosticsEntity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.common.server; 18 | 19 | import org.microg.safeparcel.AutoSafeParcelable; 20 | 21 | public class FavaDiagnosticsEntity extends AutoSafeParcelable { 22 | 23 | public static final Creator CREATOR = new AutoCreator(FavaDiagnosticsEntity.class); 24 | } 25 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.identity.accounts.api; 18 | 19 | public class AccountData { 20 | } 21 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.identity.intents.model; 18 | 19 | public class CountrySpecification { 20 | } 21 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.identity.intents.model; 18 | 19 | public class UserAddress { 20 | } 21 | -------------------------------------------------------------------------------- /play-services-api/src/main/java/com/google/android/gms/people/model/AvatarReference.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.people.model; 18 | 19 | import org.microg.safeparcel.AutoSafeParcelable; 20 | import org.microg.safeparcel.SafeParceled; 21 | 22 | public class AvatarReference extends AutoSafeParcelable { 23 | 24 | @SafeParceled(1000) 25 | private int versionCode; 26 | 27 | @SafeParceled(1) 28 | public int source; 29 | 30 | @SafeParceled(2) 31 | public String location; 32 | 33 | public static final Creator CREATOR = new AutoCreator(AvatarReference.class); 34 | } 35 | -------------------------------------------------------------------------------- /play-services-base-api/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /play-services-base-api/src/main/aidl/com/google/android/gms/common/api/internal/IStatusCallback.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.api.internal; 2 | 3 | import com.google.android.gms.common.api.Status; 4 | 5 | interface IStatusCallback { 6 | void onResult(in Status status); 7 | } 8 | -------------------------------------------------------------------------------- /play-services-base-api/src/main/aidl/com/google/android/gms/common/data/DataHolder.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.data; 2 | 3 | parcelable DataHolder; 4 | -------------------------------------------------------------------------------- /play-services-base-api/src/main/aidl/com/google/android/gms/common/images/WebImage.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.images; 2 | 3 | parcelable WebImage; 4 | -------------------------------------------------------------------------------- /play-services-base-api/src/main/java/com/google/android/gms/auth/api/signin/GoogleSignInAccount.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.auth.api.signin; 7 | 8 | import org.microg.safeparcel.AutoSafeParcelable; 9 | 10 | public class GoogleSignInAccount extends AutoSafeParcelable { 11 | public static final Creator CREATOR = new AutoCreator<>(GoogleSignInAccount.class); 12 | } 13 | -------------------------------------------------------------------------------- /play-services-base-core/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | apply plugin: 'com.android.library' 7 | apply plugin: 'kotlin-android' 8 | apply plugin: 'maven-publish' 9 | apply plugin: 'signing' 10 | 11 | dependencies { 12 | api project(':play-services-basement') 13 | api "androidx.lifecycle:lifecycle-service:$lifecycleVersion" 14 | 15 | implementation "androidx.annotation:annotation:$annotationVersion" 16 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" 17 | } 18 | 19 | android { 20 | compileSdkVersion androidCompileSdk 21 | buildToolsVersion androidBuildVersionTools 22 | 23 | defaultConfig { 24 | versionName version 25 | minSdkVersion androidMinSdk 26 | targetSdkVersion androidTargetSdk 27 | 28 | buildConfigField "String", "BASE_PACKAGE_NAME", "\"$basePackageName\"" 29 | } 30 | 31 | sourceSets { 32 | main.java.srcDirs += 'src/main/kotlin' 33 | } 34 | 35 | compileOptions { 36 | sourceCompatibility = 1.8 37 | targetCompatibility = 1.8 38 | } 39 | } -------------------------------------------------------------------------------- /play-services-base-core/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 10 | 11 | 15 | 16 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/java/org/microg/gms/common/ForegroundServiceInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.common; 7 | 8 | import java.lang.annotation.ElementType; 9 | import java.lang.annotation.Retention; 10 | import java.lang.annotation.RetentionPolicy; 11 | import java.lang.annotation.Target; 12 | 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Target(ElementType.TYPE) 15 | public @interface ForegroundServiceInfo { 16 | String value(); 17 | int res() default 0; 18 | } -------------------------------------------------------------------------------- /play-services-base-core/src/main/java/org/microg/gms/common/NonCancelToken.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.microg.gms.common; 18 | 19 | import android.os.RemoteException; 20 | 21 | import com.google.android.gms.common.internal.ICancelToken; 22 | 23 | public class NonCancelToken extends ICancelToken.Stub { 24 | @Override 25 | public void cancel() throws RemoteException { 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/java/org/microg/gms/common/PhoneInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.microg.gms.common; 18 | 19 | import java.util.Random; 20 | 21 | public class PhoneInfo { 22 | public String cellOperator = "26207"; 23 | public String roaming = "mobile-notroaming"; 24 | public String simOperator = "26207"; 25 | public String imsi = randomImsi(); 26 | 27 | private String randomImsi() { 28 | Random random = new Random(); 29 | StringBuilder sb = new StringBuilder(simOperator); 30 | while (sb.length() < 15) { 31 | sb.append(random.nextInt(10)); 32 | } 33 | return sb.toString(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/kotlin/org/microg/gms/utils/BinderUtils.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2021, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.utils 7 | 8 | import android.os.Binder 9 | import android.os.IBinder 10 | import android.os.Parcel 11 | import android.util.Log 12 | 13 | private const val TAG = "BinderUtils" 14 | 15 | fun IBinder.warnOnTransactionIssues(code: Int, reply: Parcel?, flags: Int, tag: String = TAG, base: () -> Boolean): Boolean { 16 | if (base.invoke()) { 17 | if ((flags and Binder.FLAG_ONEWAY) > 0 && (reply?.dataSize() ?: 0) > 0) { 18 | Log.w(tag, "Method $code in $interfaceDescriptor is oneway, but returned data") 19 | } 20 | return true 21 | } 22 | Log.w(tag, "Unknown method $code in $interfaceDescriptor, skipping") 23 | return (flags and Binder.FLAG_ONEWAY) > 0 // Don't return false on oneway transaction to suppress warning 24 | } 25 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-ar/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | تحذير توفير البطارية 8 | توسيع الإشعارات 9 | الحفاظ على microG يعمل في الخلفية 10 | انقر هنا لتعطيل تحسين البطارية لـ vanced microG ، ثم أعد تشغيل الجهاز لإزالة هذا الإشعار 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-az/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Batareya qənaət xəbərdarlığı 8 | Bildirişi genişləndir 9 | MicroG-ni arxa planda saxla 10 | MicroG üçün batareyanın optimallaşdırılmasını deaktiv etmək üçün bura klikləyin, sonra bu bildirişi silmək üçün cihazı yenidən başladın 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-be/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Папярэджанне аб працы ў рэжыме эканоміі энергіі 8 | Разгарнуць апавяшчэнне 9 | Трымаць microG у фоне 10 | Націсніце тут, каб адключыць аптымізацыю батарэі для Vanced microG, а потым перазапусціце прыладу, каб гэта паведамленне знікла 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-bn/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | ব্যাটারি সংরক্ষণ সতর্কতা 8 | বিজ্ঞপ্তি প্রসারিত করুন 9 | microG ব্যাকগ্রাউন্ডে রাখুন 10 | vanced microG কে ব্যাটারি অপটিমাইজেশন থেকে সরাতে এখানে ট্যাপ করুন, এরপর এই বিজ্ঞপ্তি সরাতে ফোন রিস্টার্ট করুন 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-de/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Battery Saving Warning 8 | Expand notification 9 | Keep microG in background 10 | 11 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-es-rES/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Advertencia de ahorro de batería 8 | Expandir notificación 9 | Mantener microG en segundo plano 10 | Toque aquí para desactivar la optimización de la batería para vanced microG, luego reinicie el dispositivo para eliminar esta notificación 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-fr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Avertissement d\'économie de batterie 8 | Élargir la notification 9 | Garder microG en arrière-plan 10 | Appuyez ici pour désactiver l\'optimisation de la batterie pour la microG vanced, puis redémarrez l\'appareil pour supprimer cette notification 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-he/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | אזהרת חיסכון בסוללה 8 | הרחב את ההודעה 9 | השאר את microG ברקע 10 | הקש כאן כדי להשבית את אופטימיזציית הסוללה עבור vanced microG, ולאחר מכן הפעל מחדש את המכשיר כדי להסיר את ההתראה הזו 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-hi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | बैटरी बचाने की चेतावनी 8 | अधिसूचना का विस्तार करें 9 | माइक्रो जी को बैकग्राउंड में रखें 10 | वैन्ड माइक्रोजी के लिए बैटरी अनुकूलन को अक्षम करने के लिए यहां टैप करें, फिर इस अधिसूचना को हटाने के लिए डिवाइस को पुनरारंभ करें 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-hu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Akkumulátorkímélő figyelmeztetés 8 | Értesítés bővítése 9 | Tartsa a microG-t a háttérben 10 | Koppintson ide az akkumulátor-optimalizálás letiltásához a vanced microG számára, majd indítsa újra a készüléket az értesítés eltávolításához 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-id/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Peringatan daya baterai 8 | Perluas notifikasi 9 | Izinkan microG berjalan di latar belakang 10 | Tekan disini untuk mematikan optimasi baterai untuk vanced microG, lalu mulai ulang perangkat untuk menghapus notifikasi ini 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-it/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Avviso Risparmio Energetico 8 | Espandi la notifica 9 | Mantieni i microG in secondo piano 10 | Tocca qui per disattivare l\'ottimizzazione della batteria per microG, poi riavvia il dispositivo per rimuovere questa notifica. 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-ja/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | バッテリー節約の警告 8 | 通知を展開する 9 | microGをバックグラウンドで保持 10 | こちらをタップして、microGのバッテリー最適化を無効にし、デバイスを再起動して通知を削除する 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-ko/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 배터리 절약 경고 8 | 알림 펼치기 9 | microG를 백그라운드에서 유지 10 | 여기를 탭하여 vanced microG의 배터리 최적화를 비활성화한 다음 기기를 다시 시작하여 이 알림을 제거하세요 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-lt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Baterijos taupymo įspėjimas 8 | Išskleisti pranešimą 9 | Laikyti microG fone 10 | Bakstelėkite čia, kad išjungtumėte microG akumuliatoriaus optimizavimą, tada iš naujo paleiskite įrenginį, kad pašalintumėte šį pranešimą 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-pt-rBR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Aviso de carregamento da bateria 8 | Expandir notificações 9 | Manter o microG em segundo plano 10 | Toque aqui para desativar a otimização de bateria para microG. Tancado e reinicie o dispositivo para remover esta notificação 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-ru/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Предупреждение о работе в режиме энергосбережения 8 | Развернуть уведомление 9 | Держать microG в фоне 10 | Нажмите здесь, чтобы отключить оптимизацию батареи для vanced microG, а затем перезапустите устройство, чтобы это уведомление пропало 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-th/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | คำเตือนการประหยัดแบตเตอรี่ 8 | ขยายการแจ้งเตือน 9 | ให้ microG ทำงานเบื้องหลัง 10 | แตะที่นี่เพื่อปิดใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่สำหรับ vanced microG จากนั้นรีสตาร์ทอุปกรณ์เพื่อลบการแจ้งเตือนนี้  11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-tr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Pil tasarrufu uyarısı 8 | Bildirimleri genişlet 9 | MicroG arka planda çalışsın 10 | Vanced microG için batarya optimizasyonunu devre dışı bırakmak için buraya tıklayın, daha sonra bu bildirimi silmek için cihazı yeniden başlatın 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-uk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Попередження про економію батареї 8 | Розгорнути сповіщення 9 | Тримайте microG у фоновому режимі 10 | Торкніться тут, щоб вимкнути оптимізацію акумулятора для vanced microG, а потім перезапустіть пристрій, щоб видалити це сповіщення 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-vi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | Cảnh báo tối ưu hóa pin 8 | Mở rộng thông báo 9 | Giữ Vanced microG chạy trong nền 10 | Nhấn vào đây để tắt tối ưu hóa pin cho Vanced microG, sau đó khởi động lại thiết bị hoặc buộc dừng ứng dụng để xóa thông báo này 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-zh-rCN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 省电警告 8 | 展开通知 9 | 保持 microG 后台服务 10 | 点此关闭 vanced microG 的电池最适化,然后重启手机以移除该通知 11 | 12 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values-zh-rTW/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 電池最佳化警示 8 | 展開完整通知 9 | 讓microG在背景執行 10 | 點擊此通知來關閉Vanced microG的電池最佳化 11 | 關閉後重新啟動手機以移除此通知 12 | 13 | -------------------------------------------------------------------------------- /play-services-base-core/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Battery Saving Warning 9 | Expand notification 10 | Keep Vanced microG in background 11 | Tap here to disable battery optimization for Vanced microG, then restart the device to remove this notification 12 | 13 | -------------------------------------------------------------------------------- /play-services-base/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | 21 | 22 | 25 | 26 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/com/google/android/gms/common/api/AccountInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.common.api; 18 | 19 | import org.microg.safeparcel.AutoSafeParcelable; 20 | 21 | @Deprecated 22 | public class AccountInfo extends AutoSafeParcelable { 23 | public static final Creator CREATOR = new AutoCreator(AccountInfo.class); 24 | } 25 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/com/google/android/gms/common/api/GoogleApiActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | * Notice: Portions of this file are reproduced from work created and shared by Google and used 5 | * according to terms described in the Creative Commons 4.0 Attribution License. 6 | * See https://developers.google.com/readme/policies for details. 7 | */ 8 | 9 | package com.google.android.gms.common.api; 10 | 11 | import android.app.Activity; 12 | import android.content.DialogInterface; 13 | 14 | import org.microg.gms.common.PublicApi; 15 | 16 | /** 17 | * Helper activity used by Google Play services APIs to display resolutions for connection errors. 18 | */ 19 | @PublicApi 20 | public class GoogleApiActivity extends Activity implements DialogInterface.OnCancelListener { 21 | @Override 22 | @PublicApi(exclude = true) 23 | public void onCancel(DialogInterface dialog) { 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/com/google/android/gms/common/api/HasApiKey.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.api; 7 | 8 | import com.google.android.gms.common.api.internal.ApiKey; 9 | 10 | public interface HasApiKey { 11 | ApiKey getApiKey(); 12 | } 13 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/com/google/android/gms/common/api/internal/ApiKey.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.api.internal; 7 | 8 | import com.google.android.gms.common.api.Api; 9 | 10 | public class ApiKey { 11 | private Api api; 12 | } 13 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/org/microg/gms/common/api/ApiClientBuilder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.microg.gms.common.api; 18 | 19 | import android.content.Context; 20 | import android.os.Looper; 21 | 22 | import com.google.android.gms.common.api.Api; 23 | 24 | public interface ApiClientBuilder { 25 | Api.Client build(O options, Context context, Looper looper, ApiClientSettings clientSettings, ConnectionCallbacks callbacks, OnConnectionFailedListener connectionFailedListener); 26 | } 27 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/org/microg/gms/common/api/ApiClientSettings.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.common.api; 7 | 8 | import android.view.View; 9 | 10 | import java.util.Set; 11 | 12 | public class ApiClientSettings { 13 | public String accountName; 14 | public String packageName; 15 | public Integer sessionId; 16 | public Set scopes; 17 | public int gravityForPopups; 18 | public View viewForPopups; 19 | } 20 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/org/microg/gms/common/api/OnConnectionFailedListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.common.api; 7 | 8 | import android.app.Activity; 9 | 10 | import com.google.android.gms.common.ConnectionResult; 11 | 12 | public interface OnConnectionFailedListener { 13 | /** 14 | * Called when there was an error connecting the client to the service. 15 | * 16 | * @param result A {@link ConnectionResult} that can be used for resolving the error, and 17 | * deciding what sort of error occurred. To resolve the error, the resolution 18 | * must be started from an activity with a non-negative {@code requestCode} 19 | * passed to {@link ConnectionResult#startResolutionForResult(Activity, int)}. 20 | * Applications should implement {@link Activity#onActivityResult} in their 21 | * Activity to call {@link #connect()} again if the user has resolved the 22 | * issue (resultCode is {@link Activity#RESULT_OK}). 23 | */ 24 | void onConnectionFailed(ConnectionResult result); 25 | } 26 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/org/microg/gms/common/api/PendingGoogleApiCall.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.common.api; 7 | 8 | import com.google.android.gms.common.api.Api; 9 | import com.google.android.gms.tasks.TaskCompletionSource; 10 | 11 | public interface PendingGoogleApiCall { 12 | void execute(A client, TaskCompletionSource completionSource) throws Exception; 13 | } 14 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/org/microg/gms/common/api/ReturningGoogleApiCall.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.common.api; 7 | 8 | import com.google.android.gms.common.api.Api; 9 | import com.google.android.gms.tasks.TaskCompletionSource; 10 | 11 | public interface ReturningGoogleApiCall extends PendingGoogleApiCall { 12 | R execute(A client) throws Exception; 13 | 14 | @Override 15 | default void execute(A client, TaskCompletionSource completionSource) { 16 | try { 17 | completionSource.setResult(execute(client)); 18 | } catch (Exception e) { 19 | completionSource.setException(e); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /play-services-base/src/main/java/org/microg/gms/common/api/VoidReturningGoogleApiCall.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2022 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.common.api; 7 | 8 | import com.google.android.gms.common.api.Api; 9 | import com.google.android.gms.tasks.TaskCompletionSource; 10 | 11 | public interface VoidReturningGoogleApiCall extends PendingGoogleApiCall{ 12 | void execute(A client) throws Exception; 13 | 14 | @Override 15 | default void execute(A client, TaskCompletionSource completionSource) { 16 | try { 17 | execute(client); 18 | completionSource.setResult(null); 19 | } catch (Exception e) { 20 | completionSource.setException(e); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /play-services-base/src/main/res/values/version.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 6599436 20 | 21 | -------------------------------------------------------------------------------- /play-services-basement/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/ConnectionResult.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common; 2 | 3 | parcelable ConnectionResult; -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/GoogleCertificatesLookupQuery.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common; 2 | 3 | parcelable GoogleCertificatesLookupQuery; -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/GoogleCertificatesLookupResponse.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common; 2 | 3 | parcelable GoogleCertificatesLookupResponse; -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/GoogleCertificatesQuery.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common; 2 | 3 | parcelable GoogleCertificatesQuery; -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/api/Status.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.api; 2 | 3 | parcelable Status; -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ConnectionInfo.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.internal; 7 | parcelable ConnectionInfo; 8 | -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/GetServiceRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | parcelable GetServiceRequest; 4 | -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ICancelToken.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | interface ICancelToken { 4 | void cancel(); 5 | } 6 | -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ICertData.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | import com.google.android.gms.dynamic.IObjectWrapper; 4 | 5 | interface ICertData { 6 | IObjectWrapper getWrappedBytes(); 7 | int remoteHashCode(); 8 | } -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/IGmsCallbacks.aidl: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.internal; 7 | 8 | import android.os.Bundle; 9 | import com.google.android.gms.common.internal.ConnectionInfo; 10 | 11 | interface IGmsCallbacks { 12 | void onPostInitComplete(int statusCode, IBinder binder, in Bundle params); 13 | void onAccountValidationComplete(int statusCode, in Bundle params); 14 | void onPostInitCompleteWithConnectionInfo(int statusCode, IBinder binder, in ConnectionInfo info); 15 | } 16 | -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/IGmsServiceBroker.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | import android.os.Bundle; 4 | 5 | import com.google.android.gms.common.internal.IGmsCallbacks; 6 | import com.google.android.gms.common.internal.GetServiceRequest; 7 | import com.google.android.gms.common.internal.ValidateAccountRequest; 8 | 9 | interface IGmsServiceBroker { 10 | void getPeopleService(IGmsCallbacks callback, int code, String str, in Bundle params) = 4; 11 | void getGoogleIdentityService(IGmsCallbacks callback, int code, String str, in Bundle params) = 16; 12 | void getAddressService(IGmsCallbacks callback, int code, String str) = 23; 13 | void getService(IGmsCallbacks callback, in GetServiceRequest request) = 45; 14 | void validateAccount(IGmsCallbacks callback, in ValidateAccountRequest request) = 46; 15 | } 16 | -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/IGoogleCertificatesApi.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | import com.google.android.gms.common.GoogleCertificatesLookupQuery; 4 | import com.google.android.gms.common.GoogleCertificatesLookupResponse; 5 | import com.google.android.gms.common.GoogleCertificatesQuery; 6 | import com.google.android.gms.dynamic.IObjectWrapper; 7 | 8 | interface IGoogleCertificatesApi { 9 | IObjectWrapper getGoogleCertificates() = 0; 10 | IObjectWrapper getGoogleReleaseCertificates() = 1; 11 | boolean isGoogleReleaseSigned(String packageName, IObjectWrapper certData) = 2; 12 | boolean isGoogleSigned(String packageName, IObjectWrapper certData) = 3; 13 | boolean isGoogleOrPlatformSigned(in GoogleCertificatesQuery query, IObjectWrapper packageManager) = 4; 14 | GoogleCertificatesLookupResponse isPackageGoogleOrPlatformSigned(in GoogleCertificatesLookupQuery query) = 5; 15 | boolean isPackageGoogleOrPlatformSignedAvailable() = 6; 16 | GoogleCertificatesLookupResponse queryPackageSigned(in GoogleCertificatesLookupQuery query) = 7; 17 | boolean isFineGrainedPackageVerificationAvailable() = 8; 18 | } -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ISignInButtonCreator.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | import com.google.android.gms.dynamic.IObjectWrapper; 4 | 5 | interface ISignInButtonCreator { 6 | IObjectWrapper createSignInButton(IObjectWrapper context, int size, int color); // returns View 7 | } 8 | -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/common/internal/ValidateAccountRequest.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.common.internal; 2 | 3 | parcelable ValidateAccountRequest; 4 | -------------------------------------------------------------------------------- /play-services-basement/src/main/aidl/com/google/android/gms/dynamic/IObjectWrapper.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.dynamic; 2 | 3 | /** 4 | * The concrete class implementing IObjectWrapper must have exactly one declared private field 5 | * for the wrapped object. Preferably, this is an instance of the ObjectWrapper class. 6 | */ 7 | interface IObjectWrapper { 8 | } 9 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/com/google/android/gms/common/Feature.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common; 7 | 8 | import org.microg.safeparcel.AutoSafeParcelable; 9 | 10 | public class Feature extends AutoSafeParcelable { 11 | @Field(1) 12 | private String name; 13 | @Field(2) 14 | private int oldVersion; 15 | @Field(3) 16 | private long version = -1; 17 | 18 | private Feature() { 19 | } 20 | 21 | public Feature(String name, long version) { 22 | this.name = name; 23 | this.version = version; 24 | } 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | 30 | public long getVersion() { 31 | if (version == -1) return oldVersion; 32 | return version; 33 | } 34 | 35 | public static final Creator CREATOR = new AutoSafeParcelable.AutoCreator<>(Feature.class); 36 | } 37 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/com/google/android/gms/common/Scopes.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.common; 18 | 19 | public class Scopes { 20 | public static final String PROFILE = "profile"; 21 | public static final String APP_STATE = "https://www.googleapis.com/auth/appstate"; 22 | } 23 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/com/google/android/gms/common/api/Releasable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.common.api; 18 | 19 | /** 20 | * Represents a resource, or a holder of resources, which may be released once they are no longer needed. 21 | */ 22 | public interface Releasable { 23 | void release(); 24 | } 25 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/com/google/android/gms/common/api/Result.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.common.api; 18 | 19 | import org.microg.gms.common.PublicApi; 20 | 21 | /** 22 | * Represents the final result of invoking an API method in Google Play Services. 23 | */ 24 | @PublicApi 25 | public interface Result { 26 | Status getStatus(); 27 | } 28 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/com/google/android/gms/common/internal/ConnectionInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.internal; 7 | 8 | import android.os.Bundle; 9 | import android.os.Parcel; 10 | import androidx.annotation.NonNull; 11 | import com.google.android.gms.common.Feature; 12 | import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable; 13 | import com.google.android.gms.common.internal.safeparcel.SafeParcelable; 14 | import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter; 15 | 16 | @SafeParcelable.Class 17 | public class ConnectionInfo extends AbstractSafeParcelable { 18 | @Field(1) 19 | public Bundle params; 20 | @Field(2) 21 | public Feature[] features; 22 | @Field(3) 23 | public int unknown3; 24 | 25 | @Override 26 | public void writeToParcel(@NonNull Parcel dest, int flags) { 27 | CREATOR.writeToParcel(this, dest, flags); 28 | } 29 | 30 | public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(ConnectionInfo.class); 31 | } 32 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/com/google/android/gms/common/internal/safeparcel/AbstractSafeParcelable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2023 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.internal.safeparcel; 7 | 8 | public abstract class AbstractSafeParcelable implements SafeParcelable { 9 | 10 | @SuppressWarnings("unchecked") 11 | public static SafeParcelableCreatorAndWriter findCreator(java.lang.Class tClass) { 12 | String creatorClassName = tClass.getName() + "$000Creator"; 13 | try { 14 | return (SafeParcelableCreatorAndWriter) java.lang.Class.forName(creatorClassName).newInstance(); 15 | } catch (Exception e) { 16 | throw new RuntimeException("No Creator found for " + tClass.getName(), e); 17 | } 18 | } 19 | 20 | @Override 21 | public int describeContents() { 22 | return 0; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/com/google/android/gms/common/internal/safeparcel/SafeParcelableCreatorAndWriter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2023 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.internal.safeparcel; 7 | 8 | import android.os.Parcel; 9 | import android.os.Parcelable; 10 | 11 | public interface SafeParcelableCreatorAndWriter extends Parcelable.Creator { 12 | void writeToParcel(T object, Parcel parcel, int flags); 13 | } 14 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/com/google/android/gms/common/internal/safeparcel/SafeParcelableSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2023 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.common.internal.safeparcel; 7 | 8 | import android.os.Parcel; 9 | import android.os.Parcelable; 10 | 11 | public class SafeParcelableSerializer { 12 | public static T deserializeFromBytes(byte[] bytes, Parcelable.Creator tCreator) { 13 | if (bytes == null) return null; 14 | Parcel parcel = Parcel.obtain(); 15 | parcel.unmarshall(bytes, 0, bytes.length); 16 | parcel.setDataPosition(0); 17 | T parcelable = tCreator.createFromParcel(parcel); 18 | parcel.recycle(); 19 | return parcelable; 20 | } 21 | 22 | public static byte[] serializeToBytes(T parcelable) { 23 | if (parcelable == null) return null; 24 | Parcel parcel = Parcel.obtain(); 25 | parcelable.writeToParcel(parcel, 0); 26 | byte[] bytes = parcel.marshall(); 27 | parcel.recycle(); 28 | return bytes; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /play-services-basement/src/main/java/org/microg/gms/common/Hide.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2023 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.common; 7 | 8 | import java.lang.annotation.ElementType; 9 | import java.lang.annotation.Retention; 10 | import java.lang.annotation.RetentionPolicy; 11 | import java.lang.annotation.Target; 12 | 13 | /** 14 | * Hide the class, method or field from the public API. 15 | */ 16 | @Retention(RetentionPolicy.SOURCE) 17 | @Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR}) 18 | public @interface Hide { 19 | } 20 | -------------------------------------------------------------------------------- /play-services-basement/src/main/kotlin/com/google/android/gms/dynamic/ObjectWrapper.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.microg.gms.kotlin 18 | 19 | import com.google.android.gms.dynamic.IObjectWrapper 20 | import com.google.android.gms.dynamic.ObjectWrapper 21 | 22 | inline fun IObjectWrapper?.unwrap(): T? = ObjectWrapper.unwrapTyped(this, T::class.java) 23 | -------------------------------------------------------------------------------- /play-services-core-proto/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | apply plugin: 'com.squareup.wire' 7 | apply plugin: 'kotlin' 8 | 9 | dependencies { 10 | implementation "com.squareup.wire:wire-runtime:$wireVersion" 11 | } 12 | 13 | wire { 14 | kotlin { 15 | javaInterop = true 16 | } 17 | } 18 | 19 | sourceSets { 20 | main.java.srcDirs += "$buildDir/generated/source/wire" 21 | } 22 | 23 | compileKotlin { 24 | kotlinOptions.jvmTarget = 1.8 25 | } 26 | 27 | compileTestKotlin { 28 | kotlinOptions.jvmTarget = 1.8 29 | } -------------------------------------------------------------------------------- /play-services-core-proto/src/main/proto/appcert.proto: -------------------------------------------------------------------------------- 1 | option java_package = "org.microg.gms.auth.appcert"; 2 | option java_outer_classname = "AppCertProto"; 3 | 4 | message DeviceKeyRequest { 5 | optional uint64 androidId = 2; 6 | optional uint64 sessionId = 3; 7 | message VersionInfo { 8 | optional fixed32 sdkVersion = 1; 9 | optional fixed32 gmsVersion = 2; 10 | } 11 | optional VersionInfo versionInfo = 4; 12 | optional string token = 6; 13 | } 14 | 15 | message DeviceKey { 16 | optional uint64 keyId = 1; 17 | optional uint64 deviceId = 3; 18 | optional bytes macSecret = 4; 19 | optional bytes keyCert = 5; 20 | } 21 | 22 | message SpatulaHeaderProto { 23 | message PackageInfo { 24 | optional string packageName = 1; 25 | optional string packageCertificateHash = 3; 26 | } 27 | optional PackageInfo packageInfo = 1; 28 | optional bytes hmac = 2; 29 | optional uint64 deviceId = 3; 30 | optional uint64 keyId = 4; 31 | optional bytes keyCert = 5; 32 | } 33 | -------------------------------------------------------------------------------- /play-services-core-proto/src/main/proto/auth.proto: -------------------------------------------------------------------------------- 1 | option java_package = "org.microg.gms.auth"; 2 | 3 | option java_outer_classname = "AuthProto"; 4 | 5 | message ConsentData { 6 | message AppDetails { 7 | optional string title = 1; 8 | optional string email = 3; 9 | } 10 | optional AppDetails app = 1; 11 | message ScopeDetails { 12 | optional string title = 1; 13 | optional string description = 2; 14 | optional string id = 6; 15 | } 16 | repeated ScopeDetails scopes = 2; 17 | } -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/drawable/ic_expand_less.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 25 | 26 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/drawable/ic_expand_more.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 25 | 26 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/layout/preference_widget_radiobutton.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-ar/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | الإصدار %1$s 19 | %1$s %2$s 20 | جميع الحقوق محفوظة. 21 | عرض تجريبي لواجهة مستخدم MicroG 22 | مُلخّص 23 | الإصدار v0.1.0 24 | المكتبات المتضمنة 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-az/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Versiya %1$s 19 | %1$s %2$s 20 | Bütün hüquqlar qorunur. 21 | microG demo versiyası 22 | Xülasə 23 | Versiya v0.1.0 24 | Daxil edilmiş informasiyalar 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-be/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Версія %1$s 19 | %1$s %2$s 20 | Усе правы абароненыя. 21 | Дэманстрацыя microG UI 22 | Дадатковая інфармацыя 23 | Версія v0.1.0 24 | Выкарыстоўваемыя бібліятэкі 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-bn/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | সংস্করণ %1$s 19 | %1$s %2$s 20 | সর্বস্বত্ব সংরক্ষিত। 21 | microG ইউ আই ডেমো 22 | সারসংক্ষেপ 23 | ০.১.০ সংস্করণ 24 | লাইব্রেরি অন্তর্ভুক্ত 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-cs/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Verze %1$s 19 | %1$s %2$s 20 | Všechna práva vyhrazena. 21 | microG UI Demo 22 | Souhrn 23 | Verze v0.1.0 24 | Zahrnuté knihovny 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-de/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Version %1$s 19 | %1$s %2$s 20 | Alle Rechte vorbehalten. 21 | microG UI Demo 22 | Zusammenfassung 23 | Version v0.1.0 24 | Genutzte Bibliotheken 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-eo/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-es-rES/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Versión %1$s 19 | %1$s %2$s 20 | Todos los derechos reservados. 21 | Demostración de microG UI 22 | Resumen 23 | Versión v0.1.0 24 | Librerías incluidas 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-es/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-fr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Version %1$s 19 | %1$s %2$s 20 | Tous droits réservés. 21 | Démo de l\'UI microG 22 | Résumé 23 | Version v0.1.0 24 | Librairies incluses 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-he/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | גרסה %1$s 19 | %1$s %2$s 20 | כל הזכויות שמורות. 21 | הדגמה של ממשק המשתמש של microG 22 | פירוט 23 | גירסה 0.1.0 24 | ספריות כלולות 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-hi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | वर्शन %1$s 19 | %1$s %2$s 20 | सर्वाधिकार सुरक्षित। 21 | microG UI डेमो 22 | सारांश 23 | संस्करण v0.1.0 24 | शामिल पुस्तकालय 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-hu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Verzió %1$s 19 | %1$s %2$s 20 | Minden jog fenntartva. 21 | microG UI Demó 22 | Összegzés 23 | Verzió v0.1.0 24 | Tartalmazott könyvtárak 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-id/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Versi%1$s 19 | %1$s %2$s 20 | Hak cipta dilindungi. 21 | microG UI Demo 22 | Ringkasan 23 | Versi v0.1.0 24 | Pustaka 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-it/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Versione %1$s 19 | %1$s %2$s 20 | Tutti i diritti sono riservati. 21 | microG UI Demo 22 | Sommario 23 | Versione v0.1.0 24 | Librerie incluse 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-ja/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | バージョン %1$s 19 | %1$s %2$s 20 | すべての著作権を保有しています 21 | microG UI のデモ 22 | 概要 23 | バージョン v0.1.0 24 | 含まれるライブラリ 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-ko/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 버전 %1$s 19 | %1$s %2$s 20 | 모든 권리 보유 21 | microG UI 데모 22 | 요약 23 | 버전 v0.1.0 24 | 포함된 라이브러리 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-lt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Versija: %1$s 19 | %1$s/%2$s 20 | Visos teisės saugomos. 21 | microG naudotojo sąsaja Demo 22 | Suvestinė 23 | Versija v0.1.0 24 | Įtrauktos bibliotekos 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-pl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Wersja %1$s 19 | %1$s %2$s 20 | Wszelkie prawa zastrzeżone. 21 | Demo microG UI 22 | Podsumowanie 23 | Wersja v0.1.0 24 | Użyte biblioteki 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-pt-rBR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Versão %1$s 19 | %1$s %2$s 20 | Todos os direitos reservados. 21 | Demonstração do microG. UI 22 | Sumário 23 | Versão v0.1.0 24 | Bibliotecas incluídas 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-ro/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-ru/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Версия %1$s 19 | %1$s %2$s 20 | Все права защищены. 21 | microG UI Demo 22 | Сводка 23 | Версия v0.1.0 24 | Используемые библиотеки 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-sr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-th/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | เวอร์ชัน %1$s 19 | %1$s %2$s 20 | สงวนลิขสิทธิ์. 21 | microG UI Demo 22 | เวอร์ชัน v0.1.0 23 | 24 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-tr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Sürüm: %1$s 19 | %1$s %2$s 20 | Tüm hakları saklıdır. 21 | microG kullanıcı arayüzü demosu 22 | Özet 23 | Sürüm v0.1.0 24 | İçerilen kütüphaneler 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-uk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Версія %1$s 19 | %1$s %2$s 20 | Всі права захищено. 21 | Демонстрація microG UI 22 | Резюме 23 | Версія v0.1.0 24 | Використані бібліотеки 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-vi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | Phiên bản %1$s 19 | %1$s %2$s 20 | Đã đăng ký bản quyền. 21 | Demo microG UI 22 | Tổng quan 23 | Phiên bản v0.1.0 24 | Thư viện đã bao gồm 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-zh-rCN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 版本 %1$s 19 | %1$s %2$s 20 | 版权所有。 21 | microG UI 演示 22 | 概要 23 | 版本 v0.1.0 24 | 包含的库 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values-zh-rTW/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 版本 %1$s 19 | %1$s %2$s 20 | 保留所有權利。 21 | microG UI Demo 22 | 摘要 23 | 版本 v0.1.0 24 | 使用的程式庫 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | #ff37474f 20 | 21 | 22 | -------------------------------------------------------------------------------- /play-services-core/microg-ui-tools/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | Version %1$s 21 | %1$s %2$s 22 | All rights reserved. 23 | 24 | microG UI Demo 25 | Summary 26 | Version v0.1.0 27 | Included libraries 28 | 29 | 30 | -------------------------------------------------------------------------------- /play-services-core/multidex-keep.pro: -------------------------------------------------------------------------------- 1 | # Make sure maps is in the primary dex file 2 | -keep class com.google.android.gms.maps.** { *; } 3 | -keep class org.microg.gms.maps.** { *; } 4 | -keep class com.mapbox.** { *; } 5 | -keep class org.oscim.** { *; } 6 | 7 | # Keep Conscrypt in the primary dex file otherwise it will error out on legacy Android versions 8 | -keep class com.google.android.gms.common.security.ProviderInstallerImpl { *; } 9 | -keep class com.google.android.gms.org.conscrypt.** { *; } 10 | -------------------------------------------------------------------------------- /play-services-core/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /play-services-core/src/main/java/com/google/android/gms/auth/GetToken.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.google.android.gms.auth; 18 | 19 | import android.app.Service; 20 | import android.content.Intent; 21 | import android.os.IBinder; 22 | 23 | import org.microg.gms.auth.AuthManagerServiceImpl; 24 | 25 | public class GetToken extends Service { 26 | @Override 27 | public IBinder onBind(Intent intent) { 28 | return new AuthManagerServiceImpl(this); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/java/com/google/android/gms/chimera/DynamiteModuleInitializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2023 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package com.google.android.gms.chimera; 7 | 8 | import android.annotation.SuppressLint; 9 | import android.util.Log; 10 | import androidx.annotation.Keep; 11 | 12 | import android.content.Context; 13 | 14 | @Keep 15 | public class DynamiteModuleInitializer { 16 | private static final String TAG = "DynamiteModule"; 17 | 18 | public static void initializeModuleV1(Context context) { 19 | initializeModuleV2(context, "com.google.android.gms".equals(context.getPackageName())); 20 | } 21 | 22 | public static void initializeModuleV2(Context context, boolean withGmsPackage) { 23 | Log.d(TAG, "initializeModuleV2 context: " + context + ", withGmsPackage: " + withGmsPackage); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/java/org/microg/gms/ui/GoogleMoreFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.microg.gms.ui; 18 | 19 | import com.mgoogle.android.gms.R; 20 | 21 | import org.microg.tools.ui.AbstractSettingsActivity; 22 | 23 | public class GoogleMoreFragment { 24 | public static class AsActivity extends AbstractSettingsActivity { 25 | public AsActivity() { 26 | showHomeAsUp = true; 27 | preferencesResource = R.xml.preferences_google_more; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/java/org/microg/gms/ui/SettingsDashboardActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013-2017 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.microg.gms.ui; 18 | 19 | import androidx.fragment.app.Fragment; 20 | 21 | import com.mgoogle.android.gms.R; 22 | 23 | import org.microg.tools.ui.AbstractDashboardActivity; 24 | 25 | public class SettingsDashboardActivity extends AbstractDashboardActivity { 26 | 27 | public SettingsDashboardActivity() { 28 | preferencesResource = R.xml.preferences_start; 29 | } 30 | 31 | @Override 32 | protected Fragment getFragment() { 33 | return new SettingsFragment(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /play-services-core/src/main/kotlin/org/microg/gms/accountsettings/ui/extensions.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2023 microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.accountsettings.ui 7 | 8 | const val ACTION_BROWSE_SETTINGS = "com.google.android.gms.accountsettings.action.BROWSE_SETTINGS" 9 | const val ACTION_MY_ACCOUNT = "com.google.android.gms.accountsettings.MY_ACCOUNT" 10 | const val ACTION_ACCOUNT_PREFERENCES_SETTINGS = "com.google.android.gms.accountsettings.ACCOUNT_PREFERENCES_SETTINGS" 11 | const val ACTION_PRIVACY_SETTINGS = "com.google.android.gms.accountsettings.PRIVACY_SETTINGS" 12 | const val ACTION_SECURITY_SETTINGS = "com.google.android.gms.accountsettings.SECURITY_SETTINGS" 13 | 14 | const val EXTRA_CALLING_PACKAGE_NAME = "extra.callingPackageName" 15 | const val EXTRA_IGNORE_ACCOUNT = "extra.ignoreAccount" 16 | const val EXTRA_ACCOUNT_NAME = "extra.accountName" 17 | const val EXTRA_SCREEN_ID = "extra.screenId" 18 | const val EXTRA_SCREEN_OPTIONS_PREFIX = "extra.screen." 19 | const val EXTRA_FALLBACK_URL = "extra.fallbackUrl" 20 | const val EXTRA_FALLBACK_AUTH = "extra.fallbackAuth" 21 | const val EXTRA_THEME_CHOICE = "extra.themeChoice" 22 | 23 | const val OPTION_SCREEN_FLAVOR = "screenFlavor" -------------------------------------------------------------------------------- /play-services-core/src/main/kotlin/org/microg/gms/auth/AuthPrefs.kt: -------------------------------------------------------------------------------- 1 | package org.microg.gms.auth 2 | 3 | import android.content.Context 4 | import org.microg.gms.settings.SettingsContract 5 | import org.microg.gms.settings.SettingsContract.Auth 6 | 7 | object AuthPrefs { 8 | 9 | @JvmStatic 10 | fun isTrustGooglePermitted(context: Context): Boolean { 11 | return SettingsContract.getSettings(context, Auth.getContentUri(context), arrayOf(Auth.TRUST_GOOGLE)) { c -> 12 | c.getInt(0) != 0 13 | } 14 | } 15 | 16 | @JvmStatic 17 | fun isAuthVisible(context: Context): Boolean { 18 | return SettingsContract.getSettings(context, Auth.getContentUri(context), arrayOf(Auth.VISIBLE)) { c -> 19 | c.getInt(0) != 0 20 | } 21 | } 22 | 23 | @JvmStatic 24 | fun shouldIncludeAndroidId(context: Context): Boolean { 25 | return SettingsContract.getSettings(context, Auth.getContentUri(context), arrayOf(Auth.INCLUDE_ANDROID_ID)) { c -> 26 | c.getInt(0) != 0 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/kotlin/org/microg/gms/ui/Constants.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.ui 7 | 8 | const val TAG = "GmsUi" 9 | -------------------------------------------------------------------------------- /play-services-core/src/main/kotlin/org/microg/gms/ui/PreferenceSwitchBarCallback.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.ui 7 | 8 | interface PreferenceSwitchBarCallback { 9 | fun onChecked(newStatus: Boolean) 10 | } 11 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/drawable/dots_horizontal.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/drawable/ic_device_login.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/drawable/ic_expand_apps.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/drawable/ic_info_outline.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/layout/preference_category_no_label.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/layout/preference_progress_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 17 | 18 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/layout/settings_root_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 11 | 12 | 19 | 20 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inotia00/VancedMicroG/824550955f46962f7cc31caed9dc844bd76517dd/play-services-core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-ar/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d تطبيق مسجل 22 | %1$d تطبيقات مسجلة 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-az/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | @string/service_status_disabled_short 22 | @string/gcm_status_pref_default 23 | Ping intervalı: 2 dəqiqə 24 | Ping intervalı: 5 dəqiqə 25 | Ping intervalı: 10 dəqiqə 26 | Ping intervalı: 15 dəqiqə 27 | Ping intervalı: 20 dəqiqə 28 | Ping intervalı: 30 dəqiqə 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-az/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d qeydiyyat olunmuş proqram 22 | %1$d qeydiyyat olunmuş proqramlar 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-be/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d аўтарызаваная праграма 22 | %1$d аўтарызаваных праграм 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-bn/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | @string/service_status_disabled_short 22 | @string/gcm_status_pref_default 23 | পিং ব্যবধান: 2 মিনিট 24 | পিং ব্যবধান: 5 মিনিট 25 | পিং ব্যবধান: 10 মিনিট 26 | পিং ব্যবধান: 15 মিনিট 27 | পিং ব্যবধান: 20 মিনিট 28 | পিং ব্যবধান: 30 মিনিট 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-bn/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d নিবন্ধিত অ্যাপ 22 | %1$d নিবন্ধিত অ্যাপসমূহ 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-es-rES/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d aplicación registrada 22 | %1$d aplicaciones registradas 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-fr/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d application enregistrée 22 | %1$d application enregistrée 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-hi/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d पंजीकृत ऐप 22 | %1$d पंजीकृत ऐप्स 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-id/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | @string/service_status_disabled_short 22 | @string/gcm_status_pref_default 23 | Interval ping: 2 menit 24 | Interval ping: 5 menit 25 | Interval ping: 10 menit 26 | Interval ping: 15 menit 27 | Interval ping: 20 menit 28 | Interval ping: 30 menit 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-id/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d aplikasi terdaftar 22 | %1$d aplikasi terdaftar 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-it/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d applicazione registrata 22 | %1$d applicazioni registrate 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-ja/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | @string/service_status_disabled_short 22 | @string/gcm_status_pref_default 23 | Ping間隔: 2 分 24 | Ping間隔: 5 分 25 | Ping間隔: 10 分 26 | Ping間隔: 15 分 27 | Ping間隔: 20 分 28 | Ping間隔: 30 分 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-ja/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d アプリを登録しました 22 | %1$d 登録済みのアプリ 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-ko/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | @string/service_status_disabled_short 22 | @string/gcm_status_pref_default 23 | 핑 간격: 2 분 24 | 핑 간격: 5 분 25 | 핑 간격: 10 분 26 | 핑 간격: 15 분 27 | 핑 간격: 20 분 28 | 핑 간격: 30 분 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-ko/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d 등록된 앱 22 | %1$d 등록된 앱 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-lt/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d registruota programėlė 22 | %1$d registruotos programėlės 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-night-v31/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-pt-rBR/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d aplicativo registrado 22 | %1$d aplicativo registrado 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-ru/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | @string/service_status_disabled_short 22 | @string/gcm_status_pref_default 23 | Интервал пинга: 2 минут 24 | Интервал пинга: 5 минут 25 | Интервал пинга: 10 минут 26 | Интервал пинга: 15 минут 27 | Интервал пинга: 20 минут 28 | Интервал пинга: 30 минут 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-ru/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d авторизованное приложение 22 | %1$d авторизованных приложений 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-tr/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d kayıtlı uygulama 22 | %1$d kayıtlı uygulamalar 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-uk/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d зареєстрований додаток 22 | %1$d зареєстрованих додатків 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-v31/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-vi/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d ứng dụng đã đăng ký 22 | %1$d ứng dụng đã đăng ký 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-zh-rCN/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | @string/service_status_disabled_short 22 | @string/gcm_status_pref_default 23 | Ping 间隔 : 2 分钟 24 | Ping 间隔 : 5 分钟 25 | Ping 间隔 : 10 分钟 26 | Ping 间隔 : 15 分钟 27 | Ping 间隔 : 20 分钟 28 | Ping 间隔 : 30 分钟 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-zh-rCN/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d 个注册的应用 22 | %1$d 个注册的应用 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-zh-rTW/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | @string/service_status_disabled_short 22 | @string/gcm_status_pref_default 23 | Ping 間隔: 2 分鐘 24 | Ping 間隔: 5 分鐘 25 | Ping 間隔: 10 分鐘 26 | Ping 間隔: 15 分鐘 27 | Ping 間隔: 20 分鐘 28 | Ping 間隔: 30 分鐘 29 | 30 | 31 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values-zh-rTW/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %1$d 註冊應用 22 | %1$d 註冊應用 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | #ff4285f4 20 | #ff3367d6 21 | #ffffab40 22 | #ff9a82db 23 | 24 | 25 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #171719 4 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values/permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | %1$d registered App 21 | %1$d registered Apps 22 | 23 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/values/resources.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vanced microG 5 | 6 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/xml/authenticator.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 25 | -------------------------------------------------------------------------------- /play-services-core/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /play-services-iid-api/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2015 microG Project Team 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | apply plugin: 'com.android.library' 18 | 19 | android { 20 | compileSdkVersion androidCompileSdk 21 | buildToolsVersion androidBuildVersionTools 22 | 23 | defaultConfig { 24 | minSdkVersion androidMinSdk 25 | targetSdkVersion androidTargetSdk 26 | } 27 | 28 | compileOptions { 29 | sourceCompatibility = 1.8 30 | targetCompatibility = 1.8 31 | } 32 | } 33 | 34 | dependencies { 35 | api project(':play-services-basement') 36 | } -------------------------------------------------------------------------------- /play-services-iid-api/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /play-services-iid-api/src/main/aidl/com/google/android/gms/iid/IMessengerCompat.aidl: -------------------------------------------------------------------------------- 1 | package com.google.android.gms.iid; 2 | 3 | import android.os.Message; 4 | 5 | interface IMessengerCompat { 6 | void send(in Message message); 7 | } 8 | -------------------------------------------------------------------------------- /play-services-tasks/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | apply plugin: 'com.android.library' 7 | apply plugin: 'kotlin-android' 8 | apply plugin: 'maven-publish' 9 | apply plugin: 'signing' 10 | 11 | android { 12 | compileSdkVersion androidCompileSdk 13 | buildToolsVersion androidBuildVersionTools 14 | 15 | defaultConfig { 16 | minSdkVersion androidMinSdk 17 | targetSdkVersion androidTargetSdk 18 | } 19 | 20 | sourceSets { 21 | main.java.srcDirs += 'src/main/kotlin' 22 | } 23 | 24 | compileOptions { 25 | sourceCompatibility = 1.8 26 | targetCompatibility = 1.8 27 | } 28 | } 29 | 30 | dependencies { 31 | api project(':play-services-basement') 32 | 33 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" 34 | implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutineVersion" 35 | implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutineVersion" 36 | } -------------------------------------------------------------------------------- /play-services-tasks/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/com/google/android/gms/tasks/OnCanceledListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 AND CC-BY-4.0 4 | * Notice: Portions of this file are reproduced from work created and shared by Google and used 5 | * according to terms described in the Creative Commons 4.0 Attribution License. 6 | * See https://developers.google.com/readme/policies for details. 7 | */ 8 | 9 | package com.google.android.gms.tasks; 10 | 11 | import org.microg.gms.common.PublicApi; 12 | 13 | /** 14 | * Listener called when a {@link Task} is canceled. 15 | */ 16 | @PublicApi 17 | public interface OnCanceledListener { 18 | /** 19 | * Called when the Task is canceled successfully. 20 | */ 21 | void onCanceled(); 22 | } 23 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/com/google/android/gms/tasks/OnCompleteListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2016, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 AND CC-BY-4.0 4 | * Notice: Portions of this file are reproduced from work created and shared by Google and used 5 | * according to terms described in the Creative Commons 4.0 Attribution License. 6 | * See https://developers.google.com/readme/policies for details. 7 | */ 8 | 9 | package com.google.android.gms.tasks; 10 | 11 | import org.microg.gms.common.PublicApi; 12 | 13 | /** 14 | * Listener called when a {@link Task} completes. 15 | * 16 | * @see Task#addOnCompleteListener(OnCompleteListener) 17 | */ 18 | @PublicApi 19 | public interface OnCompleteListener { 20 | /** 21 | * Called when the Task completes. 22 | * 23 | * @param task the completed Task. Never null 24 | */ 25 | void onComplete(Task task); 26 | } 27 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/com/google/android/gms/tasks/OnFailureListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2016, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 AND CC-BY-4.0 4 | * Notice: Portions of this file are reproduced from work created and shared by Google and used 5 | * according to terms described in the Creative Commons 4.0 Attribution License. 6 | * See https://developers.google.com/readme/policies for details. 7 | */ 8 | 9 | package com.google.android.gms.tasks; 10 | 11 | import org.microg.gms.common.PublicApi; 12 | 13 | /** 14 | * Listener called when a {@link Task} fails with an exception. 15 | * 16 | * @see Task#addOnFailureListener(OnFailureListener) 17 | */ 18 | @PublicApi 19 | public interface OnFailureListener { 20 | 21 | /** 22 | * Called when the Task fails with an exception. 23 | * 24 | * @param e the exception that caused the Task to fail. Never null 25 | */ 26 | void onFailure(Exception e); 27 | } 28 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/com/google/android/gms/tasks/OnSuccessListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2016, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 AND CC-BY-4.0 4 | * Notice: Portions of this file are reproduced from work created and shared by Google and used 5 | * according to terms described in the Creative Commons 4.0 Attribution License. 6 | * See https://developers.google.com/readme/policies for details. 7 | */ 8 | 9 | package com.google.android.gms.tasks; 10 | 11 | import org.microg.gms.common.PublicApi; 12 | 13 | /** 14 | * Listener called when a {@link Task} completes successfully. 15 | * 16 | * @see Task#addOnSuccessListener(OnSuccessListener) 17 | */ 18 | @PublicApi 19 | public interface OnSuccessListener { 20 | /** 21 | * Called when the {@link Task} completes successfully. 22 | * 23 | * @param result the result of the Task 24 | */ 25 | void onSuccess(TResult result); 26 | } 27 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/com/google/android/gms/tasks/OnTokenCanceledListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 AND CC-BY-4.0 4 | * Notice: Portions of this file are reproduced from work created and shared by Google and used 5 | * according to terms described in the Creative Commons 4.0 Attribution License. 6 | * See https://developers.google.com/readme/policies for details. 7 | */ 8 | 9 | package com.google.android.gms.tasks; 10 | 11 | import org.microg.gms.common.PublicApi; 12 | 13 | /** 14 | * Listener called when a {@link CancellationToken} is canceled successfully. 15 | * 16 | * @see CancellationToken#onCanceledRequested(OnTokenCanceledListener) 17 | */ 18 | @PublicApi 19 | public interface OnTokenCanceledListener { 20 | /** 21 | * Called when the {@link CancellationToken} is canceled successfully. 22 | */ 23 | void onCanceled(); 24 | } 25 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/com/google/android/gms/tasks/RuntimeExecutionException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2016, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 AND CC-BY-4.0 4 | * Notice: Portions of this file are reproduced from work created and shared by Google and used 5 | * according to terms described in the Creative Commons 4.0 Attribution License. 6 | * See https://developers.google.com/readme/policies for details. 7 | */ 8 | 9 | package com.google.android.gms.tasks; 10 | 11 | import org.microg.gms.common.PublicApi; 12 | 13 | import java.util.concurrent.ExecutionException; 14 | 15 | /** 16 | * Runtime version of {@link ExecutionException}. 17 | * 18 | * @see Task#getResult(Class) 19 | */ 20 | @PublicApi 21 | public class RuntimeExecutionException extends RuntimeException { 22 | public RuntimeExecutionException(Throwable cause) { 23 | super(cause); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/com/google/android/gms/tasks/TaskExecutors.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 AND CC-BY-4.0 4 | * Notice: Portions of this file are reproduced from work created and shared by Google and used 5 | * according to terms described in the Creative Commons 4.0 Attribution License. 6 | * See https://developers.google.com/readme/policies for details. 7 | */ 8 | 9 | package com.google.android.gms.tasks; 10 | 11 | import android.os.Handler; 12 | import android.os.Looper; 13 | 14 | import org.microg.gms.common.PublicApi; 15 | 16 | import java.util.concurrent.Executor; 17 | 18 | /** 19 | * Standard {@link Executor} instances for use with {@link Task}. 20 | */ 21 | @PublicApi 22 | public final class TaskExecutors { 23 | /** 24 | * An Executor that uses the main application thread. 25 | */ 26 | public static final Executor MAIN_THREAD = new Executor() { 27 | private final Handler handler = new Handler(Looper.getMainLooper()); 28 | @Override 29 | public void execute(Runnable command) { 30 | handler.post(command); 31 | } 32 | }; 33 | } 34 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/org/microg/gms/tasks/CancellationTokenImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.tasks; 7 | 8 | import com.google.android.gms.tasks.CancellationToken; 9 | import com.google.android.gms.tasks.DuplicateTaskCompletionException; 10 | import com.google.android.gms.tasks.OnTokenCanceledListener; 11 | 12 | public class CancellationTokenImpl extends CancellationToken { 13 | private final TaskImpl task = new TaskImpl<>(); 14 | 15 | @Override 16 | public boolean isCancellationRequested() { 17 | return task.isComplete(); 18 | } 19 | 20 | @Override 21 | public CancellationToken onCanceledRequested(OnTokenCanceledListener listener) { 22 | task.addOnSuccessListener(aVoid -> listener.onCanceled()); 23 | return this; 24 | } 25 | 26 | public void cancel() { 27 | try { 28 | task.cancel(); 29 | } catch (DuplicateTaskCompletionException ignored) { 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/org/microg/gms/tasks/CancelledExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.tasks; 7 | 8 | import com.google.android.gms.tasks.OnCanceledListener; 9 | import com.google.android.gms.tasks.Task; 10 | 11 | import java.util.concurrent.Executor; 12 | 13 | public class CancelledExecutor extends UpdateExecutor { 14 | private OnCanceledListener listener; 15 | 16 | public CancelledExecutor(Executor executor, OnCanceledListener listener) { 17 | super(executor); 18 | this.listener = listener; 19 | } 20 | 21 | @Override 22 | public void onTaskUpdate(Task task) { 23 | if (task.isCanceled()) { 24 | execute(() -> listener.onCanceled()); 25 | } 26 | } 27 | 28 | @Override 29 | public void cancel() { 30 | super.cancel(); 31 | listener = null; 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/org/microg/gms/tasks/CompletedExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.tasks; 7 | 8 | import com.google.android.gms.tasks.OnCompleteListener; 9 | import com.google.android.gms.tasks.Task; 10 | 11 | import java.util.concurrent.Executor; 12 | 13 | public class CompletedExecutor extends UpdateExecutor { 14 | private OnCompleteListener listener; 15 | 16 | public CompletedExecutor(Executor executor, OnCompleteListener listener) { 17 | super(executor); 18 | this.listener = listener; 19 | } 20 | 21 | @Override 22 | public void onTaskUpdate(Task task) { 23 | if (task.isComplete()) { 24 | execute(() -> listener.onComplete(task)); 25 | } 26 | } 27 | 28 | @Override 29 | public void cancel() { 30 | super.cancel(); 31 | listener = null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/org/microg/gms/tasks/FailureExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.tasks; 7 | 8 | import com.google.android.gms.tasks.OnFailureListener; 9 | import com.google.android.gms.tasks.Task; 10 | 11 | import java.util.concurrent.Executor; 12 | 13 | public class FailureExecutor extends UpdateExecutor { 14 | private OnFailureListener listener; 15 | 16 | public FailureExecutor(Executor executor, OnFailureListener listener) { 17 | super(executor); 18 | this.listener = listener; 19 | } 20 | 21 | @Override 22 | public void onTaskUpdate(Task task) { 23 | if (task.isComplete() && !task.isSuccessful() && !task.isCanceled()) { 24 | execute(() -> listener.onFailure(task.getException())); 25 | } 26 | } 27 | 28 | @Override 29 | public void cancel() { 30 | super.cancel(); 31 | listener = null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/org/microg/gms/tasks/SuccessExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.tasks; 7 | 8 | import com.google.android.gms.tasks.OnSuccessListener; 9 | import com.google.android.gms.tasks.Task; 10 | 11 | import java.util.concurrent.Executor; 12 | 13 | public class SuccessExecutor extends UpdateExecutor { 14 | private OnSuccessListener listener; 15 | 16 | public SuccessExecutor(Executor executor, OnSuccessListener listener) { 17 | super(executor); 18 | this.listener = listener; 19 | } 20 | 21 | @Override 22 | public void onTaskUpdate(Task task) { 23 | if (task.isSuccessful()) { 24 | execute(() -> listener.onSuccess(task.getResult())); 25 | } 26 | } 27 | 28 | @Override 29 | public void cancel() { 30 | super.cancel(); 31 | listener = null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/org/microg/gms/tasks/UpdateExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.tasks; 7 | 8 | import java.util.concurrent.Executor; 9 | 10 | public abstract class UpdateExecutor implements UpdateListener, Executor { 11 | private Executor executor; 12 | 13 | public UpdateExecutor(Executor executor) { 14 | this.executor = executor; 15 | } 16 | 17 | @Override 18 | public void execute(Runnable runnable) { 19 | if (executor == null) return; 20 | executor.execute(runnable); 21 | } 22 | 23 | @Override 24 | public void cancel() { 25 | executor = null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /play-services-tasks/src/main/java/org/microg/gms/tasks/UpdateListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2020, microG Project Team 3 | * SPDX-License-Identifier: Apache-2.0 4 | */ 5 | 6 | package org.microg.gms.tasks; 7 | 8 | import com.google.android.gms.tasks.Task; 9 | 10 | public interface UpdateListener { 11 | void onTaskUpdate(Task task); 12 | 13 | void cancel(); 14 | } 15 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':fake-signature' 2 | 3 | include ':play-services-basement' 4 | 5 | include ':play-services-tasks' 6 | 7 | include ':play-services-base-api' 8 | include ':play-services-iid-api' 9 | 10 | include ':play-services-api' 11 | 12 | include ':play-services-core-proto' 13 | 14 | include ':play-services-core:microg-ui-tools' // Legacy 15 | include ':play-services-core' 16 | 17 | include ':play-services-base' 18 | include ':play-services-base-core' --------------------------------------------------------------------------------