checkin proto "documentation"

This commit is contained in:
mar-v-in 2015-02-22 16:22:28 +01:00
parent 5b9503275e
commit d3f7688516
3 changed files with 1133 additions and 845 deletions

View File

@ -2,114 +2,269 @@ option java_package = "org.microg.gms.checkin";
option java_outer_classname = "CheckinProto";
// Sample data, if provided, is fished from a Nexus 7 (2013) / flo running Android 5.0
message CheckinRequest {
message DeviceConfig {
optional int32 touchScreen = 1; // ConfigurationInfo.reqTouchScreen
optional int32 keyboardType = 2; // ConfigurationInfo.reqKeyboardType
optional int32 navigation = 3; // ConfigurationInfo.reqNavigation
optional int32 screenLayout = 4; // ConfigurationInfo.screenLayout
optional bool hasHardKeyboard = 5; // ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD
optional bool hasFiveWayNavigation = 6; // ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV
optional int32 densityDpi = 7; // DisplayMetrics.densityDpi
optional int32 glEsVersion = 8; // ConfigurationInfo.reqGlEsVersion
repeated string sharedLibrary = 9; // PackageManager.getSystemSharedLibraryNames
repeated string availableFeature = 10; // PackageManager.getSystemAvailableFeatures
repeated string nativePlatform = 11; // Build.CPU_ABI (and Build.CPU_ABI2 != "unknown")
optional int32 widthPixels = 12; // DisplayMetrics.widthPixels
optional int32 heightPixels = 13; // DisplayMetrics.heightPixels
repeated string locale = 14; // Context.getAssets.getLocales
repeated string glExtension = 15; // GLES10.glGetString(GLES10.GL_EXTENSIONS)
optional int32 deviceClass = 16; // unused
optional int32 maxApkDownloadSizeMb = 17; // unused
}
// unused
optional string imei = 1;
// Gservices["android_id"] or 0 on first-checkin
optional int64 androidId = 2;
// Gservices["digest"] or ""
optional string digest = 3;
required Checkin checkin = 4;
message Checkin {
// empty Build on pre-checkin
required Build build = 1;
message Build {
// Build.FINGERPRINT
// eg. google/razor/flo:5.0.1/LRX22C/1602158:user/release-keys
optional string fingerprint = 1;
// Build.HARDWARE
// eg. flo
optional string hardware = 2;
// Build.BRAND
// eg. google
optional string brand = 3;
// Build.getRadioVersion()
optional string radio = 4;
// Build.BOOTLOADER
// eg. FLO-04.04
optional string bootloader = 5;
// GoogleSettingsContract.Partner["client_id"]
// eg. android-google
optional string clientId = 6;
// Build.TIME / 1000L
// eg. 1416533192
optional int64 time = 7;
// PackageInfo.versionCode
// eg. 6188736
optional int32 packageVersionCode = 8;
// Build.DEVICE
// eg. flo
optional string device = 9;
// Build.VERSION.SDK_INT
// eg. 21
optional int32 sdkVersion = 10;
// Build.MODEL
// eg. Nexus 7
optional string model = 11;
// Build.MANUFACTURER
// eg. asus
optional string manufacturer = 12;
// Build.PRODUCT
// eg. razor
optional string product = 13;
// fileExists("/system/recovery-from-boot.p")
// eg. false
optional bool otaInstalled = 14;
}
// last checkin ms or 0 if first checkin
// eg. 0
optional int64 lastCheckinMs = 2;
// eg. ("event_log_start",~,1424612602652) on first checkin
repeated Event event = 3;
message Event {
optional string tag = 1;
optional string value = 2;
optional int64 timeMs = 3;
}
// unknown, n/a on first checkin
repeated Statistic stat = 4;
message Statistic {
optional string tag = 1;
required string tag = 1;
optional int32 count = 2;
optional float sum = 3;
}
message Build {
optional string fingerprint = 1; // Build.FINGERPRINT
optional string hardware = 2; // Build.HARDWARE
optional string brand = 3; // Build.BRAND
optional string radio = 4; // Build.getRadioVersion()
optional string bootloader = 5; // Build.BOOTLOADER
optional string clientId = 6; // GoogleSettingsContract.Partner["client_id"]
optional int64 time = 7; // Build.TIME / 1000L
optional int32 packageVersionCode = 8; // PackageInfo.versionCode
optional string device = 9; // Build.DEVICE
optional int32 sdkVersion = 10; // Build.VERSION.SDK_INT
optional string model = 11; // Build.MODEL
optional string manufacturer = 12; // Build.MANUFACTURER
optional string product = 13; // Build.PRODUCT
optional bool otaInstalled = 14; // fileExists("/system/recovery-from-boot.p")
// unused
repeated string requestedGroup = 5;
// TelephonyManager.getNetworkOperator != null|empty
optional string cellOperator = 6;
// TelephonyManager.getSimOperator != null|empty
optional string simOperator = 7;
// "WIFI::" | ("mobile" | "notmobile" | "unknown") + "-" + ("roaming" | "notroaming" | "unknown")
optional string roaming = 8;
// UserHandle.myUserId
// eg. 0
optional int32 userNumber = 9;
}
optional Build build = 1;
optional int64 lastCheckinMs = 2; // or 0
repeated Event event = 3;
repeated Statistic stat = 4;
repeated string requestedGroup = 5; // unused
optional string cellOperator = 6; // TelephonyManager.getNetworkOperator != null|empty
optional string simOperator = 7; // TelephonyManager.getSimOperator != null|empty
optional string roaming = 8; // "mobile/notmobile/unknown-roaming/notroaming/unknown"
optional int32 userNumber = 9; // UserHandle.myUserId
}
optional string imei = 1; // unused
optional int64 androidId = 2; // Gservices["android_id"] or 0
optional string digest = 3; // Gservices["digest"] or ""
optional Checkin checkin = 4;
optional string desiredBuild = 5; // unused
optional string locale = 6; // Locale.toString
optional int64 loggingId = 7; // GoogleSettingsContract.Partner["logging_id2"]
optional string marketCheckin = 8; // unused
repeated string macAddress = 9; // NetworkInfo.getExtraInfo, WifiInfo.getMacAddress (12 hex-digits)
optional string meid = 10; // TelephonyManager.getDeviceId (14 hex-digits)
repeated string accountCookie = 11; // "[<email>]" followed by "<authToken>"
optional string timeZone = 12; // TimeZone.getId
// unused
optional string desiredBuild = 5;
// Locale.toString
optional string locale = 6;
// GoogleSettingsContract.Partner["logging_id2"] (choosen randomly on first checkin)
// eg. 12561488293572742346
optional int64 loggingId = 7;
// unused
optional string marketCheckin = 8;
// NetworkInfo.getExtraInfo, WifiInfo.getMacAddress (12 hex-digits)
// eg. d850e6abcdef
repeated string macAddress = 9;
// TelephonyManager.getDeviceId (14 hex-digits), not set on tablets
optional string meid = 10;
// "[<email>]" followed by "<authToken>", empty string on first checkin
repeated string accountCookie = 11;
// TimeZone.getId
// eg. GMT
optional string timeZone = 12;
// security token as given on first checkin, not set on first checkin
optional fixed64 securityToken = 13;
optional int32 version = 14; // 3 if securityToken != 0 OR androidId == 0
repeated string otaCert = 15; // SHA-1 of each in /system/etc/security/otacerts.zip or "--IOException--" or "--no-output--"
optional string serial = 16; // Build.SERIAL != "unknown"
optional string esn = 17; // TelephonyManager.getDeviceId (8 hex-digits)
// use 3
optional int32 version = 14;
// SHA-1 of each in /system/etc/security/otacerts.zip or "--IOException--" or "--no-output--"
// eg. dKXTm1QH9QShGQwBM/4rg6/lCNQ=
repeated string otaCert = 15;
// Build.SERIAL != "unknown"
// eg. 07d90b18
optional string serial = 16;
// TelephonyManager.getDeviceId (8 hex-digits), not set on tablets
optional string esn = 17;
optional DeviceConfig deviceConfiguration = 18;
repeated string macAddressType = 19; // "ethernet", "wifi"
optional int32 fragment = 20; // unknown (use 0)
optional string userName = 21; // unused
optional int32 userSerialNumber = 22; // UserManager.getUserSerialNumber (if != 0)
message DeviceConfig {
// ConfigurationInfo.reqTouchScreen
// eg. 3
optional int32 touchScreen = 1;
// ConfigurationInfo.reqKeyboardType
// eg. 1
optional int32 keyboardType = 2;
// ConfigurationInfo.reqNavigation
// eg. 1
optional int32 navigation = 3;
// ConfigurationInfo.screenLayout
// eg. 3
optional int32 screenLayout = 4;
// ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD
// eg. 0
optional bool hasHardKeyboard = 5;
// ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV
// eg. 0
optional bool hasFiveWayNavigation = 6;
// DisplayMetrics.densityDpi
// eg. 320
optional int32 densityDpi = 7;
// ConfigurationInfo.reqGlEsVersion
// eg. 196608
optional int32 glEsVersion = 8;
// PackageManager.getSystemSharedLibraryNames
// eg. "android.test.runner", "com.android.future.usb.accessory", "com.android.location.provider",
// "com.android.media.remotedisplay", "com.android.mediadrm.signer", "com.google.android.maps",
// "com.google.android.media.effects", "com.google.widevine.software.drm", "javax.obex"
repeated string sharedLibrary = 9;
// PackageManager.getSystemAvailableFeatures
// eg. android.hardware.[...]
repeated string availableFeature = 10;
// Build.CPU_ABI and Build.CPU_ABI2 != "unknown"
// eg. "armeabi-v7a", "armeabi"
repeated string nativePlatform = 11;
// DisplayMetrics.widthPixels
// eg. 1200
optional int32 widthPixels = 12;
// DisplayMetrics.heightPixels
// eg. 1824
optional int32 heightPixels = 13;
// Context.getAssets.getLocales
// eg. [...], "en-US", [...]
repeated string locale = 14;
// GLES10.glGetString(GLES10.GL_EXTENSIONS)
// eg. "GL_AMD_compressed_ATC_texture", [...]
repeated string glExtension = 15;
// unused
optional int32 deviceClass = 16;
// unused
optional int32 maxApkDownloadSizeMb = 17;
}
// "ethernet" or "wifi"
repeated string macAddressType = 19;
// unknown, use 0 on pre- and first-checkin, and 1 for later checkins
// also present on pre-checkin
required int32 fragment = 20;
// unknown
optional string userName = 21;
// UserManager.getUserSerialNumber
// eg. 0
optional int32 userSerialNumber = 22;
}
message CheckinResponse {
optional bool statsOk = 1;
repeated Intent intent = 2;
message Intent {
message Extra {
optional string name = 6;
optional string value = 7;
}
optional string action = 1;
optional string dataUri = 2;
optional string mimeType = 3;
optional string javaClass = 4;
repeated Extra extra = 5;
message Extra {
optional string name = 6;
optional string value = 7;
}
}
optional int64 timeMs = 3;
optional string digest = 4;
repeated GservicesSetting setting = 5;
message GservicesSetting {
optional bytes name = 1;
optional bytes value = 2;
}
optional bool statsOk = 1;
repeated Intent intent = 2;
optional int64 timeMs = 3;
optional string digest = 4;
repeated GservicesSetting setting = 5;
optional bool marketOk = 6;
optional fixed64 androidId = 7;
optional fixed64 securityToken = 8;
optional bool settingsDiff = 9;
repeated string deleteSetting = 10;
// TODO: optional string ? = 11;
// TODO: optional string ? = 12;
}

File diff suppressed because it is too large Load Diff

BIN
res/drawable-nodpi/nop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B