Skip to content

Python API

from apk_info import APK, APKError

try:
    apk = APK("app.apk")
except APKError as e:
    print(f"not an APK: {e}")

Everything goes through the APK class:

  • The constructor accepts str or any PurePath, and raises FileNotFoundError for a missing file and APKError if the file can't be parsed.
  • The constructor opens XAPK, APKM and APKS files through their base APK.
  • Manifest getters return str | None. They return values as written in the manifest, so booleans are "true" / "false" and versions are strings.
  • get_target_sdk_version() returns an int; it falls back to min_sdk_version, or 1 when neither is set.
  • Collections are set when order doesn't matter (permissions, features) and list when it does (main activities).
  • get_signatures() returns Signature.* dataclasses for use in match statements. See the Quickstart.

mkdocstrings generates the API below from the type stubs that ship with the package.

SignatureType

SignatureType = ApkChannelBlock | GooglePlayFrosting | PackerNextGenV2 | StampBlockV1 | StampBlockV2 | V1 | V2 | V3 | V31 | V32 | VasDollyV2 | ByteDance

Represents all available signatures

APK

anomalies

anomalies() -> list[Anomaly]

Inspects the APK for structural defects: tampered zip headers (BadPack), a damaged manifest or resource table, and the like.

Not part of the constructor: it reads the local header of every zip entry, once per call. For a xapk/apkm/apks container both the container and its base APK are checked.

Returns:

Type Description
list[Anomaly]

The defects found, empty for a well-formed APK

get_activities

get_activities() -> list[Activity]

Retrieves all <activity> components declared in the manifest.

See: https://developer.android.com/guide/topics/manifest/activity-element

Returns:

Type Description
list[Activity]

A list of found activities

get_activity_aliases

get_activity_aliases() -> list[ActivityAlias]

Retrieves all <activity-alias> components declared in the manifest.

See: https://developer.android.com/guide/topics/manifest/activity-alias-element

Returns:

Type Description
list[ActivityAlias]

A list of found aliases

get_all_attribute_values

get_all_attribute_values(tag: str, name: str) -> list[str]

An auxiliary method that allows you to get the value from all attributes from AndroidManifest.xml.

Examples:

apk = APK("./file")
print(apk.get_all_attribute_values("uses-permission", "name"))

get_application_allow_backup

get_application_allow_backup() -> Literal['true', 'false'] | None

Extracts the android:allowBackup attribute from <application>.

See: https://developer.android.com/guide/topics/manifest/application-element#allowbackup

Returns:

Type Description
true | false

If value is declared

None

If value is not declared

get_application_backup_agent

get_application_backup_agent() -> str | None

Extracts the android:backupAgent attribute from <application>.

See: https://developer.android.com/guide/topics/manifest/application-element#agent

Examples:

print(apk.get_application_backup_agent())
"com.android.launcher3.LauncherBackupAgent"

Returns:

Type Description
str | None

The name of the backup agent class if declared, otherwise None.

get_application_category

get_application_category() -> Literal['accessibility', 'audio', 'game', 'image', 'maps', 'news', 'productivity', 'social', 'video'] | None

Extracts the android:appCategory attribute from <application>.

See: https://developer.android.com/guide/topics/manifest/application-element#appCategory

Returns:

Type Description
accessibility

Apps that are primarily accessibility apps, such as screen-readers

audio

Apps that primarily work with audio or music, such as music players

game

Apps that are primarily games

image

Apps that primarily work with images or photos, such as camera or gallery apps

maps

Apps that are primarily map apps, such as navigation apps

news

Apps that are primarily news apps, such as newspapers, magazines, or sports apps

productivity

Apps that are primarily productivity apps, such as cloud storage or workplace apps

social

Apps that are primarily social apps, such as messaging, communication, email, or social network apps

video

Apps that primarily work with video or movies, such as streaming video apps

None

Value not defined

get_application_debuggable

get_application_debuggable() -> Literal['true', 'false'] | None

Extracts the android:debuggable attribute from <application>.

