Versions in this module Expand all Collapse all v0 v0.9.1 Jul 31, 2026 v0.9.0 Jul 26, 2026 Changes in this version + const DefaultDevice + const DispenserUserAgent + const EmbeddedSetupURL + const ManifestSchema + const OAuthCookieName + var DefaultDispensers = []string + func AccountTag(email string) string + func CredentialsPath() string + func DefaultSessionPath(d *Device, accountTag string) string + func DescribeCredentials(path string) string + func ExchangeOAuthToken(ctx context.Context, hc *http.Client, d *Device, email, pastedToken string) (string, error) + func ExtractOAuthToken(pasted string) string + func ListDevices() ([]string, error) + func NormalizeLocale(s string) (string, error) + func OpenBrowser(u string) error + func RedactEmail(email string) string + func Retryable(err error) bool + func SHA256File(path string) (string, int64, error) + func SaveSession(path string, s *Session) error + func Verify(rec *FileRecord, expectedSize int64) + type Account struct + AasToken string + AddedAt time.Time + Currency string + Email string + Name string + Region string + func (a *Account) Describe() string + type AppInfo struct + CertHashes []string + Currency string + Developer string + Free bool + InstallSize int64 + OfferType int32 + Package string + SplitIDs []string + TargetSDK int32 + Title string + UploadDate string + VersionCode int32 + VersionName string + type AuthOptions struct + AasToken string + AcceptTos bool + AccountTag string + AuthToken string + DispenserUA string + Dispensers []string + Email string + Refresh bool + SessionPath string + type BundleInfo struct + Name string + SHA256 string + Size int64 + func PackAPKS(dir string, files []FileRecord, outPath string) (*BundleInfo, error) + type Client struct + Device *Device + HTTP *http.Client + Session *Session + Verbose func(format string, args ...any) + func NewClient(d *Device, hc *http.Client) *Client + func (c *Client) AcceptTos(ctx context.Context) error + func (c *Client) Authenticate(ctx context.Context, opts AuthOptions) error + func (c *Client) DebugGet(ctx context.Context, endpoint string, kv ...string) (*gplay.ResponseWrapper, error) + func (c *Client) Delivery(ctx context.Context, pkg string, versionCode int32, offerType int32) (*Delivery, error) + func (c *Client) Details(ctx context.Context, pkg string) (*AppInfo, error) + func (c *Client) Fetch(ctx context.Context, f *RemoteFile, w io.Writer) (int64, error) + func (c *Client) Search(ctx context.Context, query string) ([]SearchHit, error) + type Credentials struct + Email string + Kind string + Origin string + Token string + func FetchAnonymous(ctx context.Context, hc *http.Client, dispensers []string, userAgent string) (*Credentials, error) + type Delivery struct + Files []*RemoteFile + Package string + VersionCode int32 + func (d *Delivery) TotalSize() int64 + type Device struct + Locale string + Name string + Timezone string + func LoadDevice(nameOrPath string, opts DeviceOptions) (*Device, error) + func (d *Device) AuthUserAgent() string + func (d *Device) CheckinRequest() *gplay.AndroidCheckinRequest + func (d *Device) DeviceConfiguration() *gplay.DeviceConfigurationProto + func (d *Device) MccMnc() string + func (d *Device) Summary() DeviceSummary + func (d *Device) UserAgent() string + type DeviceOptions struct + ABIs string + Density int + Locale string + SDK int + Timezone string + type DeviceSummary struct + ABIs []string + Density int + Locale string + Model string + PlayVersion string + Profile string + Release string + SDK int + Screen string + Timezone string + type DispenserError struct + Body string + Err error + Status int + URL string + func (e *DispenserError) Error() string + func (e *DispenserError) Unwrap() error + type FileDigest struct + Hashes Hashes + Size int64 + func HashFile(path string) (FileDigest, error) + type FileRecord struct + Local Hashes + Name string + PlaySHA1 string + PlaySHA256 string + Role FileRole + Size int64 + Split string + Verified bool + VerifyNote string + type FileRole string + const RoleBase + const RoleOBB + const RoleSplit + type HTTPError struct + Body string + Endpoint string + Status int + func (e *HTTPError) Error() string + type Hashes struct + MD5 string + SHA1 string + SHA256 string + func FetchHashed(ctx context.Context, c *Client, f *RemoteFile, w io.Writer) (Hashes, int64, error) + type Manifest struct + App *AppInfo + Bundle *BundleInfo + Device DeviceSummary + FetchedAt time.Time + Files []FileRecord + Label string + Schema string + Source SourceInfo + func ReadManifest(path string) (*Manifest, error) + func (m *Manifest) AllVerified() bool + func (m *Manifest) TotalSize() int64 + func (m *Manifest) Write(path string) error + type NotAvailableError struct + Package string + Reason string + func (e *NotAvailableError) Error() string + type PlayError struct + Endpoint string + Message string + func (e *PlayError) Error() string + type RemoteFile struct + Name string + PlaySHA1 string + PlaySHA256 string + Role FileRole + Size int64 + Split string + func (f *RemoteFile) MarshalJSON() ([]byte, error) + func (f *RemoteFile) URL() string + type SearchHit struct + Developer string + Package string + Title string + type Session struct + AasToken string + Account string + AuthToken string + ConsistencyToken string + CreatedAt time.Time + DeviceConfigToken string + DeviceProfile string + Email string + GsfID uint64 + Locale string + Origin string + Timezone string + func LoadSession(path string) *Session + func (s *Session) GsfIDHex() string + func (s *Session) Matches(d *Device, accountTag string) bool + type SourceInfo struct + Account string + Dispenser string + Kind string + type Store struct + Accounts []Account + Default string + Version int + func LoadStore(path string) *Store + func (s *Store) Empty() bool + func (s *Store) Get(name string) *Account + func (s *Store) Put(a Account) + func (s *Store) Remove(name string) bool + func (s *Store) Resolve(selector string) (*Account, error) + func (s *Store) Save(path string) error