PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Apkfile.

Apkfile
- это мощная Python-библиотека и удобный CLI-инструмент для чтения метаданных, глубокого аудита безопасности и установки Android-приложений любых форматов (.apk, .apkm, .xapk, .apks, .apkv).

Библиотека парсит AndroidManifest.xml и resources.arsc напрямую через чистый Python (на базе androguard). Чтение метаданных происходит «лениво» прямо из байтов архива без распаковки на диск, а для работы больше не требуется утилита aapt.

🔹Главные фичи и возможности:

🔘Поддержка всех форматов пакетов: Читает классические .apk, сплиты и бандлы (.apkm, .xapk, .apks), а также формат .apkv (включая зашифрованные архивы).

🔘Полный срез метаданных: Извлекает название пакета, версию, поддерживаемые ABI (ARM64, x86 и т.д.), языки, плотность экранов, структуру DEX-файлов и иконки всех разрешений (adaptive/anydpi/nodpi).

🔘Аудит безопасности манифеста:

✔️Находит незащищенные экспортированные компоненты (Activities, Services, Providers без разрешений).

✔️Подсвечивает опасные разрешения (dangerous permissions) и неявные доступы (implied permissions).

✔️Проверяет сертификаты подписи (схемы v1-v4, sha256-хеши, отладочную подпись debug_signed).

✔️Diff двух версий приложения: Умеет сравнивать старый и новый APK/бандл, возвращая разницу в правах, объеме кода, DEX-составе и изменениях в сертификатах.

✔️Параллельная установка через ADB: Устанавливает APK и бандлы на все подключенные устройства одновременно, автоматически подгружает OBB-файлы расширений (/sdcard/Android/obb/), проверяет совместимость ABI и умеет сразу запускать указанную Activity.

🔻Примеры использования:

В коде Python:
from apkfile import ApkFile

apk = ApkFile("app.apk")

# Базовая информация
print(apk.package_name, apk.version_name, apk.version_code)

# Безопасность и компоненты
print("Опасные разрешения:", apk.security.dangerous_permissions)
print("Незащищенный экспорт:", apk.security.unprotected_exported_components)

# Сравнение двух версий приложения
old_apk, new_apk = ApkFile("v1.apk"), ApkFile("v2.apk")
diff = old_apk.diff(new_apk)
print("Добавленные права:", diff.permissions_added)

# Установка через ADB с последующим запуском
apk.install(upgrade=True, launch=True)


Через командную строку (CLI):

# Получить полную JSON-сводку о приложении
apkfile info app.apk --full

# Сравнить две версии APK
apkfile diff old.apk new.apk

# Установить и сразу запустить на устройстве
apkfile install app.xapk --launch


📦Установка:
pip install -U apkfile
# или через uv:
uv add apkfile


#Python #Android #APK #MobileSecurity #AppSec #QA #Automation #DevTools #OpenSource #ADB

📱Ссылка на репозиторий:
https://github.com/david-lev/apkfile
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥33