DroidDetective is an extended static analysis tool designed to analyze Android APK files. It provides valuable information about APK files, such as file details, hashes, APK information, version details, and extended information like permissions, activities, services, and receivers.
DroidDetective offers you the following features.
- File Name,
- File Type,
- File Size.
- MD5,
- SHA-1,
- SHA-256.
- Application Name,
- Package Name.
- Internal Version,
- Displayed Version,
- Target SDK Version,
- Minimum SDK Version,
- Maximum SDK Version.
- Permissions,
- Activities,
- Services,
- Receivers.
- Clone the project repository or download the zip file:
git clone https://github.com/eyupergin/droiddetective.git
- Install the required Python packages by running the following command:
pip3 install -r requirements.txt
- List arguments:
python3 main.py -h
- To scan a single APK file:
python3 main.py <APK_FILE_PATH> -a
"-a" or "--all": Analyze the APK file with all available options.
"-fs" or "--filesize": Display the file size of the APK.
"-fn" or "--filename": Display the file name of the APK.
"-ft" or "--filetype": Display the file type of the APK.
"-md5" or "--md5hash": Display the MD5 hash of the APK.
"-sha1" or "--sha1hash": Display the SHA-1 hash of the APK.
"-sha256" or "--sha256hash": Display the SHA-256 hash of the APK.
"-an" or "--appname": Display the Application Name in the output.
"-pn" or "--packname": Display the Package Name in the output.
"-iv" or "--intversion": Display the Internal Version in the output.
"-dv" or "--disversion": Display the Displayed Version in the output.
"-tsdk" or "--targetsdk": Display the Target SDK Version in the output.
"-misdk" or "--minsdk": Display the Minimum SDK Version in the output.
"-masdk" or "--maxsdk": Display the Maximum SDK Version in the output.
"-perm" or "--permissions": Display Permissions in the output.
"-acts" or "--activities": Display Activities in the output.
"-serv" or "--services": Display Services in the output.
"-recs" or "--receivers": Display Receivers in the output.
"-json" or "--json": Save the analysis results as a JSON file.
python3 main.py <APK_FILE_PATH> -[argument]
DroidDetective APK Analyzer tool visualizes the scanning results in a tabular format and prints them to the console. Additionally, you can choose to save the results to a JSON file.
______ _ _ ______ _
(______) (_) | (______) _ _ (_) | Version: v1.0
_ _ ____ ___ _ __| |_ _ _____ _| |_ _____ ____ _| |_ _ _ _ _____ | Developed by Eyup Sukru ERGIN
| | | / ___) _ \| |/ _ | | | | ___ (_ _) ___ |/ ___|_ _) | | | | ___ | | --------------------------------------
| |__/ / | | |_| | ( (_| | |__/ /| ____| | |_| ____( (___ | |_| |\ V /| ____| | https://ergin.dev
|_____/|_| \___/|_|\____|_____/ |_____) \__)_____)\____) \__)_| \_/ |_____) | https://github.com/eyupergin/droiddetective
Extended Static Analysis Tool for Analyzing Android APK Files.
[+] Basic Info:
- File Size: 155792351
- File Name: example.apk
- File Type: APK
[+] Hash Info:
- MD5: 5ed55262e1d560253b1a763627214e76
- SHA-1: 91dfae9c4c37208e0b600b397d3f78ffa35f0326
- SHA-256: 811cc0ba2f625b5d41eaa6f59714fb55f34ca3833975204b3ffeca77e262415a
[+] APK Info:
- Application Name: Example
- Package Name: com.example.rome
[+] APK Version:
- Internal Version: 1972
- Displayed Version: 8.33.0
- Target SDK Version: 33
- Minimum SDK Version: 24
- Maximum SDK Version: None
[+] Extended APK Info:
- Permissions:
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_NETWORK_STATE
...
- Activities:
com.appboy.ui.AppboyWebViewActivity
com.appboy.ui.activities.AppboyContentCardsActivity
...
- Services:
androidx.room.MultiInstanceInvalidationService
androidx.work.impl.background.systemalarm.SystemAlarmService
androidx.work.impl.background.systemjob.SystemJobService
...
- Receivers:
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy
...
[+] [INFO] APK Analyze Finished.
{'basicInfo': {'fileName': 'example.apk', 'fileSize': 155792351, 'fileType': 'APK'}, 'hashInfo': {'MD5': '5ed55262e1d560253b1a763627214e76', 'SHA1': '91dfae9c4c37208e0b600b397d3f78ffa35f0326', 'SHA256': '811cc0ba2f625b5d41eaa6f59714fb55f34ca3833975204b3ffeca77e262415a'}, 'apkInfo': {'applicationName': 'Example', 'packageName': 'com.example.rome'}, 'apkVersion': {'internalVersion': '1972', 'displayedVersion': '8.33.0', 'targetSDKVersion': '33', 'minimumSDKVersion': '24', 'maximumSDKVersion': 'Unknown'}, 'extendedAPKInfo': {'permissions': ['com.oppo.launcher.permission.WRITE_SETTINGS', 'com.huawei.android.launcher.permission.CHANGE_BADGE', 'android.permission.SCHEDULE_EXACT_ALARM'], 'activities': ['com.facebook.react.devsupport.DevSettingsActivity', 'com.example.rome.app.TopLevelActivity', 'com.example.rome.bdp.ui.BookingDetailActivity'], 'services': ['com.example.rome.PushNotificationHandler', 'com.example.rome.profile.account.AccountAuthenticatorService', 'com.example.rome.indexing.AppIndexingUpdateService'], 'receivers': ['com.example.rome.app.notification.AppBoyBroadcastReceiver', 'com.example.rome.indexing.AppIndexingUpdateReceiver', 'com.example.rome.notifications.DeleteNotificationReceiver']}}
This project is licensed under the MIT License. See the LICENSE file for more details.
Repo Update Date: 10-11-2023
If you would like to contribute to this project, please open an issue or submit a pull request. Any contributions and suggestions are welcome!
If you have any questions or suggestions, please feel free to contact me.
E-mail: ergindev@gmail.com
Website: www.ergin.dev
LinkedIn: www.linkedin.com/in/eyupergin