See: https://developer.android.com/guide/topics/manifest/application-element#debug

Returns:

Type Description
str | None

"true" or "false" if declared, otherwise None.

get_application_description

get_application_description() -> str | None

Extracts and resolve the android:description attribute from <application>.

See: https://developer.android.com/guide/topics/manifest/application-element#desc

Notes

The link to the resource will be automatically resolved and this value will be returned

Returns:

Type Description
str | None

The description resource or literal value, if available.

get_application_icon

get_application_icon() -> str | None

Extracts and resolves the android:icon attribute from <application>

See: https://developer.android.com/guide/topics/manifest/application-element#icon

Notes

There is no way to choose a resolution yet, it will be implemented in the future.

Examples:

apk = APK("./file")
icon = apk.get_application_icon()
if icon:
    # it's not always png, maybe webp or even xml.
    with open("icon.png", "wb") as fd:
        fd.write(apk.read(icon)[0])

Returns:

Type Description
str | None

The path to the icon file, if available.

get_application_label

get_application_label() -> str | None

Extracts and resolves the android:label attribute from <application>.

See: https://developer.android.com/guide/topics/manifest/application-element#label

Notes

The link to the resource will be automatically resolved and this value will be returned

Returns:

Type Description
str | None

The label resource or literal value, if available

get_application_logo() -> str | None

Extracts and resolves the android:logo attribute from <application>

See: https://developer.android.com/guide/topics/manifest/application-element#logo

Examples:

apk = APK("./file")
logo = apk.get_application_logo()
if logo:
    # it's not always png, maybe webp or even xml.
    with open("logo.png", "wb") as fd:
        fd.write(apk.read(logo))

Returns:

Type Description
str | None

The path to the logo file, if available

get_application_name

get_application_name() -> str | None

Extracts the android:name attribute from <application>.

See: https://developer.android.com/guide/topics/manifest/application-element#nm

Examples:

print(apk.get_application_name())
"com.whatsapp.AppShell"

Returns:

Type Description
str | None

The fully qualified application class name, if defined.

get_application_task_reparenting

get_application_task_reparenting() -> Literal['true', 'false'] | None

Extracts the android:allowTaskReparenting attribute from <application>.

See: https://developer.android.com/guide/topics/manifest/application-element#reparent

Returns:

Type Description
true | false

If value is declared

None

If value is not declared

get_attribute_value

get_attribute_value(tag: str, name: str) -> str | None

An auxiliary method that allows you to get the attribute value directly from AndroidManifest.xml.

If the value is a link to a resource, it will be automatically resolved to the file name.

Examples:

apk = APK("./file")
security_config = apk.get_attribute_value("application", "networkSecurityConfig")
if security_config:
    with open("network_security_config.xml", "wb") as fd:
        fd.write(apk.read(security_config))

Example of how to get additional information from the tag:

apk = APK("./file")
print(apk.get_attribute_value("application", "allowClearUserData"))

get_attributions

get_attributions() -> set[Attribution]

Extracts the <attribution tag from <manifest>

See: https://developer.android.com/guide/topics/manifest/attribution-element

Returns:

Type Description
set[Attribution]

All found attribution tags

get_build_version_code

get_build_version_code() -> str | None

Retrieves the platformBuildVersionCode from the <manifest> element.

Returns:

Type Description
str | None

The version name as a string if present, otherwise None

get_build_version_name

get_build_version_name() -> str | None

Retrieves the platformBuildVersionName from the <manifest> element.

Returns:

Type Description
str | None

The version name as a string if present, otherwise None

get_compile_sdk_version

get_compile_sdk_version() -> str | None

Retrieves the compileSdkVersion from the <manifest> element.

Returns:

Type Description
str | None

The sdk version as a string if present, otherwise None

get_compile_sdk_version_codename

get_compile_sdk_version_codename() -> str | None

Retrieves the compileSdkVersionCodename from the <manifest> element.

Returns:

Type Description
str | None

The sdk version codename as a string if present, otherwise None

