findmy.reports.anisette#
Module for Anisette header providers.
Attributes#
Classes#
JSON mapping representing state of a remote Anisette provider. |
|
JSON mapping representing state of a local Anisette provider. |
|
Abstract base class for Anisette providers. |
|
Anisette provider. Fetches headers from a remote Anisette server. |
|
Local anisette provider using the anisette library. |
Functions#
Get the correct Anisette provider instance from saved JSON data. |
Module Contents#
- findmy.reports.anisette.logger#
- class findmy.reports.anisette.RemoteAnisetteMapping#
Bases:
TypedDict
JSON mapping representing state of a remote Anisette provider.
- type: Literal['aniRemote']#
- url: str#
- class findmy.reports.anisette.LocalAnisetteMapping#
Bases:
TypedDict
JSON mapping representing state of a local Anisette provider.
- type: Literal['aniLocal']#
- prov_data: str#
- findmy.reports.anisette.AnisetteMapping#
- findmy.reports.anisette.get_provider_from_mapping(mapping: AnisetteMapping, *, libs_path: str | pathlib.Path | None = None) RemoteAnisetteProvider | LocalAnisetteProvider #
Get the correct Anisette provider instance from saved JSON data.
- class findmy.reports.anisette.BaseAnisetteProvider(loop: asyncio.AbstractEventLoop | None = None)#
Bases:
findmy.util.abc.Closable
,findmy.util.abc.Serializable
,abc.ABC
Abstract base class for Anisette providers.
Generously derived from nythepegasus/grandslam.
- property otp: str#
- Abstractmethod:
A seemingly random base64 string containing 28 bytes.
- property machine: str#
- Abstractmethod:
A base64 encoded string of 60 ‘random’ bytes.
- property timestamp: str#
Current timestamp in ISO 8601 format.
- property timezone: str#
Abbreviation of the timezone of the device.
- property locale: str#
Locale of the device (e.g. en_US).
- property router: str#
A number, either 17106176 or 50660608.
It doesn’t seem to matter which one we use. - 17106176 is used by Sideloadly and Provision (android) based servers. - 50660608 is used by Windows iCloud based servers.
- property client: str#
Client string.
The format is as follows: <%MODEL%> <%OS%;%MAJOR%.%MINOR%(%SPMAJOR%,%SPMINOR%);%BUILD%>
<%AUTHKIT_BUNDLE_ID%/%AUTHKIT_VERSION% (%APP_BUNDLE_ID%/%APP_VERSION%)>
- Where:
MODEL: The model of the device (e.g. MacBookPro15,1 or ‘PC’ OS: The OS of the device (e.g. Mac OS X or Windows) MAJOR: The major version of the OS (e.g. 10) MINOR: The minor version of the OS (e.g. 15) SPMAJOR: The major version of the service pack (e.g. 0) (Windows only) SPMINOR: The minor version of the service pack (e.g. 0) (Windows only) BUILD: The build number of the OS (e.g. 19C57) AUTHKIT_BUNDLE_ID: The bundle ID of the AuthKit framework (e.g. com.apple.AuthKit) AUTHKIT_VERSION: The version of the AuthKit framework (e.g. 1) APP_BUNDLE_ID: The bundle ID of the app (e.g. com.apple.dt.Xcode) APP_VERSION: The version of the app (e.g. 3594.4.19)
- async get_headers(user_id: str, device_id: str, serial: str = '0', with_client_info: bool = False) dict[str, str] #
Generate a complete dictionary of Anisette headers.
Consider using
BaseAppleAccount.get_anisette_headers()
instead.
- async get_cpd(user_id: str, device_id: str, serial: str = '0') dict[str, str] #
Generate a complete dictionary of CPD data.
Intended for internal use.
- class findmy.reports.anisette.RemoteAnisetteProvider(server_url: str)#
Bases:
BaseAnisetteProvider
,findmy.util.abc.Serializable
[RemoteAnisetteMapping
]Anisette provider. Fetches headers from a remote Anisette server.
- to_json(dst: str | pathlib.Path | None = None, /) RemoteAnisetteMapping #
See
BaseAnisetteProvider.serialize()
.
- classmethod from_json(val: str | pathlib.Path | RemoteAnisetteMapping) RemoteAnisetteProvider #
See
BaseAnisetteProvider.deserialize()
.
- property otp: str#
- property machine: str#
- async get_headers(user_id: str, device_id: str, serial: str = '0', with_client_info: bool = False) dict[str, str] #
See :meth:
BaseAnisetteProvider.get_headers()
.
- async close() None #
See
AnisetteProvider.close()
.
- class findmy.reports.anisette.LocalAnisetteProvider(*, state_blob: BinaryIO | None = None, libs_path: str | pathlib.Path | None = None)#
Bases:
BaseAnisetteProvider
,findmy.util.abc.Serializable
[LocalAnisetteMapping
]Local anisette provider using the anisette library.
- to_json(dst: str | pathlib.Path | None = None, /) LocalAnisetteMapping #
See
BaseAnisetteProvider.serialize()
.
- classmethod from_json(val: str | pathlib.Path | LocalAnisetteMapping, *, libs_path: str | pathlib.Path | None = None) LocalAnisetteProvider #
See
BaseAnisetteProvider.deserialize()
.
- async get_headers(user_id: str, device_id: str, serial: str = '0', with_client_info: bool = False) dict[str, str] #
- property otp: str#
- property machine: str#
- async close() None #
See
BaseAnisetteProvider.close()
.