googleplay

package module
v1.3.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2021 License: OSL-3.0 Imports: 18 Imported by: 2

README

googleplay

Fear plays an interesting role in our lives. How dare we let it motivate us? How dare we let it into our decision-making, into our livelihoods, into our relationships?

It's funny, isn't it, we take a day a year to dress up in costume and celebrate fear?

Spooked (The Office) (2011)

Download APK from Google Play or send API requests

Tool examples

Create a file containing Token (aas_et) for future requests:

googleplay -e EMAIL -p PASSWORD

Create a file containing Android_ID (GSF ID) for future requests:

googleplay -d

Get app details:

PS C:\> googleplay -a com.google.android.youtube
{Offer:{FormattedAmount:$0} Details:{AppDetails:{DeveloperName:Google LLC
VersionCode:1524221376 Version:16.44.32 UploadDate:Nov 2, 2021}}}

Purchase app. Only needs to be done once per Google account:

googleplay -a com.google.android.youtube -purchase

Download APK. If APK is split, all pieces will be downloaded:

googleplay -a com.google.android.youtube -v 1524221376

Module

Docs here:

https://godocs.io/github.com/89z/googleplay

Example here:

https://github.com/89z/googleplay/tree/master/cmd

Documentation

Index

Constants

View Source
const (
	Sleep = 16 * time.Second
)

Variables

View Source
var DefaultCheckin = Checkin{Version: 3}
View Source
var DefaultConfig = Config{
	DeviceConfiguration: DeviceConfiguration{

		GlEsVersion: 0x0003_0001,
		SystemAvailableFeature: []string{

			"android.hardware.bluetooth",

			"android.hardware.camera",

			"android.hardware.location",

			"android.hardware.location.gps",

			"android.hardware.microphone",

			"android.hardware.screen.landscape",

			"android.hardware.screen.portrait",

			"android.hardware.sensor.accelerometer",

			"android.hardware.touchscreen",

			"android.hardware.wifi",
		},
		NativePlatform: []string{

			"arm64-v8a",
		},
		GlExtension: []string{

			"GL_OES_compressed_ETC1_RGB8_texture",
		},
	},
}

Functions

This section is empty.

Types

type Auth added in v1.0.4

type Auth struct {
	url.Values
}

func (Auth) Delivery added in v1.1.9

func (a Auth) Delivery(dev *Device, app string, ver int) (*Delivery, error)

func (Auth) Details added in v1.0.4

func (a Auth) Details(dev *Device, app string) (*Details, error)

func (Auth) Purchase added in v1.1.8

func (a Auth) Purchase(dev *Device, app string) error

Purchase app. Only needs to be done once per Google account.

func (Auth) Upload added in v1.1.3

func (a Auth) Upload(dev *Device, con Config) error

This seems to return `StatusOK`, even with invalid requests, and the response body only contains a token, that doesnt seem to indicate success or failure. Only way I know to check, it to try the `deviceID` with a `details` request or similar. Also, after the POST, you need to wait at least 16 seconds before the `deviceID` can be used.

type Checkin added in v1.0.6

type Checkin struct {
	Checkin struct{} `json:"checkin"`
	Version int      `json:"version"`
}

type Config added in v1.2.1

type Config struct {
	DeviceConfiguration DeviceConfiguration `json:"1"`
}

type Delivery added in v1.1.9

type Delivery struct {
	Status          int32 `json:"1"`
	AppDeliveryData struct {
		DownloadURL       string `json:"3"`
		SplitDeliveryData Splits `json:"15"`
	} `json:"2"`
}

type Details added in v1.0.1

type Details struct {
	DocV2 struct {
		Offer struct {
			FormattedAmount FormattedAmount `json:"3"`
		} `json:"8"`
		Details struct {
			AppDetails struct {
				DeveloperName    string           `json:"1"`
				VersionCode      int32            `json:"3"`
				Version          string           `json:"4"`
				InstallationSize InstallationSize `json:"9"`
				UploadDate       string           `json:"16"`
			} `json:"1"`
		} `json:"13"`
	} `json:"4"`
}

type Device added in v1.0.6

type Device struct {
	Android_ID int64
}

func NewDevice added in v1.0.6

func NewDevice(check Checkin) (*Device, error)

func (*Device) Decode added in v1.2.1

func (d *Device) Decode(r io.Reader) error

Read Device from file.

func (Device) Encode added in v1.2.1

func (d Device) Encode(w io.Writer) error

Write Device to file.

func (Device) String added in v1.2.1

func (d Device) String() string

type DeviceConfiguration added in v1.2.1

type DeviceConfiguration struct {
	// this can be 0, but it must be included:
	TouchScreen int32 `json:"1"`
	// this can be 0, but it must be included:
	Keyboard int32 `json:"2"`
	// this can be 0, but it must be included:
	Navigation int32 `json:"3"`
	// this can be 0, but it must be included:
	ScreenLayout int32 `json:"4"`
	// this can be false, but it must be included:
	HasHardKeyboard bool `json:"5"`
	// this can be false, but it must be included:
	HasFiveWayNavigation bool `json:"6"`
	// this can be 0, but it must be included:
	ScreenDensity          int32    `json:"7"`
	GlEsVersion            int32    `json:"8"`
	SystemAvailableFeature []string `json:"10"`
	NativePlatform         []string `json:"11"`
	GlExtension            []string `json:"15"`
}

type FormattedAmount added in v1.3.3

type FormattedAmount string

func (FormattedAmount) String added in v1.3.3

func (f FormattedAmount) String() string

type InstallationSize added in v1.3.5

type InstallationSize int64

func (InstallationSize) String added in v1.3.5

func (i InstallationSize) String() string

type Split added in v1.3.5

type Split struct {
	Name        string `json:"1"`
	DownloadURL string `json:"5"`
}

type Splits added in v1.3.5

type Splits []Split

func (*Splits) UnmarshalJSON added in v1.3.5

func (s *Splits) UnmarshalJSON(buf []byte) error

type Token added in v1.0.1

type Token struct {
	url.Values
}

func NewToken added in v1.0.4

func NewToken(email, password string) (*Token, error)

Request refresh token.

func (Token) Auth added in v1.0.4

func (t Token) Auth() (*Auth, error)

Exchange refresh token for access token.

func (*Token) Decode added in v1.1.0

func (t *Token) Decode(r io.Reader) error

Read Token from file.

func (Token) Encode added in v1.1.0

func (t Token) Encode(w io.Writer) error

Write Token to file.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL