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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.