From 646eab8f2ad90715196304248a58dea77a93732d Mon Sep 17 00:00:00 2001 From: Oizaro Date: Sat, 10 Oct 2020 02:19:45 +0200 Subject: [PATCH] Reset AndroidID after switching login method --- .../org/microg/gms/auth/login/LoginActivity.java | 14 ++++++++++++-- .../java/org/microg/gms/checkin/CheckinClient.java | 2 ++ .../org/microg/gms/checkin/LastCheckinInfo.java | 11 +++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/play-services-core/src/main/java/org/microg/gms/auth/login/LoginActivity.java b/play-services-core/src/main/java/org/microg/gms/auth/login/LoginActivity.java index 123b9f8e..d02b1efc 100644 --- a/play-services-core/src/main/java/org/microg/gms/auth/login/LoginActivity.java +++ b/play-services-core/src/main/java/org/microg/gms/auth/login/LoginActivity.java @@ -158,7 +158,12 @@ public class LoginActivity extends AssistantActivity { super.onHuaweiButtonClicked(); state++; if (state == 1) { - CheckinClient.brandSpoof = true; + CheckinClient.isHuaweiButtonClicked = true; + if (CheckinClient.isLoginButtonClicked) { + LastCheckinInfo.ClearCheckinInfo(this); + CheckinClient.brandSpoof = true; + CheckinClient.isLoginButtonClicked = false; + } init(); } } @@ -168,7 +173,12 @@ public class LoginActivity extends AssistantActivity { super.onNextButtonClicked(); state++; if (state == 1) { - CheckinClient.brandSpoof = false; + CheckinClient.isLoginButtonClicked = true; + if (CheckinClient.isHuaweiButtonClicked) { + LastCheckinInfo.ClearCheckinInfo(this); + CheckinClient.brandSpoof = false; + CheckinClient.isHuaweiButtonClicked = false; + } init(); } else if (state == -1) { setResult(RESULT_CANCELED); diff --git a/play-services-core/src/main/java/org/microg/gms/checkin/CheckinClient.java b/play-services-core/src/main/java/org/microg/gms/checkin/CheckinClient.java index 49bf4d73..c61e334b 100755 --- a/play-services-core/src/main/java/org/microg/gms/checkin/CheckinClient.java +++ b/play-services-core/src/main/java/org/microg/gms/checkin/CheckinClient.java @@ -45,6 +45,8 @@ public class CheckinClient { private static final List TODO_LIST_STRING = new ArrayList<>(); // TODO private static final List TODO_LIST_CHECKIN = new ArrayList(); // TODO private static final String SERVICE_URL = "https://android.clients.google.com/checkin"; + public static boolean isHuaweiButtonClicked = false; + public static boolean isLoginButtonClicked = false; public static boolean brandSpoof = false; public static CheckinResponse request(CheckinRequest request) throws IOException { diff --git a/play-services-core/src/main/java/org/microg/gms/checkin/LastCheckinInfo.java b/play-services-core/src/main/java/org/microg/gms/checkin/LastCheckinInfo.java index 30e0a1af..1325cb38 100755 --- a/play-services-core/src/main/java/org/microg/gms/checkin/LastCheckinInfo.java +++ b/play-services-core/src/main/java/org/microg/gms/checkin/LastCheckinInfo.java @@ -57,4 +57,15 @@ public class LastCheckinInfo { .putString(PREF_DEVICE_DATA_VERSION_INFO, deviceDataVersionInfo) .commit(); } + + public static void ClearCheckinInfo(Context context) { + context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE).edit() + .putLong(PREF_ANDROID_ID, 0) + .putString(PREF_DIGEST, INITIAL_DIGEST) + .putLong(PREF_LAST_CHECKIN, 0) + .putLong(PREF_SECURITY_TOKEN, 0) + .putString(PREF_VERSION_INFO, "") + .putString(PREF_DEVICE_DATA_VERSION_INFO, "") + .commit(); + } }