get_container_signatures

get_container_signatures() -> list[SignatureType]

Returns the container signature of a xapk/apkm/apks file, if signed.

This is the signature of the outer archive that carries the split APKs. It belongs to the distributor, not to the app. Most xapk/apkm/apks containers are unsigned, so an empty result is expected and normal.

Raises:

Type Description
APKError

If the certificates could not be parsed

Returns:

Type Description
list[SignatureType]

A list of certificate signatures

get_declared_permissions

get_declared_permissions() -> set[Permission]

Retrieves all user defines permissions.

See: https://developer.android.com/guide/topics/manifest/permission-element

Returns:

Type Description
set[str]

A set of permission names defined by the application

get_features

get_features() -> set[str]

Retrieves all hardware or software features declared by <uses-feature android:name="...">

See: https://developer.android.com/guide/topics/manifest/uses-feature-element

Returns:

Type Description
set[str]

A set of declared feature names

get_install_location

get_install_location() -> Literal['auto', 'internalOnly', 'preferExternal'] | None

Retrieves the preferred installation location declared in the manifest.

See: https://developer.android.com/guide/topics/manifest/manifest-element#install

Returns:

Type Description
auto

Let the system decide ideal install location

internalOnly

Explicitly request to be installed on internal phone storage only

preferExternal

Prefer to be installed on SD card

None

The installation location is not specified

get_libraries

get_libraries() -> set[str]

Retrieves all libraries declared by <uses-library android:name="...">.

See: https://developer.android.com/guide/topics/manifest/uses-library-element

Returns:

Type Description
set[str]

A set of library names

get_main_activities

get_main_activities() -> list[str]

Retrieves all main (launchable) activities defined in the manifest.

A main activity is typically one that has an intent filter with actions MAIN and categories LAUNCHER or INFO.

See: https://developer.android.com/guide/topics/manifest/activity-element

Resolve logic: https://xrefandroid.com/android-16.0.0_r2/xref/frameworks/base/core/java/android/app/ApplicationPackageManager.java#310

Returns:

Type Description
list[str]

A list of main activity class names

get_main_activity

get_main_activity() -> str | None

Retrieves first main (launchable) activity defined in the manifest.

A main activity is typically one that has an intent filter with actions MAIN and categories LAUNCHER or INFO.

See: https://developer.android.com/guide/topics/manifest/activity-element

Resolve logic: https://xrefandroid.com/android-16.0.0_r2/xref/frameworks/base/core/java/android/app/ApplicationPackageManager.java#310

Examples:

print(apk.get_main_activity())
".MainActivity"

Sometimes there may be a full name, depending on the application. The library returns the value as is as in the manifest, without additional actions.

print(apk.get_main_activity())
"com.example.app.MainActivity"

Returns:

Type Description
str | None

A main activity class name

get_max_sdk_version

get_max_sdk_version() -> str | None

Retrieves the maximum supported SDK version (maxSdkVersion) if declared.

See: https://developer.android.com/guide/topics/manifest/uses-sdk-element#max

Returns:

Type Description
str | None

The maximum SDK version as a string, or None if not specified

get_min_sdk_version

get_min_sdk_version() -> str | None

Extracts the minimum supported SDK version (minSdkVersion) from the <uses-sdk> element

See: https://developer.android.com/guide/topics/manifest/uses-sdk-element#min

Examples:

print(apk.get_min_sdk_version())
"26"

Returns:

Type Description
str | None

The minimum SDK version as a string, or None if not specified.

get_native_libraries

get_native_libraries() -> set[str]

Retrieves all native libraries declared by <uses-native-library android:name="...">

See: https://developer.android.com/guide/topics/manifest/uses-native-library-element

Returns:

Type Description
set[str]

A set of native library names

get_package_name

get_package_name() -> str | None

Retrieves the package name declared in the <manifest> element.

See: https://developer.android.com/guide/topics/manifest/manifest-element#package

Returns:

Type Description
str | None

