Skip to main content

Converts AndroidManifest.xml into a Pandas DataFrame (with all activities, queries, permissions ...)

$pip install a-pandas-ex-adb-activities2df

# Install androguard

# git clone https://github.com/androguard/androguard.git

# pip install -r requirements.txt

# or pip: https://androguard.readthedocs.io/en/latest/intro/installation.html





from a_pandas_ex_adb_activities2df import connect_to_adb, list_all_packages,get_package_infos_df

import pandas as pd

adb_path = "C:\\Users\\Gamer\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe"

deviceserial = "localhost:5895"

connect_to_adb(adb_path, deviceserial)

dfp_all_packages = list_all_packages(

    adb_path, deviceserial,

)  # returns a DataFrame with path and package name

dfp = dfp_all_packages.loc[

    dfp_all_packages.package_name.str.contains("roblox")

]  # filter here the packages you want to analyze

df, dfo = get_package_infos_df(

    dframe=dfp,  # Will analyze all packages in the DataFrame dfp

    adb_path=adb_path,

    deviceserial=deviceserial,

    tmp_folder_hdd="f:\\testdebugadb",  # Temp folder for apk files, folder will be created if it does not exist

    androguard_cli_py=r"C:\Users\Gamer\anaconda3\envs\dfdir\androguard\cli.py",  # https://github.com/androguard/androguard

    explode_name_columns=False,  # if True: might make it easier to find what you want, but the DataFrame will contain duplicated data

)

df1, dfo1 = get_package_infos_df(

    dframe=None,  # Will analyze all packages

    adb_path=adb_path,

    deviceserial=deviceserial,

    tmp_folder_hdd="f:\\testdebugadb",  # Temp folder for apk files, folder will be created if it does not exist

    androguard_cli_py=r"C:\Users\Gamer\anaconda3\envs\dfdir\androguard\cli.py",  # https://github.com/androguard/androguard

    explode_name_columns=False,  # if True: might make it easier to find what you want, but the DataFrame will contain duplicated data

)

 

 

 

                             package_path       package_name

7  /data/app/com.roblox.client-1/base.apk  com.roblox.client



dfp_all_packages



Out[6]: 

                                         package_path                     package_name

0   /data/priv-downloads/com.google.android.ext.se...  com.google.android.ext.services

1   /data/downloads/com.location.provider/com.loca...            com.location.provider

2   /system/priv-app/TelephonyProvider/TelephonyPr...  com.android.providers.telephony

3   /system/priv-app/CalendarProvider/CalendarProv...   com.android.providers.calendar

4    /system/priv-app/MediaProvider/MediaProvider.apk      com.android.providers.media

..                                                ...                              ...

65  /data/downloads/com.google.android.play.games/...    com.google.android.play.games

66  /data/downloads/gg.now.accounts/gg.now.account...                  gg.now.accounts

67    /system/app/WallpaperPicker/WallpaperPicker.apk      com.android.wallpaperpicker

68  /system/priv-app/ContactsProvider/ContactsProv...   com.android.providers.contacts

69  /system/app/CaptivePortalLogin/CaptivePortalLo...   com.android.captiveportallogin

[70 rows x 2 columns]







df

Out[13]: 

                                            aa_name_0  ... windowSoftInputMode_0

0                          android.intent.action.VIEW  ...                   NaN

1          com.roblox.client.landing.ActivityStartMVP  ...                    32

2                          android.intent.action.MAIN  ...                   NaN

3                com.roblox.client.ActivityNativeMain  ...                    16

4                 com.roblox.client.game.ActivityGame  ...                    16

5           com.roblox.client.game.GameLaunchActivity  ...                   NaN

6                 com.roblox.client.RobloxWebActivity  ...                   NaN

7        com.roblox.client.NotificationStreamActivity  ...                   NaN

8             com.roblox.client.signup.ActivitySignUp  ...                    32

9        com.roblox.client.login.mvp.ActivityLoginMVP  ...                   NaN

10  com.roblox.client.resetpassword.ResetPasswordA...  ...                   NaN

11        com.roblox.client.contacts.ActivityContacts  ...                   NaN

12  com.roblox.client.friends.ActivityUniversalFri...  ...                   NaN

13                   com.roblox.client.ActivitySearch  ...                   NaN

14       com.roblox.client.captcha.ActivityFunCaptcha  ...                   NaN

