Name | apkfile JSON |
Version |
0.1.7
JSON |
| download |
home_page | |
Summary | Python wrapper for aapt • ApkFile, XapkFile, ApkmFile |
upload_time | 2023-11-16 14:45:29 |
maintainer | |
docs_url | None |
author | David Lev |
requires_python | |
license | MIT |
keywords |
apk
aapt
apkfile
apks
apkm
xapk
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
## ⛏️ [apkfile](https://github.com/david-lev/apkfile) • Python library for handling APK, APKM, XAPK, and APKS files
[![CodeFactor](https://www.codefactor.io/repository/github/david-lev/apkfile/badge)](https://www.codefactor.io/repository/github/david-lev/apkfile)
[![PyPI Downloads](https://img.shields.io/pypi/dm/apkfile?style=flat-square)](https://badge.fury.io/py/apkfile)
[![PyPI Version](https://badge.fury.io/py/apkfile.svg)](https://pypi.org/project/apkfile/)
### Install with pip
```bash
pip3 install -U apkfile
```
### Or, install from source:
```bash
git clone https://github.com/david-lev/apkfile.git
cd apkfile
python3 setup.py install
```
You also need to install ``aapt`` (see [Install aapt](#install-aapt) below).
### Usage
```python
from apkfile import ApkFile, XapkFile, ApkmFile, ApksFile
# Get apk info
apk_file = ApkFile(path='/home/david/Downloads/wa.apk')
print(apk_file.package_name, apk_file.version_name, apk_file.version_code)
print(apk_file.as_dict())
# Get apkm info
apkm_file = ApkmFile('/home/david/Downloads/chrome.apkm')
for split in apkm_file.splits:
print(split.split_name)
apkm_file.install(check=True, upgrade=True)
# Using context manager (delete the extracted files when done)
with XapkFile(path='/home/david/Downloads/telegram.xapk') as xf:
print(xf.base.abis, x.permissions, x.langs)
# Get apks info
apks_file = ApksFile(path='/home/david/Downloads/facebook.apks')
print(apks_file.base.permissions, apks_file.md5, apks_file.sha256)
```
### How this library works?
This library uses [``aapt``](https://elinux.org/Android_aapt) to extract information from the `.APK` file, and then parses the output to get the information.
- For the zip files (`.APKM`, `.XAPK`, and `.APKS`), the basic information (`package_name`, `version_name`, `version_code`, etc.) is derived from the .json file, and the rest of the information is extracted when it requested (lazy evaluation).
- The library also provide ways to install the files (and check compatibility; `min_sdk_version`, `abis` and `langs`) using [adb](#install-adb). Just connect your device/s and run the `install` method. (you can use the ``install_apks`` function independently).
### Install aapt
apkfile requires [``aapt``](https://elinux.org/Android_aapt) to be in the ``PATH``.
In each operating system, the way to install aapt is different, if you installed Android Studio, add one of the build-tools paths to the ``PATH``, if you are on a Debian-based Linux system (Ubuntu etc.) you can install with ``sudo apt install aapt``, and on Windows and Mac? Just google "How to install aapt on X".
- You can manually provide a path to aapt: ``ApkFile(..., aapt_path='/path/to/aapt')``.
### Install adb
if you want to use the ``install`` method, you need to install [``adb``](https://developer.android.com/studio/command-line/adb).
- You can manually provide a path to adb: ``ApkFile(...).install(adb_path='/path/to/adb')``.
Raw data
{
"_id": null,
"home_page": "",
"name": "apkfile",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "apk,aapt,apkfile,apks,apkm,xapk",
"author": "David Lev",
"author_email": "davidlev@telegmail.com",
"download_url": "https://files.pythonhosted.org/packages/7f/d6/a3b951d2670d93a67a66a26a11e86d29082eb6b1d300a5116ebc35ec28f4/apkfile-0.1.7.tar.gz",
"platform": null,
"description": "## \u26cf\ufe0f [apkfile](https://github.com/david-lev/apkfile) \u2022 Python library for handling APK, APKM, XAPK, and APKS files\n[![CodeFactor](https://www.codefactor.io/repository/github/david-lev/apkfile/badge)](https://www.codefactor.io/repository/github/david-lev/apkfile)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/apkfile?style=flat-square)](https://badge.fury.io/py/apkfile)\n[![PyPI Version](https://badge.fury.io/py/apkfile.svg)](https://pypi.org/project/apkfile/)\n\n### Install with pip\n```bash\npip3 install -U apkfile\n```\n### Or, install from source:\n```bash\ngit clone https://github.com/david-lev/apkfile.git\ncd apkfile\npython3 setup.py install\n```\n\nYou also need to install ``aapt`` (see [Install aapt](#install-aapt) below).\n\n### Usage\n\n```python\nfrom apkfile import ApkFile, XapkFile, ApkmFile, ApksFile\n\n# Get apk info\napk_file = ApkFile(path='/home/david/Downloads/wa.apk')\nprint(apk_file.package_name, apk_file.version_name, apk_file.version_code)\nprint(apk_file.as_dict())\n\n# Get apkm info\napkm_file = ApkmFile('/home/david/Downloads/chrome.apkm')\nfor split in apkm_file.splits:\n print(split.split_name)\napkm_file.install(check=True, upgrade=True)\n\n# Using context manager (delete the extracted files when done)\nwith XapkFile(path='/home/david/Downloads/telegram.xapk') as xf:\n print(xf.base.abis, x.permissions, x.langs)\n\n# Get apks info\napks_file = ApksFile(path='/home/david/Downloads/facebook.apks')\nprint(apks_file.base.permissions, apks_file.md5, apks_file.sha256)\n\n```\n\n### How this library works?\nThis library uses [``aapt``](https://elinux.org/Android_aapt) to extract information from the `.APK` file, and then parses the output to get the information.\n- For the zip files (`.APKM`, `.XAPK`, and `.APKS`), the basic information (`package_name`, `version_name`, `version_code`, etc.) is derived from the .json file, and the rest of the information is extracted when it requested (lazy evaluation).\n- The library also provide ways to install the files (and check compatibility; `min_sdk_version`, `abis` and `langs`) using [adb](#install-adb). Just connect your device/s and run the `install` method. (you can use the ``install_apks`` function independently).\n\n\n### Install aapt\napkfile requires [``aapt``](https://elinux.org/Android_aapt) to be in the ``PATH``.\nIn each operating system, the way to install aapt is different, if you installed Android Studio, add one of the build-tools paths to the ``PATH``, if you are on a Debian-based Linux system (Ubuntu etc.) you can install with ``sudo apt install aapt``, and on Windows and Mac? Just google \"How to install aapt on X\".\n- You can manually provide a path to aapt: ``ApkFile(..., aapt_path='/path/to/aapt')``.\n\n### Install adb\nif you want to use the ``install`` method, you need to install [``adb``](https://developer.android.com/studio/command-line/adb).\n\n- You can manually provide a path to adb: ``ApkFile(...).install(adb_path='/path/to/adb')``.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python wrapper for aapt \u2022 ApkFile, XapkFile, ApkmFile",
"version": "0.1.7",
"project_urls": {
"Documentation": "https://github.com/david-lev/apkfile#readme",
"Download": "https://pypi.org/project/apkfile/",
"Funding": "https://github.com/sponsors/david-lev",
"Issue Tracker": "https://github.com/david-lev/apkfile/issues",
"Source Code": "https://github.com/david-lev/apkfile"
},
"split_keywords": [
"apk",
"aapt",
"apkfile",
"apks",
"apkm",
"xapk"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6609f3af6707d2a54fbebc250c6cbf4fc2d776fb3b9b5ee9b9ad14acca9d9cc3",
"md5": "3200658ba838dc956ce882e2638fed7a",
"sha256": "bc7273e86f8a0b4c9dadf8b07d3ea9649f73216430b2d0c7f292c7ed56a3db21"
},
"downloads": -1,
"filename": "apkfile-0.1.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3200658ba838dc956ce882e2638fed7a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 13799,
"upload_time": "2023-11-16T14:45:27",
"upload_time_iso_8601": "2023-11-16T14:45:27.981802Z",
"url": "https://files.pythonhosted.org/packages/66/09/f3af6707d2a54fbebc250c6cbf4fc2d776fb3b9b5ee9b9ad14acca9d9cc3/apkfile-0.1.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7fd6a3b951d2670d93a67a66a26a11e86d29082eb6b1d300a5116ebc35ec28f4",
"md5": "85363227adb0f57f175faf62ee7399cf",
"sha256": "9d2bcc179eea27485685a1c9c5ac473f53518adfa7750a8c129a4095ee1ff3fb"
},
"downloads": -1,
"filename": "apkfile-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "85363227adb0f57f175faf62ee7399cf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14995,
"upload_time": "2023-11-16T14:45:29",
"upload_time_iso_8601": "2023-11-16T14:45:29.221543Z",
"url": "https://files.pythonhosted.org/packages/7f/d6/a3b951d2670d93a67a66a26a11e86d29082eb6b1d300a5116ebc35ec28f4/apkfile-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-16 14:45:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "david-lev",
"github_project": "apkfile#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "apkfile"
}