The package name (e.g., "com.example.app") if found, otherwise None

get_permissions

get_permissions() -> set[str]

Retrieves all permissions names from <uses-permission>

See: https://developer.android.com/guide/topics/manifest/uses-permission-element

Returns:

Type Description
set[str]

A list of all permission names (e.g., "android.permission.INTERNET").

get_permissions_sdk23

get_permissions_sdk23() -> set[str]

Retrieves all declared permissions for API level 23 and above from <uses-permission-sdk-23> elements

See: https://developer.android.com/guide/topics/manifest/uses-permission-sdk-23-element

Returns:

Type Description
set[str]

A set of permission names

get_providers

get_providers() -> list[Provider]

Retrieves all <provider> components declared in the manifest.

Returns:

Type Description
list[Provider]

A list of content providers

get_receivers

get_receivers() -> list[Receiver]

Retrieves all <receiver> components declared in the manifest.

See: https://developer.android.com/guide/topics/manifest/receiver-element

Returns:

Type Description
list[Receiver]

A list of broadcast receivers

get_resource_value

get_resource_value(name: str) -> str | None

An auxiliary method that allows you to get a value from a reference to a resource

Parameters:

Name Type Description Default
name str

The reference to the resource in the @string/app_name format

required

Examples:

>>> print(apk.get_resource_value("@string/app_name"))
"Cool Application"
>>> print(apk.get_resource_value("@drawable/ic_launcher"))
"res/drawable-xhdpi/ic_launcher.png"

Returns:

Type Description
str | None

If something was found, the value will be returned. It can be a string, a file path, etc., depending on the context in which this function is used.

get_services

get_services() -> list[Service]

Retrieves all <service> components declared in the manifest.

See: https://developer.android.com/guide/topics/manifest/service-element

Returns:

Type Description
list[Service]

A list of found services

get_shared_user_id

get_shared_user_id() -> str | None

Retrieves the sharedUserId attribute from the <manifest> element.

See: https://developer.android.com/guide/topics/manifest/manifest-element#uid

Returns:

Type Description
str | None

The shared user ID if declared, otherwise None

get_shared_user_label

get_shared_user_label() -> str | None

Retrieves the sharedUserLabel attribute from the <manifest> element.

See: https://developer.android.com/guide/topics/manifest/manifest-element#uidlabel

Returns:

Type Description
str | None

The shared user label if declared, otherwise None.

get_shared_user_max_sdk_version

get_shared_user_max_sdk_version() -> str | None

Retrieves the sharedUserMaxSdkVersion attribute from the <manifest> element.

See: https://developer.android.com/guide/topics/manifest/manifest-element#uidmaxsdk

Returns:

Type Description
str | None

The maximum SDK version for the shared user, if declared

get_signatures

get_signatures() -> list[SignatureType]

Returns the app signatures (v1, v2, v3, v3.1, etc).

For a plain APK this is the signature of the file itself.

For a xapk/apkm/apks container this is the signature of the inner base APK, which is the actual app identity. See get_container_signatures for the signature of the container itself.

Raises:

Type Description
APKError

If the certificates could not be parsed

Returns:

Type Description
list[SignatureType]

A list of certificate signatures

get_supported_abis

get_supported_abis() -> list[str]

Retrieves all available native platforms: arm64-v8a, armeabi-v7a, x86, x86_64

Returns:

Type Description
list[str]

A sorted list of supported platforms

get_target_sdk_version

get_target_sdk_version() -> int

Extracts the target SDK version (targetSdkVersion) from the <uses-sdk> element.

See: https://developer.android.com/guide/topics/manifest/uses-sdk-element#target

Notes

Determines the version based on the following algorithm:

  1. Check targetSdkVersion;
  2. If empty => check minSdkVersion;
  3. If empty => return 1;

Returns:

Type Description
int

The target SDK version

get_version_code

get_version_code() -> str | None

Retrieves the application version code.

See: https://developer.android.com/guide/topics/manifest/manifest-element#vcode

Examples:

