googleplay

package module
v1.3.2 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 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
{DeveloperName:Google LLC VersionCode:1524221376 Version:16.44.32
InstallationSize:38864515 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{
		TouchScreen:          1,
		Keyboard:             1,
		Navigation:           1,
		ScreenLayout:         1,
		HasHardKeyboard:      true,
		HasFiveWayNavigation: true,
		ScreenDensity:        1,

		GlEsVersion: 0x0009_0000,

		SystemAvailableFeature: []string{

			"android.hardware.camera",

			"android.hardware.location",

			"android.hardware.microphone",

			"android.hardware.screen.landscape",

			"android.hardware.screen.portrait",

			"android.hardware.touchscreen",

			"android.hardware.wifi",
		},

		NativePlatform: []string{
			"x86",
		},
	},
}

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 []SplitDeliveryData `json:"15"`
	} `json:"2"`
}

type Details added in v1.0.1

type Details struct {
	DocV2 struct {
		Details struct {
			AppDetails struct {
				DeveloperName    string `json:"1"`
				VersionCode      int32  `json:"3"`
				Version          string `json:"4"`
				InstallationSize int64  `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 {
	TouchScreen            int32    `json:"1"`
	Keyboard               int32    `json:"2"`
	Navigation             int32    `json:"3"`
	ScreenLayout           int32    `json:"4"`
	HasHardKeyboard        bool     `json:"5"`
	HasFiveWayNavigation   bool     `json:"6"`
	ScreenDensity          int32    `json:"7"`
	GlEsVersion            int32    `json:"8"`
	SystemAvailableFeature []string `json:"10"`
	NativePlatform         []string `json:"11"`
}

type SplitDeliveryData added in v1.3.0

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

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