HacknDroid

Hackndroid script is used for the automation of some MAPT activities and the interaction with the mobile Android device. The script was created to solve many problems:
the command
adb root
is not enabled after device rooting on many production mobile devices;the files need to be shared before on the external SD Card and then on the device;
the retrieving of the application data (APKs, Shared preferences, Stored data) needs to be found and retrieved with several commands;
the unpacking process of the application APK need a merge phase for application with multiple APKs in
/data/app/{app_id}_{base64_unique_id}
for efficency purpousesmanagement of invisible proxy setup
Task Manager
The script runs two different type of tasks:
Daemon tasks this type of tasks run in background. For example, the following tasks are daemon tasks:
logcat
mirroring
proxy with dns spoofing
video recoding
Sequential tasks
Functionalities
apk: Several APKs related operations (apk analysis for root detection/certificate pinning hints, apk decompiling/compiling, JADX-GUI launch, etc.)
apk_analysis: Analysis of the APKs related to the application
certificate_pinning_hints: Search for common Certificate Pinning strings or SHA1-SHA256 hash string in smali files
from_apk_on_pc
from_mobile_device
root_detection_hints: Search for common Root Detection strings in smali files
from_apk_on_pc
from_mobile_device
signature_scheme: Signature scheme verifier
from_apk_on_pc
from_mobile_device
full_analysis: Full Analysis of the APKs related to the application, including:
from_apk_on_pc
from_mobile_device
get_apk_from_mobile: Get APK of an application on your mobile device
app_info: App info from the APK
from_apk_on_pc
from_mobile_device
compiling: Compile an apk file from the folder with decompiled and modified code
compile: Compile an apk file from the folder with decompiled and modified code
compile_and_sign: Compile and sign an apk file from the folder with decompiled and modified code
decompiling: Decompile an apk file
from_apk_on_pc
from_mobile_device
jadx_run_on_apk: Open an APK in JADX-GUI
jadx_create_and_open_file: Open the reversed apk in JADX-GUI.
from_mobile_device
jar_from_apk: Convert an apk file from the mobile device to a jar file
from_apk_on_pc
from_mobile_device
merge_apks: Merge several APKs
from_directory
from_list
sign_apk: Sign an apk on your PC.
app_data_and_logs: Access to app data (e.g. backups) and logs
backup_and_data: Backup/Reset data of an application
backup_device: Backup the mobile device
backup_specific_app: Backup a specific app
backup_restore: Restore a backup file on your mobile device
backup_to_folder: Extract a backup file on your system
reset_app_data: Reset App data
dump_mem_info: Dump the memory information for an application
run_app_meminfo: Run and dump the memory information for an application.
running_app_meminfo: Dump the memory information for a running application
force_app_stop: Force the stop of a running application
track_logs: Process for logs gathering:
run_and_log: Run the app and logs it using the tool
normal_logs: Launch an application and log all the events
crash_logs: Launch an application and log its crash events
running_app_log: Log a running app
normal_logs: Log all the events of a running application
crash_logs: Log the crash events of a running application
log_sessions: List logging sessions
device_info: Get mobile device information
apps_list: Get list of all the installed apps
3rd_party_apps: Get list of all the installed 3rd-party apps
system_apps: Get list of all the installed system apps
battery_status: Battery Status
cpu_info: Get CPU information
general_info: Get mobile device general information
network_info: Get Network information
ram_info: Get RAM information
storage_info: Get Storage information
devices: Select one of the available mobile devices
file_transfer: Transfer files from/to mobile devices
download_from_mobile: Doenload a file/folder from the mobile device
upload_to_mobile: Upload a file/folder to the mobile device
install_uninstall: Install/Uninstall an app on the mobile device.
install_from_apk: Install an APK file on the mobile device
install_from_playstore: Install an app from the Play Store
uninstall: Uninstall an app from the mobile device
interactive_shell: Interactive shell for the mobile device
mirroring: Mirroring management (screenshot, video recording and scren mirroring)
mirroring: Launch scrcpy for mobile device mirroring
stop_mirroring: Stop scrcpy session for mobile device mirroring
screenshot_video: Screenshot/Video on the mobile device
screenshot: Screenshot
video_record: Start Video Recording
stop_video_record: Stop Video recording
mobile_settings: Management of mobile device modes (battery saver, do not disturb, connectivity)
battery_saver: Battery Saver mode
off: Turn off battery saver mode
on: Turn on battery saver mode
do_not_disturb_mode: Do Not Disturb mode
off: Turn off Do Not Disturb mode
alarms_only: Turn on Do Not Disturb mode with alarms only
priority_only: Turn on Do Not Disturb mode with priority only
total_silence: Turn on Do Not Disturb mode with total silence
connectivity: Connectivity options management (Wifi, airplane mode)
wifi_off: Turn off Wifi option
wifi_on: Turn on Wifi option
airplane_off: Turn off Airplane mode
airplane_on: Turn on Airplane mode
processes_list: List all the processes
proxy: Set proxy on the mobile device using the current PC IP or another IP (e.g. regular proxy, invisible proxy via iptables or dns spoofing)
dns: Set proxy routes using a DNS server
get_current_proxy: List current DNS proxy settings
set_proxy_with_current_ip: Start the DNS spoofing with the current PC IP (on the same Wi-fi network of the mobile device)
set_proxy_with_other_ip: Start the DNS spoofing with a specific IP address
del_proxy: Reset current DNS Proxy configurationPress ENTER to continue...
invisible_proxy: Set global proxy on the mobile device:
get_current_proxy: See the current invisible proxy settings
set_proxy_with_current_ip: Set the current PC IP as invisible proxy
set_proxy_with_other_ip: Set an IP address as invisible proxy
del_proxy: Reset current invisible proxy configuration
system_proxy: Set global proxy on the mobile device:
get_current_proxy: Press ENTER to see current proxy settings
set_proxy_with_current_ip: Set the current PC IP as proxy
set_proxy_with_other_ip: Set the remote IP address to be used as proxy
del_proxy: Reset current proxy configuration
shutdown_reboot: Reboot/shutdown the device with several options
shutdown: Shutdown the mobile device
reboot: Reboot the mobile device
reboot_recovery: Reboot the mobile device in recovery mode
reboot_bootloader: Reboot the mobile device in bootloader mode
Last updated