diff --git a/src/org/microg/gms/checkin/CheckinClient.java b/src/org/microg/gms/checkin/CheckinClient.java index 70e86733..99c6e65e 100644 --- a/src/org/microg/gms/checkin/CheckinClient.java +++ b/src/org/microg/gms/checkin/CheckinClient.java @@ -21,6 +21,7 @@ import android.util.Log; import com.squareup.wire.Wire; import org.microg.gms.common.Build; +import org.microg.gms.common.Constants; import org.microg.gms.common.DeviceConfiguration; import org.microg.gms.common.DeviceIdentifier; import org.microg.gms.common.PhoneInfo; @@ -72,7 +73,7 @@ public class CheckinClient { .manufacturer(build.manufacturer) .model(build.model) .otaInstalled(false) // TODO? - .packageVersionCode(build.sdk) // TODO? + .packageVersionCode(Constants.MAX_REFERENCE_VERSION) .product(build.product) .radio(build.radio) .sdkVersion(build.sdk) @@ -84,7 +85,6 @@ public class CheckinClient { return new CheckinRequest.DeviceConfig.Builder() .availableFeature(deviceConfiguration.availableFeatures) .densityDpi(deviceConfiguration.densityDpi) - .deviceClass(deviceConfiguration.deviceClass) .glEsVersion(deviceConfiguration.glEsVersion) .glExtension(deviceConfiguration.glExtensions) .hasFiveWayNavigation(deviceConfiguration.hasFiveWayNavigation) @@ -92,7 +92,6 @@ public class CheckinClient { .heightPixels(deviceConfiguration.heightPixels) .keyboardType(deviceConfiguration.keyboardType) .locale(deviceConfiguration.locales) - .maxApkDownloadSizeMb((Integer) TODO) .nativePlatform(deviceConfiguration.nativePlatforms) .navigation(deviceConfiguration.navigation) .screenLayout(deviceConfiguration.screenLayout) @@ -120,35 +119,33 @@ public class CheckinClient { private static CheckinRequest makeRequest(CheckinRequest.Checkin checkin, CheckinRequest.DeviceConfig deviceConfig, DeviceIdentifier deviceIdent, LastCheckinInfo checkinInfo) { - return new CheckinRequest.Builder() - .accountCookie((List) TODO) + CheckinRequest.Builder builder = new CheckinRequest.Builder() + .accountCookie(Arrays.asList("")) // TODO .androidId(checkinInfo.androidId) .checkin(checkin) - .desiredBuild((String) TODO) .deviceConfiguration(deviceConfig) - .digest((String) TODO) + .digest(checkinInfo.digest) .esn(deviceIdent.esn) .fragment((Integer) TODO) .locale((String) TODO) .loggingId((Long) TODO) - .macAddress(Arrays.asList(deviceIdent.wifiMac, deviceIdent.bluetoothMac)) - .macAddressType(Arrays.asList("wifi", "bt")) // TODO - .marketCheckin((String) TODO) + .macAddress(Arrays.asList(deviceIdent.wifiMac)) + .macAddressType(Arrays.asList("wifi")) .meid(deviceIdent.meid) .otaCert((List) TODO) - .securityToken(checkinInfo.securityToken) .serial((String) TODO) .timeZone((String) TODO) .userName((String) TODO) .userSerialNumber((Integer) TODO) - .version((Integer) TODO) - .build(); + .version(3); + if (checkinInfo.securityToken != 0) builder.securityToken(checkinInfo.securityToken); + return builder.build(); } public static CheckinRequest makeRequest(Build build, DeviceConfiguration deviceConfiguration, - DeviceIdentifier deviceIdent, PhoneInfo phoneInfo, - LastCheckinInfo checkinInfo) { + DeviceIdentifier deviceIdent, PhoneInfo phoneInfo, + LastCheckinInfo checkinInfo) { return makeRequest(makeCheckin(makeBuild(build), phoneInfo, checkinInfo), makeDeviceConfig(deviceConfiguration), deviceIdent, checkinInfo); } diff --git a/src/org/microg/gms/checkin/CheckinManager.java b/src/org/microg/gms/checkin/CheckinManager.java index bf6c70fd..6c38646e 100644 --- a/src/org/microg/gms/checkin/CheckinManager.java +++ b/src/org/microg/gms/checkin/CheckinManager.java @@ -30,7 +30,7 @@ public class CheckinManager { public static synchronized LastCheckinInfo checkin(Context context) throws IOException { LastCheckinInfo info = LastCheckinInfo.read(context); if (info.lastCheckin > System.currentTimeMillis() - MIN_CHECKIN_INTERVAL) return null; - CheckinRequest request = CheckinClient.makeRequest(Utils.getBuild(context), null, null, null, info); + CheckinRequest request = CheckinClient.makeRequest(Utils.getBuild(context), null, null, null, info); // TODO return handleResponse(context, CheckinClient.request(request)); } diff --git a/src/org/microg/gms/checkin/LastCheckinInfo.java b/src/org/microg/gms/checkin/LastCheckinInfo.java index 13a58b38..67c716df 100644 --- a/src/org/microg/gms/checkin/LastCheckinInfo.java +++ b/src/org/microg/gms/checkin/LastCheckinInfo.java @@ -25,6 +25,7 @@ public class LastCheckinInfo { public static final String PREF_DIGEST = "digest"; public static final String PREF_LAST_CHECKIN = "lastCheckin"; public static final String PREF_SECURITY_TOKEN = "securityToken"; + public static final String INITIAL_DIGEST = "1-da39a3ee5e6b4b0d3255bfef95601890afd80709"; public long lastCheckin; public long androidId; public long securityToken; @@ -34,7 +35,7 @@ public class LastCheckinInfo { LastCheckinInfo info = new LastCheckinInfo(); SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE); info.androidId = preferences.getLong(PREF_ANDROID_ID, 0); - info.digest = preferences.getString(PREF_DIGEST, null); + info.digest = preferences.getString(PREF_DIGEST, INITIAL_DIGEST); info.lastCheckin = preferences.getLong(PREF_LAST_CHECKIN, 0); info.securityToken = preferences.getLong(PREF_SECURITY_TOKEN, 0); return info; diff --git a/src/org/microg/gms/common/DeviceConfiguration.java b/src/org/microg/gms/common/DeviceConfiguration.java index 634df154..65f4e27f 100644 --- a/src/org/microg/gms/common/DeviceConfiguration.java +++ b/src/org/microg/gms/common/DeviceConfiguration.java @@ -21,7 +21,6 @@ import java.util.List; public class DeviceConfiguration { public List availableFeatures; public int densityDpi; - public int deviceClass; public int glEsVersion; public List glExtensions; public boolean hasFiveWayNavigation; diff --git a/src/org/microg/gms/common/DeviceIdentifier.java b/src/org/microg/gms/common/DeviceIdentifier.java index 22743886..0129f5fd 100644 --- a/src/org/microg/gms/common/DeviceIdentifier.java +++ b/src/org/microg/gms/common/DeviceIdentifier.java @@ -17,7 +17,6 @@ package org.microg.gms.common; public class DeviceIdentifier { - public String bluetoothMac; public String wifiMac; public String meid; public String esn;