apk = APK("./file")
print(apk.get_version_code())
"2025101912"
Notes

The automatic conversion to int was not done on purpose, because there is no certainty that malware will not try to insert random values there

Returns:

Type Description
str | None

The version code as a string if present, otherwise None

get_version_name

get_version_name() -> str | None

Retrieves the human-readable application version name.

See: https://developer.android.com/guide/topics/manifest/manifest-element#vname

Examples:

apk = APK("./file")
print(apk.get_version_name()) # "1.2.3"

Returns:

Type Description
str | None

The version name as a string if present, otherwise None

get_xml_string

get_xml_string() -> str

Converts the internal xml representation of the AndroidManifest.xml to a human readable format

Returns:

Type Description
str

pretty-printed AndroidManifest.xml

is_automotive

is_automotive() -> bool

Checks whether the app is designed to display its user interface on multiple screens inside the vehicle.

See: https://developer.android.com/guide/topics/manifest/uses-feature-element#device-ui-hw-features

is_chromebook

is_chromebook() -> bool

Checks whether app is designed to show its UI on Chromebooks.

See: https://developer.android.com/guide/topics/manifest/uses-feature-element#device-ui-hw-features

is_leanback

is_leanback() -> bool

Checks whether the app is designed to show its UI on a television.

See: https://developer.android.com/guide/topics/manifest/uses-feature-element#device-ui-hw-features

is_multidex

is_multidex() -> bool

Checks if the APK has multiple classes.dex files or not

Examples:

apk = APK("./file")
print(apk.is_multidex()) # True

is_tampered

is_tampered() -> bool

Checks whether the APK shows a known technique against static analysis, i.e. any anomaly with the tampered severity.

Runs the full anomalies scan; call that instead when the details are needed as well.

Returns:

Type Description
bool

True if any anomaly is rated tampered

is_wearable

is_wearable() -> bool

Checks whether the app is designed to show its UI on a watch.

See: https://developer.android.com/guide/topics/manifest/uses-feature-element#device-ui-hw-features

is_xr

is_xr() -> bool

Checks whether the app is designed to show its UI on Android XR headsets, via the Jetpack XR SDK (android.software.xr.api.spatial) or OpenXR (android.software.xr.api.openxr).

See: https://developer.android.com/develop/xr/package-and-distribute

namelist

namelist(base: bool = False) -> list[str]

The list of files contained in the APK, obtained from the central directory (zip)

Parameters:

Name Type Description Default
base bool

List the base APK instead of the file itself. For xapk/apkm/apks containers this lists the app's files rather than the container's entries (manifest.json, split APKs); for a plain APK it changes nothing.

False

Examples:

apk = APK("./file")
for file in apk.namelist():
    print(f"get file - {file}")

read

read(filename: str, base: bool = False) -> tuple[bytes, Literal['stored', 'deflated', 'stored_tampered', 'deflated_tampered']]

Read raw data for the filename in the zip archive

Parameters:

Name Type Description Default
filename str

The path to the file inside the APK archive

required
base bool

Read from the base APK instead of the file itself. For xapk/apkm/apks containers this reads classes.dex and other files of the app rather than the container's own entries; for a plain APK it changes nothing.

False

Raises:

Type Description
PyValueError

If the passed name could not be converted to a rust string

APKError

If there are problems reading the file

Examples:

apk = APK("./file")
data, compression = apk.read("AndroidManifest.xml")
print(compression)
with open("AndroidManifest.xml", "wb") as fd:
    fd.write(data)

# the app's DEX file inside an xapk
bundle = APK("./file.xapk")
dex, _ = bundle.read("classes.dex", base=True)

APKError

Bases: Exception

Generic exception related to issues with apk-info library

Activity

An <activity> element.

enabled

enabled: str | None

Whether the activity can be instantiated by the system.

See: https://developer.android.com/guide/topics/manifest/activity-element#enabled

exported

exported: str | None

Whether the activity can be launched by components of other applications.

See: https://developer.android.com/guide/topics/manifest/activity-element#exported

