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 hashes)

Uploaded Source

Built Distribution

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