Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ContactSyncService: Implement related functions#2733

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
DaVinci9196 wants to merge4 commits intomicrog:master
base:master
Choose a base branch
Loading
fromDaVinci9196:people_api

Conversation

@DaVinci9196
Copy link
Contributor

Includes:

  1. After adding/deleting/modifying contact groups and personnel information, the cloud and device are synchronized with each other.
  2. After adding/deleting/modifying contact avatar information, the cloud and device are synchronized with each other.

Note:
Tried to use PeopleApi, but did not have access to the interface.

dimaryaz, 000exploit, ildar, and Rikiub reacted with heart emoji
@Sense101
Copy link

@DaVinci9196 so can people api not be made to work with MicroG? This is critical, as since a few weeks ago all requests made to the old apis return:
Received 429 status code: Contacts API has been deprecated. Migrate to People API to retain programmatic access to Google Contacts. Seehttps://developers.google.com/people/contacts-api-migration.

This includes the google contacts sync adapter

@Sense101
Copy link

@DaVinci9196 I would like to help to finish implementing this. Please respond.

@DaVinci9196
Copy link
ContributorAuthor

@DaVinci9196 I would like to help to finish implementing this. Please respond.

Sorry, I just noticed today that I used OauthToken generated based on GMS and Google Contacts app when verifying whether PeopleApi is available. Unfortunately, errors such as unable to access the API and no contacts permission appeared. You can try to see if there are other ways to solve these errors.

@Sense101
Copy link

I am looking into this

@Sense101
Copy link

I am still looking into this, as the entire structure of the api has changed this is not as simple as I thought.

@000exploit
Copy link

@Sense101 sorry for bothering, but what have you discovered?

@Sense101
Copy link

No problem, took a break from this although I will be returning to it. Part of what I was working on is that the format of the .proto files (which define data sent between the client and server) must include specific annotations to link up correctly with the new google api's. This required different dependencies to the ones used right now in MicroG, which was a whole mess to sort out.

Still lots of work to do, but that's part of what I discovered :)

@Sense101
Copy link

Just noting I had some incorrect assumptions about this.

@Sense101
Copy link

@DaVinci9196 I have been working on this, and have replicated calling the People api using an oauth generated based on GMS. I got the following error messsage back from google:

People API has not been used in project 745476177629 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/people.googleapis.com/overview?project=745476177629 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

Was this the same error that you saw? If not, what error did you see?

I tried generating oauth token based on the old contacts sync adapter id but couldn't get an auth token.

I think this is a crucial feature for microg to have so it should be a priority to fix.

The only next step I see from here is reverse engineering how play services does it, which I have no experience with.
It seems likely that google play services is using some internal API - would you be able to either find out what that is / know how I could do that?

If anyone else is willing to help with this it would also be appreciated.

@DaVinci9196
Copy link
ContributorAuthor

@Sense101 Yes, we have encountered this problem since the beginning. This is a configuration behavior of GMS itself and there is no way to bypass or fix it. The current solution was adopted as the last resort to sync contacts.

@Sense101
Copy link

@DaVinci9196 so to clarify, you're saying there is no way to now include contacts sync within MicroG?
Why is reverse engineering what play services does not an option?

@DaVinci9196
Copy link
ContributorAuthor

DaVinci9196 commentedSep 12, 2025
edited
Loading

@Sense101 At least not yet, maybe Marvin is considering other options.

@ale5000-git
Copy link
Member

ale5000-git commentedSep 12, 2025
edited
Loading

@DaVinci9196
@Sense101

Before implementing the contact sync part have you tried to implement the backup transport part?

On Android 4.4 (Kitkat) the Google Contact Sync Adapter behave in this way:

  • WithOUT Google Backup Transport it use its internal deprecated sync over plain http
  • With Google Backup Transport installed it use Google Backup Transport to do the sync

Before Android 6 (Marshmallow) all Google Backup Transports include the service:com.google.android.backup.BackupTransportService
Starting from Android 6 the service.backup.BackupTransportService was removed from Google Backup Transport and added to Google Play Services.

On Android 7.1.2 (Nougat) Google Contact Sync Adapter say this:

09-12 19:36:24.107  6027  6046 I SyncAdapterProxy: Delagator disabled, using the (deprecated) GData sync adapter09-12 19:36:24.110  6027  6046 I GoogleHttpClient: GMS http client unavailable, use old client

So if we implement the missing parts in microG Services (possibly service.backup.BackupTransportService) maybe the official Google Contact Sync Adapter may start working again.

@DaVinci9196
Copy link
ContributorAuthor

@ale5000-git Compared to implementing another larger function, I prefer the current PR solution :)

@ale5000-git
Copy link
Member

ale5000-git commentedSep 15, 2025
edited
Loading

The whole file is 0.17 MB, I wouldn't say it is big.
This is the one I'm referring to:https://www.apkmirror.com/apk/google-inc/google-backup-transport/google-backup-transport-5-1-1-2640980-release/google-backup-transport-5-1-1-2640980-android-apk-download/

Also the current PR don't work, or I'm wrong?

@Sense101
Copy link

As@ale5000-git said, this PR doesn't work anymore, and there isn't any way to get it working.

However, I don't think relying on Google Contacts sync apk is a good solution because Google clearly stopped producing further versions and there's no way it will work long term.

The idea with backup transport may be a good try though for a short term solution, although I don't like the idea of adding old code

@DaVinci9196
Copy link
ContributorAuthor

After verification, this PR still works to obtain contact data. However, additional steps are required. After granting microG permission to read your address book, select your Google account on the Accounts page in System Settings and click Sync Now.

@ildar
Copy link

After verification, this PR still works to obtain contact data.

This is awesome! Is there an early build for alpha-testing? thanks.

P.S. I see that CI doesn't leave artifacts, sadly

@Sense101
Copy link

Hmm so it seems the shutdown of the old api for contacts sync didn't yet impact when play services is asking for sync?

That's unusual as it is shut down for all other apps
I think it is only a matter of time till they shut it down fully

@xisnamhxisnamh mentioned this pull requestDec 9, 2025
Closed
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

5 participants

@DaVinci9196@Sense101@000exploit@ale5000-git@ildar

[8]ページ先頭

©2009-2025 Movatter.jp