Skip to main content

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

Project description

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]

Project details


Release history Release notifications | RSS feed

This version

0.10

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

a_pandas_ex_adb_activities2df-0.10.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file a_pandas_ex_adb_activities2df-0.10.tar.gz.

File metadata

File hashes

Hashes for a_pandas_ex_adb_activities2df-0.10.tar.gz
Algorithm Hash digest
SHA256 237def929f4460caa02c8e1ce798ac64c25116d7f8480115347aeba3697cdc7e
MD5 228aa71a54783146fa9785bc8a122fdd
BLAKE2b-256 8d8763d5723e7f54f60179ae6e90e72385293f62432ca4e63f04a5fd37b4e233

See more details on using hashes here.

File details

Details for the file a_pandas_ex_adb_activities2df-0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for a_pandas_ex_adb_activities2df-0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 29f9dc7324981c82918f0dbbd041c0339ad4169fb6288c34827bc2c6631a4ac7
MD5 62957d9f02bbc61ccd4fe34d251110bd
BLAKE2b-256 d2e95269c124f790d912549a5806c6005ea3b0994346ec707e65d2d06bdd754a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page