icon

icon: str | None

An icon representing the activity.

See: https://developer.android.com/guide/topics/manifest/activity-element#icon

intent_filters

intent_filters: list[IntentFilter]

A list of all declared <intent-filter> for a given activity

See: https://developer.android.com/guide/topics/manifest/intent-filter-element

label

label: str | None

A user-readable label for the activity.

See: https://developer.android.com/guide/topics/manifest/activity-element#label

name

name: str | None

The name of the class that implements the activity, a subclass of Activity.

See: https://developer.android.com/guide/topics/manifest/activity-element#nm

parent_activity_name

parent_activity_name: str | None

The class name of the logical parent of the activity.

See: https://developer.android.com/guide/topics/manifest/activity-element#parent

permission

permission: str | None

The name of a permission that clients must have to launch the activity or otherwise get it to respond to an intent.

See: https://developer.android.com/guide/topics/manifest/activity-element#prmsn

process

process: str | None

The name of the process in which the activity runs.

See: https://developer.android.com/guide/topics/manifest/activity-element#proc

ActivityAlias

An <activity-alias> element.

enabled

enabled: str | None

Whether the target activity can be instantiated by the system through this alias.

See: https://developer.android.com/guide/topics/manifest/activity-alias-element#enabled

exported

exported: str | None

Whether the components of other applications can launch the target activity through this alias.

See: https://developer.android.com/guide/topics/manifest/activity-alias-element#exported

icon

icon: str | None

An icon for the target activity when presented to users through the alias.

See: https://developer.android.com/guide/topics/manifest/activity-alias-element#icon

intent_filters

intent_filters: list[IntentFilter]

A list of all declared <intent-filter> for a given activity

See: https://developer.android.com/guide/topics/manifest/intent-filter-element

label

label: str | None

A user-readable label for the alias when presented to users through the alias.

See: https://developer.android.com/guide/topics/manifest/activity-alias-element#label

name

name: str | None

A unique name for the alias.

See: https://developer.android.com/guide/topics/manifest/activity-alias-element#nm

permission

permission: str | None

The name of a permission that clients must have to launch the target activity or get it to do something using the alias.

See: https://developer.android.com/guide/topics/manifest/activity-alias-element#prmsn

target_activity

target_activity: str | None

The name of the activity that can be activated through the alias.

See: https://developer.android.com/guide/topics/manifest/activity-alias-element#trgt

Anomaly

A structural defect of an apk.

code

code: str

Stable identifier of the anomaly kind, e.g. compression_method_mismatch

detail

detail: str

Human-readable description

location

location: str | None

Where: an entry name, base.apk!classes.dex for an entry of a container's base APK, or None for the archive itself

severity

severity: Literal['info', 'suspicious', 'tampered']

How strongly the anomaly points at tampering:

  • info: a quirk that ordinary build tools produce too;
  • suspicious: no ordinary build tool produces it, but plain corruption, an exotic tool or a commercial protector can;
  • tampered: a known technique against static analysis tools.

Attribution

An <attribution> element.

label

label: str | None

A string resource that describes a particular capability.

See: https://developer.android.com/guide/topics/manifest/attribution-element#label

tag

tag: str | None

A literal string that serves as a label for a particular capability.

See: https://developer.android.com/guide/topics/manifest/attribution-element#tag

CertificateInfo

A signing certificate.

issuer

issuer: str

The issuer of the certificate

md5_fingerprint

md5_fingerprint: str

MD5 fingerprint of the certificate

serial_number

serial_number: str

The serial number of the certificate in hexadecimal representation

sha1_fingerprint

sha1_fingerprint: str

SHA1 fingerprint of the certificate

sha256_fingerprint

sha256_fingerprint: str

SHA256 fingerprint of the certificate

signature_type

signature_type: str

The type of signature algorithm used

subject

subject: str

The subject of the certificate

valid_from

valid_from: str

The date and time when the certificate becomes valid

valid_until

valid_until: str

The date and time when the certificate expires