15  com.roblox.client.signup.multiscreen.ActivityV...  ...                    32

16  com.roblox.client.signup.multiscreen.ActivityW...  ...                   NaN

17            com.roblox.client.landing.AboutActivity  ...                   NaN

18  com.google.android.gms.auth.api.signin.interna...  ...                   NaN

19  com.google.android.gms.common.api.GoogleApiAct...  ...                   NaN

20  com.android.billingclient.api.ProxyBillingActi...  ...                   NaN

[21 rows x 31 columns]





dfo

Out[14]: 

                                               level_0  ...    aa_package_name

0                                          application  ...  com.roblox.client

1                                          application  ...  com.roblox.client

2                                          application  ...  com.roblox.client

3                                          application  ...  com.roblox.client

4                                          application  ...  com.roblox.client

..                                                 ...  ...                ...

164                                           uses-sdk  ...  com.roblox.client

165  {http://schemas.android.com/apk/res/android}co...  ...  com.roblox.client

166  {http://schemas.android.com/apk/res/android}co...  ...  com.roblox.client

167  {http://schemas.android.com/apk/res/android}ve...  ...  com.roblox.client

168  {http://schemas.android.com/apk/res/android}ve...  ...  com.roblox.client

[169 rows x 12 columns]





df1

Out[11]: 

                                              aa_name_0  ... windowSoftInputMode_0

0                            android.intent.action.MAIN  ...                   NaN

1                   com.location.provider.EnterLocation  ...                   NaN

2                com.location.provider.ShowMapsActivity  ...                   NaN

3                com.location.provider.BasicMapActivity  ...                   NaN

4     com.google.android.gms.common.api.GoogleApiAct...  ...                   NaN

                                                 ...  ...                   ...

1397                    android.net.conn.CAPTIVE_PORTAL  ...                   NaN

1398                                                NaN  ...                   NaN

1399                                                NaN  ...                   NaN

1400  com.android.captiveportallogin.CaptivePortalLo...  ...                   NaN

1401                                                NaN  ...                   NaN

[1402 rows x 227 columns]



dfo1

Out[15]: 

                                                 level_0  ... level_7

0                                            application  ...     NaN

1                                            application  ...     NaN

2                                            application  ...     NaN

3                                            application  ...     NaN

4                                            application  ...     NaN

                                                  ...  ...     ...

12107                                    uses-permission  ...     NaN

12108                                           uses-sdk  ...     NaN

12109                                           uses-sdk  ...     NaN

12110  {http://schemas.android.com/apk/res/android}ve...  ...     NaN

12111  {http://schemas.android.com/apk/res/android}ve...  ...     NaN

[12112 rows x 12 columns]

Metadata

Release files for a-pandas-ex-adb-activities2df 0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for a-pandas-ex-adb-activities2df 0.10
File Size Uploaded Provenance Actions
a_pandas_ex_adb_activities2df-0.10.tar.gz 7.9 kB Without provenance Details for a_pandas_ex_adb_activities2df-0.10.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for a-pandas-ex-adb-activities2df 0.10
File Interpreter ABI Platform Actions
a_pandas_ex_adb_activities2df-0.10-py3-none-any.whl Python 3 none any Details for a_pandas_ex_adb_activities2df-0.10-py3-none-any.whl

Total release size: 17.7 kB

Release files / a_pandas_ex_adb_activities2df-0.10.tar.gz

Download URL a_pandas_ex_adb_activities2df-0.10.tar.gz
Size 7.9 kB
Tags Source
SHA-256 checksum
How to use checksums
237def929f4460caa02c8e1ce798ac64c25116d7f8480115347aeba3697cdc7e
BLAKE2b-256 checksum
How to use checksums
8d8763d5723e7f54f60179ae6e90e72385293f62432ca4e63f04a5fd37b4e233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / a_pandas_ex_adb_activities2df-0.10-py3-none-any.whl

Download URL a_pandas_ex_adb_activities2df-0.10-py3-none-any.whl
Size 9.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29f9dc7324981c82918f0dbbd041c0339ad4169fb6288c34827bc2c6631a4ac7
BLAKE2b-256 checksum
How to use checksums
d2e95269c124f790d912549a5806c6005ea3b0994346ec707e65d2d06bdd754a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Security for a-pandas-ex-adb-activities2df 0.10

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.10 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page