Skip to content

Commit

Permalink
Revert "- support for python 2.7.x and PyPy."
Browse files Browse the repository at this point in the history
  • Loading branch information
subho007 authored Feb 4, 2019
1 parent 3d66537 commit 064788a
Show file tree
Hide file tree
Showing 20 changed files with 736 additions and 1,266 deletions.
18 changes: 0 additions & 18 deletions AUTHORS.rst

This file was deleted.

67 changes: 0 additions & 67 deletions HISTORY.md

This file was deleted.

74 changes: 8 additions & 66 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,67 +1,26 @@
Axmlparser
==========

.. image:: https://img.shields.io/pypi/v/pyaxmlparser.svg
:alt: package version on https://pypi.org
:target: https://pypi.org/project/pyaxmlparser/

.. image:: https://img.shields.io/pypi/l/pyaxmlparser.svg
:alt: package license
:target: https://pypi.org/project/pyaxmlparser/

.. image:: https://img.shields.io/pypi/pyversions/pyaxmlparser.svg
:alt: requires python versions for package
:target: https://pypi.org/project/pyaxmlparser/

.. image:: https://img.shields.io/github/contributors/appknox/pyaxmlparser.svg
:alt: package contributes
:target: https://github.com/appknox/pyaxmlparser/graphs/contributors
axmlparser
===========


A simple parser to parse Android XML file.


Usage
=====
======


CLI :
=====
====

.. code-block:: console
$ apkinfo ~/Downloads/com.hardcodedjoy.roboremo.15.apk info
APK: /home/chillaranand/Downloads/com.hardcodedjoy.roboremo.15.apk
App name: RoboRemo
Package: com.hardcodedjoy.roboremo
Version name: 2.0.0
Version code: 15
$ pyaxmlparser ~/Downloads/com.hardcodedjoy.roboremo.15.apk info
APK: /home/chillaranand/Downloads/com.hardcodedjoy.roboremo.15.apk
App name: RoboRemo
Package: com.hardcodedjoy.roboremo
Version name: 2.0.0
Version code: 15
.. code-block:: shell
$ python -m pyaxmlparser ~/Downloads/com.hardcodedjoy.roboremo.15.apk info
APK: /home/chillaranand/Downloads/com.hardcodedjoy.roboremo.15.apk
$ apkinfo ~/Downloads/com.hardcodedjoy.roboremo.15.apk
APK: /home/chillaranand/Downloads/com.hardcodedjoy.roboremo.15.apk
App name: RoboRemo
Package: com.hardcodedjoy.roboremo
Version name: 2.0.0
Version code: 15
$ apkinfo ~/Downloads/com.hardcodedjoy.roboremo.15.apk xml
<manifest ...>
...
</manifest>
$ apkinfo ~/Downloads/com.hardcodedjoy.roboremo.15.apk xml > "~/manifest.xml"
(save into ~/manifest.xml output xml)
$ apkinfo ~/Downloads/com.hardcodedjoy.roboremo.15.apk xml -o "~/manifest.xml"
(save into ~/manifest.xml output xml)
Python package :
Expand All @@ -71,28 +30,11 @@ Python package :
from pyaxmlparser import APK
apk = APK('/foo/bar.apk')
print(apk.package)
print(apk.version_name)
print(apk.version_code)
print(apk.icon_info)
print(apk.icon_data)
print(apk.application)
.. code-block:: python
from pyaxmlparser import AXMLPrinter
xml = AXMLPrinter('/foo/bar.apk').get_xml_obj()
print(xml.get('package'))
.. code-block:: python
from pyaxmlparser import AXMLPrinter
apk_path = '/foo/bar.apk'
with open(apk_path, 'rb') as apk_file:
android_xml = apk_file.read()
xml, error = AXMLPrinter(android_xml).get_xml_obj()
if xml is not None:
print(xml.get('package'))
36 changes: 13 additions & 23 deletions examples/get_app_name.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,21 @@
Usage:
python get_app_name.py /path/to/extracted/apk/dir
"""
import os
import sys
from pyaxmlparser import ARSCParser, AXMLPrinter
from pyaxmlparser.utils import NS_ANDROID

app_root = sys.argv[1]
axml_file = os.path.join(app_root, 'AndroidManifest.xml')
rsc_file = os.path.join(app_root, 'resources.arsc')
from pyaxmlparser.arscparser import ARSCParser
from pyaxmlparser.axmlprinter import AXMLPrinter


with open(axml_file, 'rb') as manifest_file, open(rsc_file, 'rb') as resources_file:
manifest_data = manifest_file.read()
resources_data = resources_file.read()
manifest_xml = AXMLPrinter(manifest_data)
axml, error = manifest_xml.get_xml_obj()
if axml is None:
print('Error parse xml {}: \n{}'.format(axml_file, error))
exit(1)
rsc = ARSCParser(resources_data)
app_root = sys.argv[1]

app_name_label = axml.findall('.//application')[0].get(NS_ANDROID + 'label')
if app_name_label and app_name_label.startswith('@'):
app_name_hex = '0x' + app_name_label[1:]
xml = AXMLPrinter(open("{}/AndroidManifest.xml".format(app_root), 'rb').read()).get_xml_obj()
rsc = ARSCParser(open("{}/resources.arsc".format(app_root), "rb").read())

app_name = rsc.get_string(
rsc.get_packages_names()[0],
rsc.get_id(rsc.get_packages_names()[0], int(app_name_hex, 0))[1]
)
print('App name is \'{}\''.format(app_name[1]))
app_name_hex = xml.getElementsByTagName("application")[0].getAttribute("android:label")
app_name = '0x' + app_name_hex[1:]
app_name = rsc.get_string(
rsc.get_packages_names()[0],
rsc.get_id(rsc.get_packages_names()[0], int(app_name, 0))[1]
)
print('App name is "{}"'.format(app_name[1]))
17 changes: 0 additions & 17 deletions pyaxmlparser/__init__.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,3 @@
# flake8: noqa

from pyaxmlparser.core import APK
from pyaxmlparser.axmlprinter import AXMLPrinter
from pyaxmlparser.axmlparser import AXMLParser
from pyaxmlparser.arscparser import ARSCParser

__all__ = (
'__title__', '__package_name__', '__description__', '__url__', '__version__', '__author__',
'__author_email__', '__license__', 'APK', 'AXMLPrinter', 'AXMLParser', 'ARSCParser'
)

__title__ = 'Pyaxmlparser'
__package_name__ = 'pyaxmlparser'
__description__ = 'Parser for Android XML file and get Application Name without using Androguard.'
__url__ = 'https://github.com/appknox/pyaxmlparser'
__version__ = '0.3.14'
__author__ = 'Subho Halder'
__author_email__ = '[email protected]'
__license__ = 'MIT License'
Loading

0 comments on commit 064788a

Please sign in to comment.