IntentFilter

An <intent-filter> of a component.

actions

actions: list[str]

A list of declared actions

See: https://developer.android.com/guide/topics/manifest/action-element

categories

categories: list[str]

A list of declared categories

See: https://developer.android.com/guide/topics/manifest/category-element

Permission

A <permission> the app declares.

description

description: str | None

A user-readable description of the permission that is longer and more informative than the label.

See: https://developer.android.com/guide/topics/manifest/permission-element#desc

icon

icon: str | None

A reference to a drawable resource for an icon that represents the permission.

See: https://developer.android.com/guide/topics/manifest/permission-element#icon

label

label: str | None

A user-readable name for the permission.

See: https://developer.android.com/guide/topics/manifest/permission-element#label

name

name: str | None

The name to be used in code to refer to the permission, such as in a element or the permission attributes of application components.

See: https://developer.android.com/guide/topics/manifest/permission-element#nm

permission_group

permission_group: str | None

Assigns this permission to a group.

See: https://developer.android.com/guide/topics/manifest/permission-element#pgroup

protection_level

protection_level: str | None

Characterizes the potential risk implied in the permission and indicates the procedure for the system to follow when determining whether to grant the permission to an application requesting it.

See: https://developer.android.com/guide/topics/manifest/permission-element#plevel

Provider

A <provider> element.

authorities

authorities: str | None

A list of URI authorities identifying data offered by the content provider.

See: https://developer.android.com/guide/topics/manifest/provider-element#auth

direct_boot_aware

direct_boot_aware: str | None

Whether the content provider is Direct Boot aware.

See: https://developer.android.com/guide/topics/manifest/provider-element#directBootAware

enabled

enabled: str | None

Whether the content provider can be instantiated by the system.

See: https://developer.android.com/guide/topics/manifest/provider-element#enabled

exported

exported: str | None

Whether the content provider is available for other applications to use.

See: https://developer.android.com/guide/topics/manifest/provider-element#exported

grant_uri_permissions

grant_uri_permissions: str | None

Whether temporary URI permissions can be granted to access the provider’s data.

See: https://developer.android.com/guide/topics/manifest/provider-element#granturi

icon

icon: str | None

An icon representing the content provider.

See: https://developer.android.com/guide/topics/manifest/provider-element#icon

init_order

init_order: str | None

The order in which the provider is instantiated relative to others in the same process.

See: https://developer.android.com/guide/topics/manifest/provider-element#init

label

label: str | None

A user-readable label for the content provider.

See: https://developer.android.com/guide/topics/manifest/provider-element#label

multiprocess

multiprocess: str | None

Whether multiple instances of the provider are created in multiprocess apps.

See: https://developer.android.com/guide/topics/manifest/provider-element#multiprocess

name

name: str | None

The name of the class implementing the content provider.

See: https://developer.android.com/guide/topics/manifest/provider-element#nm

permission

permission: str | None

A permission required to read or write the provider’s data.

See: https://developer.android.com/guide/topics/manifest/provider-element#prmsn

process

process: str | None

The name of the process where the provider runs.

See: https://developer.android.com/guide/topics/manifest/provider-element#proc

read_permission

read_permission: str | None

A permission that clients must have to read the provider’s data.

See: https://developer.android.com/guide/topics/manifest/provider-element#read

syncable

syncable: str | None

Whether the provider’s data can be synchronized with a server.

See: https://developer.android.com/guide/topics/manifest/provider-element#syncable

write_permission

write_permission: str | None

A permission that clients must have to modify the provider’s data.

See: https://developer.android.com/guide/topics/manifest/provider-element#write

Receiver

A <receiver> element.

direct_boot_aware

direct_boot_aware: str | None

Indicates whether the broadcast receiver is direct boot aware.

See: https://developer.android.com/guide/topics/manifest/receiver-element#enabled

enabled

enabled: str | None

Whether the broadcast receiver can be instantiated by the system.

See: developer.android.com/guide/topics/manifest/receiver-element#enabled

