mirror of
https://github.com/i1v/googleplay
synced 2024-09-21 12:19:26 +00:00
new file: blog/2023-02-24-protos/Logs$AndroidBuildProto.java
This commit is contained in:
parent
88f99a4d57
commit
d20ba02395
6 changed files with 513 additions and 5 deletions
397
blog/2023-02-24-protos/Logs$AndroidBuildProto.java
vendored
Normal file
397
blog/2023-02-24-protos/Logs$AndroidBuildProto.java
vendored
Normal file
|
@ -0,0 +1,397 @@
|
||||||
|
package com.google.android.gsf.checkin.proto;
|
||||||
|
|
||||||
|
import com.google.protobuf.micro.CodedInputStreamMicro;
|
||||||
|
import com.google.protobuf.micro.CodedOutputStreamMicro;
|
||||||
|
import com.google.protobuf.micro.MessageMicro;
|
||||||
|
import java.io.IOException;
|
||||||
|
/* loaded from: classes.dex */
|
||||||
|
public final class Logs$AndroidBuildProto extends MessageMicro {
|
||||||
|
private boolean hasBootloader;
|
||||||
|
private boolean hasBuildProduct;
|
||||||
|
private boolean hasCarrier;
|
||||||
|
private boolean hasClient;
|
||||||
|
private boolean hasDevice;
|
||||||
|
private boolean hasGoogleServices;
|
||||||
|
private boolean hasId;
|
||||||
|
private boolean hasManufacturer;
|
||||||
|
private boolean hasModel;
|
||||||
|
private boolean hasOtaInstalled;
|
||||||
|
private boolean hasProduct;
|
||||||
|
private boolean hasRadio;
|
||||||
|
private boolean hasSdkVersion;
|
||||||
|
private boolean hasTimestamp;
|
||||||
|
private String id_ = "";
|
||||||
|
private String radio_ = "";
|
||||||
|
private String bootloader_ = "";
|
||||||
|
private String product_ = "";
|
||||||
|
private String carrier_ = "";
|
||||||
|
private String client_ = "";
|
||||||
|
private long timestamp_ = 0;
|
||||||
|
private int googleServices_ = 0;
|
||||||
|
private int sdkVersion_ = 0;
|
||||||
|
private String device_ = "";
|
||||||
|
private String model_ = "";
|
||||||
|
private String manufacturer_ = "";
|
||||||
|
private String buildProduct_ = "";
|
||||||
|
private boolean otaInstalled_ = false;
|
||||||
|
private int cachedSize = -1;
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return this.id_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasId() {
|
||||||
|
return this.hasId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setId(String value) {
|
||||||
|
this.hasId = true;
|
||||||
|
this.id_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRadio() {
|
||||||
|
return this.radio_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasRadio() {
|
||||||
|
return this.hasRadio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setRadio(String value) {
|
||||||
|
this.hasRadio = true;
|
||||||
|
this.radio_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBootloader() {
|
||||||
|
return this.bootloader_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasBootloader() {
|
||||||
|
return this.hasBootloader;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setBootloader(String value) {
|
||||||
|
this.hasBootloader = true;
|
||||||
|
this.bootloader_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getProduct() {
|
||||||
|
return this.product_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasProduct() {
|
||||||
|
return this.hasProduct;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setProduct(String value) {
|
||||||
|
this.hasProduct = true;
|
||||||
|
this.product_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCarrier() {
|
||||||
|
return this.carrier_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasCarrier() {
|
||||||
|
return this.hasCarrier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setCarrier(String value) {
|
||||||
|
this.hasCarrier = true;
|
||||||
|
this.carrier_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClient() {
|
||||||
|
return this.client_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasClient() {
|
||||||
|
return this.hasClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setClient(String value) {
|
||||||
|
this.hasClient = true;
|
||||||
|
this.client_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTimestamp() {
|
||||||
|
return this.timestamp_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasTimestamp() {
|
||||||
|
return this.hasTimestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setTimestamp(long value) {
|
||||||
|
this.hasTimestamp = true;
|
||||||
|
this.timestamp_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGoogleServices() {
|
||||||
|
return this.googleServices_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasGoogleServices() {
|
||||||
|
return this.hasGoogleServices;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setGoogleServices(int value) {
|
||||||
|
this.hasGoogleServices = true;
|
||||||
|
this.googleServices_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSdkVersion() {
|
||||||
|
return this.sdkVersion_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasSdkVersion() {
|
||||||
|
return this.hasSdkVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setSdkVersion(int value) {
|
||||||
|
this.hasSdkVersion = true;
|
||||||
|
this.sdkVersion_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDevice() {
|
||||||
|
return this.device_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasDevice() {
|
||||||
|
return this.hasDevice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setDevice(String value) {
|
||||||
|
this.hasDevice = true;
|
||||||
|
this.device_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getModel() {
|
||||||
|
return this.model_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasModel() {
|
||||||
|
return this.hasModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setModel(String value) {
|
||||||
|
this.hasModel = true;
|
||||||
|
this.model_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getManufacturer() {
|
||||||
|
return this.manufacturer_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasManufacturer() {
|
||||||
|
return this.hasManufacturer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setManufacturer(String value) {
|
||||||
|
this.hasManufacturer = true;
|
||||||
|
this.manufacturer_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBuildProduct() {
|
||||||
|
return this.buildProduct_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasBuildProduct() {
|
||||||
|
return this.hasBuildProduct;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setBuildProduct(String value) {
|
||||||
|
this.hasBuildProduct = true;
|
||||||
|
this.buildProduct_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getOtaInstalled() {
|
||||||
|
return this.otaInstalled_;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasOtaInstalled() {
|
||||||
|
return this.hasOtaInstalled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Logs$AndroidBuildProto setOtaInstalled(boolean value) {
|
||||||
|
this.hasOtaInstalled = true;
|
||||||
|
this.otaInstalled_ = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override // com.google.protobuf.micro.MessageMicro
|
||||||
|
public void writeTo(CodedOutputStreamMicro output) throws IOException {
|
||||||
|
if (hasId()) {
|
||||||
|
output.writeString(1, getId());
|
||||||
|
}
|
||||||
|
if (hasProduct()) {
|
||||||
|
output.writeString(2, getProduct());
|
||||||
|
}
|
||||||
|
if (hasCarrier()) {
|
||||||
|
output.writeString(3, getCarrier());
|
||||||
|
}
|
||||||
|
if (hasRadio()) {
|
||||||
|
output.writeString(4, getRadio());
|
||||||
|
}
|
||||||
|
if (hasBootloader()) {
|
||||||
|
output.writeString(5, getBootloader());
|
||||||
|
}
|
||||||
|
if (hasClient()) {
|
||||||
|
output.writeString(6, getClient());
|
||||||
|
}
|
||||||
|
if (hasTimestamp()) {
|
||||||
|
output.writeInt64(7, getTimestamp());
|
||||||
|
}
|
||||||
|
if (hasGoogleServices()) {
|
||||||
|
output.writeInt32(8, getGoogleServices());
|
||||||
|
}
|
||||||
|
if (hasDevice()) {
|
||||||
|
output.writeString(9, getDevice());
|
||||||
|
}
|
||||||
|
if (hasSdkVersion()) {
|
||||||
|
output.writeInt32(10, getSdkVersion());
|
||||||
|
}
|
||||||
|
if (hasModel()) {
|
||||||
|
output.writeString(11, getModel());
|
||||||
|
}
|
||||||
|
if (hasManufacturer()) {
|
||||||
|
output.writeString(12, getManufacturer());
|
||||||
|
}
|
||||||
|
if (hasBuildProduct()) {
|
||||||
|
output.writeString(13, getBuildProduct());
|
||||||
|
}
|
||||||
|
if (!hasOtaInstalled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
output.writeBool(14, getOtaInstalled());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override // com.google.protobuf.micro.MessageMicro
|
||||||
|
public int getCachedSize() {
|
||||||
|
if (this.cachedSize < 0) {
|
||||||
|
getSerializedSize();
|
||||||
|
}
|
||||||
|
return this.cachedSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override // com.google.protobuf.micro.MessageMicro
|
||||||
|
public int getSerializedSize() {
|
||||||
|
int size = 0;
|
||||||
|
if (hasId()) {
|
||||||
|
size = CodedOutputStreamMicro.computeStringSize(1, getId()) + 0;
|
||||||
|
}
|
||||||
|
if (hasProduct()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(2, getProduct());
|
||||||
|
}
|
||||||
|
if (hasCarrier()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(3, getCarrier());
|
||||||
|
}
|
||||||
|
if (hasRadio()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(4, getRadio());
|
||||||
|
}
|
||||||
|
if (hasBootloader()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(5, getBootloader());
|
||||||
|
}
|
||||||
|
if (hasClient()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(6, getClient());
|
||||||
|
}
|
||||||
|
if (hasTimestamp()) {
|
||||||
|
size += CodedOutputStreamMicro.computeInt64Size(7, getTimestamp());
|
||||||
|
}
|
||||||
|
if (hasGoogleServices()) {
|
||||||
|
size += CodedOutputStreamMicro.computeInt32Size(8, getGoogleServices());
|
||||||
|
}
|
||||||
|
if (hasDevice()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(9, getDevice());
|
||||||
|
}
|
||||||
|
if (hasSdkVersion()) {
|
||||||
|
size += CodedOutputStreamMicro.computeInt32Size(10, getSdkVersion());
|
||||||
|
}
|
||||||
|
if (hasModel()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(11, getModel());
|
||||||
|
}
|
||||||
|
if (hasManufacturer()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(12, getManufacturer());
|
||||||
|
}
|
||||||
|
if (hasBuildProduct()) {
|
||||||
|
size += CodedOutputStreamMicro.computeStringSize(13, getBuildProduct());
|
||||||
|
}
|
||||||
|
if (hasOtaInstalled()) {
|
||||||
|
size += CodedOutputStreamMicro.computeBoolSize(14, getOtaInstalled());
|
||||||
|
}
|
||||||
|
this.cachedSize = size;
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override // com.google.protobuf.micro.MessageMicro
|
||||||
|
public Logs$AndroidBuildProto mergeFrom(CodedInputStreamMicro input) throws IOException {
|
||||||
|
while (true) {
|
||||||
|
int tag = input.readTag();
|
||||||
|
switch (tag) {
|
||||||
|
case 0:
|
||||||
|
return this;
|
||||||
|
case 10:
|
||||||
|
setId(input.readString());
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
setProduct(input.readString());
|
||||||
|
break;
|
||||||
|
case 26:
|
||||||
|
setCarrier(input.readString());
|
||||||
|
break;
|
||||||
|
case 34:
|
||||||
|
setRadio(input.readString());
|
||||||
|
break;
|
||||||
|
case 42:
|
||||||
|
setBootloader(input.readString());
|
||||||
|
break;
|
||||||
|
case 50:
|
||||||
|
setClient(input.readString());
|
||||||
|
break;
|
||||||
|
case 56:
|
||||||
|
setTimestamp(input.readInt64());
|
||||||
|
break;
|
||||||
|
case 64:
|
||||||
|
setGoogleServices(input.readInt32());
|
||||||
|
break;
|
||||||
|
case 74:
|
||||||
|
setDevice(input.readString());
|
||||||
|
break;
|
||||||
|
case 80:
|
||||||
|
setSdkVersion(input.readInt32());
|
||||||
|
break;
|
||||||
|
case 90:
|
||||||
|
setModel(input.readString());
|
||||||
|
break;
|
||||||
|
case 98:
|
||||||
|
setManufacturer(input.readString());
|
||||||
|
break;
|
||||||
|
case 106:
|
||||||
|
setBuildProduct(input.readString());
|
||||||
|
break;
|
||||||
|
case 112:
|
||||||
|
setOtaInstalled(input.readBool());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (parseUnknownField(input, tag)) {
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,4 +2,5 @@
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
com\google\android\finsky\protos
|
com\google\android\finsky\protos
|
||||||
|
com\google\android\gsf\checkin\proto
|
||||||
~~~
|
~~~
|
||||||
|
|
|
@ -47,3 +47,100 @@ req, err := http.NewRequest(
|
||||||
bytes.NewReader(req_body.Marshal()),
|
bytes.NewReader(req_body.Marshal()),
|
||||||
)
|
)
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
one of these:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
> adb shell pm list packages
|
||||||
|
android
|
||||||
|
com.android.backupconfirm
|
||||||
|
com.android.browser
|
||||||
|
com.android.calculator2
|
||||||
|
com.android.camera
|
||||||
|
com.android.captiveportallogin
|
||||||
|
com.android.certinstaller
|
||||||
|
com.android.contacts
|
||||||
|
com.android.customlocale2
|
||||||
|
com.android.defcontainer
|
||||||
|
com.android.deskclock
|
||||||
|
com.android.development
|
||||||
|
com.android.development_settings
|
||||||
|
com.android.dialer
|
||||||
|
com.android.documentsui
|
||||||
|
com.android.dreams.basic
|
||||||
|
com.android.emulator.smoketests
|
||||||
|
com.android.exchange
|
||||||
|
com.android.externalstorage
|
||||||
|
com.android.fallback
|
||||||
|
com.android.gallery
|
||||||
|
com.android.gesture.builder
|
||||||
|
com.android.htmlviewer
|
||||||
|
com.android.inputdevices
|
||||||
|
com.android.inputmethod.latin
|
||||||
|
com.android.keychain
|
||||||
|
com.android.location.fused
|
||||||
|
com.android.managedprovisioning
|
||||||
|
com.android.mms
|
||||||
|
com.android.mms.service
|
||||||
|
com.android.music
|
||||||
|
com.android.netspeed
|
||||||
|
com.android.packageinstaller
|
||||||
|
com.android.pacprocessor
|
||||||
|
com.android.phone
|
||||||
|
com.android.printspooler
|
||||||
|
com.android.protips
|
||||||
|
com.android.providers.calendar
|
||||||
|
com.android.providers.contacts
|
||||||
|
com.android.providers.downloads
|
||||||
|
com.android.providers.downloads.ui
|
||||||
|
com.android.providers.media
|
||||||
|
com.android.providers.settings
|
||||||
|
com.android.providers.telephony
|
||||||
|
com.android.providers.userdictionary
|
||||||
|
com.android.proxyhandler
|
||||||
|
com.android.sdksetup
|
||||||
|
com.android.server.telecom
|
||||||
|
com.android.settings
|
||||||
|
com.android.sharedstoragebackup
|
||||||
|
com.android.shell
|
||||||
|
com.android.smoketest
|
||||||
|
com.android.smoketest.tests
|
||||||
|
com.android.soundrecorder
|
||||||
|
com.android.speechrecorder
|
||||||
|
com.android.systemui
|
||||||
|
com.android.vpndialogs
|
||||||
|
com.android.wallpaper.livepicker
|
||||||
|
com.android.webview
|
||||||
|
com.android.widgetpreview
|
||||||
|
com.example.android.apis
|
||||||
|
com.example.android.livecubes
|
||||||
|
com.example.android.softkeyboard
|
||||||
|
com.google.android.apps.maps
|
||||||
|
com.google.android.calendar
|
||||||
|
com.google.android.googlequicksearchbox
|
||||||
|
com.google.android.launcher
|
||||||
|
com.google.android.play.games
|
||||||
|
com.google.android.street
|
||||||
|
com.google.android.syncadapters.contacts
|
||||||
|
com.svox.pico
|
||||||
|
jp.co.omronsoft.openwnn
|
||||||
|
|
||||||
|
com.google.android.gms
|
||||||
|
com.google.android.gsf
|
||||||
|
com.google.android.gm
|
||||||
|
com.google.android.gsf.login
|
||||||
|
~~~
|
||||||
|
|
||||||
|
not this:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
package:com.android.vending
|
||||||
|
~~~
|
||||||
|
|
||||||
|
here it is:
|
||||||
|
|
||||||
|
~~~
|
||||||
|
com.google.android.gsf_7.1.2> rg 10.+sdkvers
|
||||||
|
sources\com\google\android\gsf\checkin\proto\Logs$AndroidBuildProto.java
|
||||||
|
265: output.writeInt32(10, getSdkVersion());
|
||||||
|
~~~
|
||||||
|
|
|
@ -2,12 +2,21 @@
|
||||||
|
|
||||||
## How to get Protocol Buffer fields?
|
## How to get Protocol Buffer fields?
|
||||||
|
|
||||||
Check Google Play Store (`com.android.vending`) with JADX, with the last
|
Check these with JADX, last working versions:
|
||||||
working version (2016):
|
|
||||||
|
|
||||||
~~~
|
key | value
|
||||||
versionCode='80441400' versionName='6.1.14'
|
----------------|------
|
||||||
~~~
|
`app_long_name` | Google Play Store
|
||||||
|
package | com.android.vending
|
||||||
|
versionCode | 80441400
|
||||||
|
versionName | 6.1.14
|
||||||
|
|
||||||
|
key | value
|
||||||
|
------------|------
|
||||||
|
`gsf_label` | Google Services Framework
|
||||||
|
package | com.google.android.gsf
|
||||||
|
versionCode | 25
|
||||||
|
versionName | 7.1.2
|
||||||
|
|
||||||
- https://apkmirror.com/apk/google-inc/google-play-store
|
- https://apkmirror.com/apk/google-inc/google-play-store
|
||||||
- https://github.com/MCMrARM/Google-Play-API/blob/master/proto/gsf.proto
|
- https://github.com/MCMrARM/Google-Play-API/blob/master/proto/gsf.proto
|
||||||
|
|
|
@ -101,6 +101,7 @@ func (c Config) Checkin(native_platform string) (*Response, error) {
|
||||||
// valid range 2 - 3
|
// valid range 2 - 3
|
||||||
14: protobuf.Varint(3),
|
14: protobuf.Varint(3),
|
||||||
18: protobuf.Message{ // deviceConfiguration
|
18: protobuf.Message{ // deviceConfiguration
|
||||||
|
// DeviceConfiguration.java
|
||||||
1: protobuf.Varint(c.Touch_Screen),
|
1: protobuf.Varint(c.Touch_Screen),
|
||||||
2: protobuf.Varint(c.Keyboard),
|
2: protobuf.Varint(c.Keyboard),
|
||||||
3: protobuf.Varint(c.Navigation),
|
3: protobuf.Varint(c.Navigation),
|
||||||
|
|
3
cmd/badging/readme.md
Normal file
3
cmd/badging/readme.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Badging
|
||||||
|
|
||||||
|
https://developer.android.com/guide/topics/manifest/uses-feature-element
|
Loading…
Reference in a new issue