exported

exported: str | None

Specifies whether the broadcast receiver is accessible to other applications.

See: https://developer.android.com/guide/topics/manifest/receiver-element#exported

icon

icon: str | None

An icon representing the broadcast receiver in the user interface.

See: https://developer.android.com/guide/topics/manifest/receiver-element#icon

intent_filters

intent_filters: list[IntentFilter]

A list of all declared <intent-filter> for a given receiver

See: https://developer.android.com/guide/topics/manifest/intent-filter-element

label

label: str | None

A user-readable label for the broadcast receiver.

See: https://developer.android.com/guide/topics/manifest/receiver-element#label

name

name: str | None

The fully qualified name of the broadcast receiver class that implements the receiver.

See: https://developer.android.com/guide/topics/manifest/receiver-element#nm

permission

permission: str | None

The name of a permission that broadcasters must hold to send messages to this receiver.

See: https://developer.android.com/guide/topics/manifest/receiver-element#prmsn

process

process: str | None

The name of the process in which the broadcast receiver should run.

See: https://developer.android.com/guide/topics/manifest/receiver-element#proc

Service

A <service> element.

description

description: str | None

A user-readable description of the service.

See: https://developer.android.com/guide/topics/manifest/service-element#desc

direct_boot_aware

direct_boot_aware: str | None

Indicates whether the service is aware of Direct Boot mode.

See: https://developer.android.com/guide/topics/manifest/service-element#directBootAware

enabled

enabled: str | None

Specifies whether the service can be instantiated by the system.

See: https://developer.android.com/guide/topics/manifest/service-element#enabled

exported

exported: str | None

Defines whether the service can be used by other applications.

See: https://developer.android.com/guide/topics/manifest/service-element#exported

foreground_service_type

foreground_service_type: str | None

Lists the types of foreground services this service can run as.

See: https://developer.android.com/guide/topics/manifest/service-element#foregroundservicetype

icon

icon: str | None

An icon representing the service.

See: https://developer.android.com/guide/topics/manifest/service-element#icon

intent_filters

intent_filters: list[IntentFilter]

A list of all declared <intent-filter> for a given service

See: https://developer.android.com/guide/topics/manifest/intent-filter-element

isolated_process

isolated_process: str | None

Indicates whether the service runs in an isolated process.

See: https://developer.android.com/guide/topics/manifest/service-element#isolated

label

label: str | None

A user-readable name for the service.

See: https://developer.android.com/guide/topics/manifest/service-element#label

name

name: str | None

The fully qualified name of the service class that implements the service.

See: https://developer.android.com/guide/topics/manifest/service-element#nm

permission

permission: str | None

The name of a permission that clients must hold to use this service.

See: https://developer.android.com/guide/topics/manifest/service-element#prmsn

process

process: str | None

The name of the process where the service should run.

See: https://developer.android.com/guide/topics/manifest/service-element#proc

stop_with_task

stop_with_task: str | None

Indicates whether the service should be stopped when its task is removed.

See: https://developer.android.com/guide/topics/manifest/service-element#stopWithTask

Signature

A signature scheme or another block of the APK Signing Block.

The Python variants name their fields, unlike the Rust ones: Signature.V1(certificates=[...]), Signature.ApkChannelBlock(value="...").

ApkChannelBlock

Bases: apk_info._apk_info.Signature

ByteDance

Bases: apk_info._apk_info.Signature

GooglePlayFrosting

Bases: apk_info._apk_info.Signature

PackerNextGenV2

Bases: apk_info._apk_info.Signature

StampBlockV1

Bases: apk_info._apk_info.Signature

StampBlockV2

Bases: apk_info._apk_info.Signature

V1

Bases: apk_info._apk_info.Signature

V2

Bases: apk_info._apk_info.Signature

V3

Bases: apk_info._apk_info.Signature

V31

Bases: apk_info._apk_info.Signature

V32

Bases: apk_info._apk_info.Signature

VasDollyV2

Bases: apk_info._apk_info.Signature