Skip to content

GamingNJncos/Tools-Android_Analysis_Scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Android Analysis Scripts

This is my personal collection of shell scripts for forensic data collection and security auditing on Android devices. They are subject to change at any time and are updated intermittently as I use them on new or differing devices.

The Scripts run directly on-device via ADB shell or a terminal emulator β€” no build step, no dependencies beyond standard Android utilities. These are purposely designed to be "dumb" and run with minimal issues across any busybox or shell solution that is fully featured to heavily restricted. They also (should) fail gracefully any time a command is not available, out of scope for user permissions, etc.

Legal Notice: I'm not responsible for anything stupid you do with these. This is a personal toolset for my professional needs I have opted to share with others. Use responsibly and consult your local laws.


Requirements

  • A delivery method (adb upload, toss on SD Card, etc)
  • Root access optional β€” scripts degrade gracefully and log permission denials

Quick Start

From host via ADB

adb push Toolchain/ /data/local/tmp/android-audit/
adb shell "cd /data/local/tmp/android-audit && sh 0_RunAll.sh /sdcard/forensic_output"

On-device (terminal emulator)

sh 0_RunAll.sh /sdcard/forensic_output

With root

adb shell su -c "sh 0_RunAll.sh /data/local/tmp/forensic_output"

Single script

sh 01_audit_usb_adb.sh [output_directory]

All scripts accept an optional output directory as the first argument (defaults to current directory).


Output

0_RunAll.sh creates a timestamped directory: forensic_YYYYMMDD_HHMMSS/

forensic_20260128_145213/
β”œβ”€β”€ master.log
β”œβ”€β”€ manifest.txt
β”œβ”€β”€ audit_usb_adb.txt
β”œβ”€β”€ audit_properties.txt
β”œβ”€β”€ audit_partitions.txt
β”œβ”€β”€ root_indicators.txt
β”œβ”€β”€ audit_android_jail.txt
β”œβ”€β”€ audit_selinux.txt
β”œβ”€β”€ audit_kernel.txt
β”œβ”€β”€ audit_debug_interfaces.txt
β”œβ”€β”€ enum_privileged_processes.txt
β”œβ”€β”€ audit_capabilities.txt
β”œβ”€β”€ audit_setuid.txt
β”œβ”€β”€ audit_privesc_surface.txt
β”œβ”€β”€ users_uids.txt
β”œβ”€β”€ device_nodes.txt
β”œβ”€β”€ audit_writable_system.txt
β”œβ”€β”€ audit_special_perms.txt
β”œβ”€β”€ probe_namespaces.txt
β”œβ”€β”€ audit_boot.txt
β”œβ”€β”€ audit_scheduled_tasks.txt
β”œβ”€β”€ vendor_customizations.txt
β”œβ”€β”€ network_interfaces.txt
β”œβ”€β”€ netstat.txt
β”œβ”€β”€ audit_network_deep.txt
β”œβ”€β”€ audit_binder.txt
β”œβ”€β”€ pipes_ipc.txt
β”œβ”€β”€ audit_unix_sockets.txt
β”œβ”€β”€ audit_content_providers.txt
β”œβ”€β”€ probe_tee_surface.txt
β”œβ”€β”€ audit_hardware_interfaces.txt
β”œβ”€β”€ audit_app_attack_surface.txt
β”œβ”€β”€ broadcast_receivers.txt
β”œβ”€β”€ audit_crypto_surface.txt
β”œβ”€β”€ scan_certificate_files.txt
β”œβ”€β”€ scan_hardcoded_secrets.txt
β”œβ”€β”€ application_hashes.txt
β”œβ”€β”€ shell_commands.txt
β”œβ”€β”€ symlinks.txt
β”œβ”€β”€ input_devices.txt
β”œβ”€β”€ forensic_logs.txt
β”œβ”€β”€ forensic_process_snapshot.txt
└── forensic_storage_sensitive.txt
                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                          β”‚                 DEVICE BASELINE                  β”‚
                          β”‚             audit_usb_adb.txt                    β”‚
                          β”‚           audit_properties.txt                   β”‚
                          β”‚         vendor_customizations.txt                β”‚
                          β”‚       enum_privileged_processes.txt              β”‚
                          β”‚         audit_debug_interfaces.txt               β”‚
                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                 β”‚
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”‚                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚     ROOT & INTEGRITY     β”‚                   β”‚                  β”‚       HARDWARE & TEE      β”‚
  β”‚   root_indicators.txt    β”‚                   β”‚                  β”‚   probe_tee_surface.txt   β”‚
  β”‚    audit_selinux.txt     β”‚      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚  audit_hardware_          β”‚
  β”‚  audit_partitions.txt    β”‚      β”‚  forensic_YYYYMMDD_  β”‚        β”‚    interfaces.txt         β”‚
  β”‚     audit_boot.txt       β”‚      β”‚      HHMMSS/         β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  β”‚  audit_android_jail.txt  β”‚      β”‚  ─────────────────   β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚      master.log      β”‚        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚  forensic_context.txtβ”‚        β”‚        NETWORK & IPC      β”‚
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚    manifest.txt      β”‚        β”‚   network_interfaces.txt  β”‚
  β”‚   KERNEL & OS SECURITY   β”‚      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚        netstat.txt        β”‚
  β”‚    audit_kernel.txt      β”‚                   β”‚                  β”‚   audit_network_deep.txt  β”‚
  β”‚  audit_capabilities.txt  β”‚                   β”‚                  β”‚     audit_binder.txt      β”‚
  β”‚   probe_namespaces.txt   β”‚                   β”‚                  β”‚   audit_unix_sockets.txt  β”‚
  β”‚ audit_privesc_surface.txtβ”‚                   β”‚                  β”‚       pipes_ipc.txt       β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β”‚                  β”‚  audit_content_           β”‚
                                                 β”‚                  β”‚    providers.txt          β”‚
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”‚                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  β”‚     UID Β· GID Β· PERMS    β”‚                   β”‚
  β”‚  ── uncommon depth ──    β”‚                   β”‚                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚      users_uids.txt      β”‚                   β”‚                  β”‚    APP SURFACE & SECRETS  β”‚
  β”‚     audit_setuid.txt     β”‚                   β”‚                  β”‚   audit_app_attack_       β”‚
  β”‚  audit_special_perms.txt β”‚                   β”‚                  β”‚     surface.txt           β”‚
  β”‚      device_nodes.txt    β”‚                   β”‚                  β”‚   broadcast_receivers.txt β”‚
  β”‚  audit_writable_         β”‚                   β”‚                  β”‚  audit_crypto_surface.txt β”‚
  β”‚     system.txt           β”‚                   β”‚                  β”‚   scan_certificate_       β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β”‚                  β”‚     files.txt             β”‚
                                                 β”‚                  β”‚   scan_hardcoded_         β”‚
                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€     secrets.txt           β”‚
                          β”‚          FORENSIC COLLECTION            β”‚β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β”‚          forensic_logs.txt              β”‚
                          β”‚   forensic_process_snapshot.txt         β”‚
                          β”‚   forensic_storage_sensitive.txt        β”‚
                          β”‚       application_hashes.txt            β”‚
                          β”‚         shell_commands.txt              β”‚
                          β”‚             symlinks.txt                β”‚
                          β”‚          input_devices.txt              β”‚
                          β”‚       audit_scheduled_tasks.txt         β”‚
                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Security: Output files contain sensitive device data (credentials, keys, device identifiers). Treat as confidential, store encrypted, and delete after analysis.


Risk Levels

Findings in output files are tagged:

Tag Meaning
[CRITICAL] Immediate exploitation risk (exposed private keys, SUID root, world-writable system files)
[HIGH] Significant attack surface (exported unprotected components, writable shell scripts)
[MEDIUM] Notable configuration weakness (user CAs, permissive SELinux domains)
[INFO] Informational β€” no direct risk, useful for baseline

Script Reference

USB, ADB & Boot

Script Output File Description
01_audit_usb_adb.sh audit_usb_adb.txt ADB debugging status, authorization keys, USB configuration and functions, developer options, bootloader status, USB security properties, ADB shell capabilities
18_audit_boot.sh audit_boot.txt Init RC files, services defined in RC files, services running as root/system, Zygote configuration

System Properties & Partitions

Script Output File Description
02_audit_properties.sh audit_properties.txt Critical security flags (ro.debuggable, ro.secure, ro.adb.secure), build and signing type, SELinux properties, encryption state, persistent/mutable tamper indicators, root/hooking framework detection (Magisk/Xposed/Frida), Keymaster/Keymint properties, full property dump
03_audit_partitions.sh audit_partitions.txt Bootloader lock state, A/B partition scheme, partition layout, dm-verity status, Android Verified Boot (AVB), mount points, fstab configuration, Factory Reset Protection (FRP), partition integrity hashes

Root & Privilege Analysis

Script Output File Description
04_enum_root_indicators.sh root_indicators.txt SU binary detection, Magisk/KernelSU/APatch/SuperSU framework detection, Busybox indicators, modified system properties, suspicious overlayfs/bind mounts, /data/adb audit
05_audit_android_jail.sh audit_android_jail.txt Current process identity and decoded capabilities, Android paranoid network gate membership (GIDs), SELinux domain confinement, seccomp filter and NoNewPrivs status, privilege escalation surface, Android AID reference table
09_enum_privileged_processes.sh enum_privileged_processes.txt Per-process security profile for all UID=0 processes: capabilities, seccomp, NoNewPrivs, SELinux context, FD count, mapped libraries; system server brief profile; highest-risk process summary
10_audit_capabilities.sh audit_capabilities.txt getcap/capsh tool availability, current process capabilities, all files with Linux capabilities in /system, /vendor, /sbin, /data
11_audit_setuid.sh audit_setuid.txt [CRITICAL] SUID root binaries, all SUID binaries, all SGID binaries, binaries with both SUID and SGID set
12_audit_privesc_surface.sh audit_privesc_surface.txt Writable PATH directories, writable root-owned files, SUID/SGID enumeration as escalation vectors
13_enum_users.sh users_uids.txt Current process identity, SELinux context, /etc/passwd and /etc/group (system and Android equivalents), Android system AID reference table

SELinux & Kernel Security

Script Output File Description
06_audit_selinux.sh audit_selinux.txt Enforcement status, policy version, permissive and unconfined domains, process domain distribution, file/property/service contexts, recent AVC denials, app data contexts, seapp_contexts, SELinux booleans, MLS/MCS status
07_audit_kernel.sh audit_kernel.txt Kernel version, config exposure (/proc/config.gz), KASLR/symbol exposure, hardening settings (kptr_restrict/dmesg_restrict/perf_event_paranoid/ptrace_scope), loaded modules, taint flags, ARM64 features (PAC/BTI/MTE), CPU vulnerability mitigations, kernel cmdline analysis, IMA checks, sysctl security sweep
08_audit_debug_interfaces.sh audit_debug_interfaces.txt ptrace status, debugfs/tracefs mount state and contents, perf_event paranoid setting, kprobes, /proc debug interfaces, hardware debug (JTAG/SWD), memory debugging features, tracefs write permissions, eBPF attack surface

Namespaces & Scheduled Tasks

Script Output File Description
17_audit_namespaces.sh probe_namespaces.txt Shell namespace links, unprivileged namespace clone capability, user namespace configuration, per-process namespace identifiers, process status (capabilities/seccomp/NoNewPrivs)
19_audit_scheduled_tasks.sh audit_scheduled_tasks.txt JobScheduler jobs, AlarmManager alarms, WorkManager tasks, persistence mechanisms

File System & Permissions

Script Output File Description
14_audit_device_nodes.sh device_nodes.txt /dev overview and counts, [CRITICAL] world-writable device nodes, world-readable sensitive devices
15_audit_writable_system.sh audit_writable_system.txt Mount options (read-only enforcement), files/directories writable in /system and /vendor, writable shell scripts and RC/init files
16_audit_special_perms.sh audit_special_perms.txt [CRITICAL] world-writable files in system paths, [HIGH] world-writable directories, [MEDIUM] group-writable files, [HIGH] files owned by network-capable UIDs
37_enum_symlinks.sh symlinks.txt Symbolic links across critical system paths, APEX module symlinks, broken symlinks, cross-boundary links
41_forensic_storage_sensitive.sh forensic_storage_sensitive.txt World-readable files in /data, accessible SQLite databases, world-readable app private files

Network & IPC

Script Output File Description
21_enum_network.sh network_interfaces.txt Network interfaces, IP/IPv6 addresses, routing tables, ARP cache, DNS, WiFi and VPN/tunnel properties
22_enum_netstat.sh netstat.txt Listening TCP/UDP ports, active connections, /proc/net/tcp, Unix domain sockets, socket statistics
23_audit_network_deep.sh audit_network_deep.txt iptables/ip6tables rules, NAT table, deep network configuration audit
24_audit_binder.sh audit_binder.txt All registered Binder services, Binder device permissions, high-value service targets, vendor-prefix services
25_enum_pipes.sh pipes_ipc.txt Named pipes (FIFOs), Unix domain sockets
26_audit_unix_sockets.sh audit_unix_sockets.txt Unix socket accessibility audit, /dev/socket filesystem sockets, privilege escalation vectors
27_audit_content_providers.sh audit_content_providers.txt Exported content providers, queryable system URIs (Settings, Media, Contacts, SMS, Call Log), data exposure testing

Hardware & TEE

Script Output File Description
28_audit_tee.sh probe_tee_surface.txt TEE device nodes and permissions, tee_supplicant process profile, TEE-related Binder services, TA enumeration surface
29_audit_hardware_interfaces.sh audit_hardware_interfaces.txt hwbinder device node permissions, ION memory allocator and DMA-BUF heaps, kernel config exposure, GPIO/SPI/I2C sysfs interfaces, physical memory map
38_enum_input_devices.sh input_devices.txt /dev/input device enumeration, kernel input events (getevent), key layout and character map files, keylogging/injection surface

Application Security

Script Output File Description
20_enum_vendor_customizations.sh vendor_customizations.txt OEM-specific system properties, vendor custom services and apps, hidden/diagnostic functionality
30_audit_app_attack_surface.sh audit_app_attack_surface.txt Apps with allowBackup enabled, debuggable APKs, WebView remote debugging, overlay permissions, accessibility service abuse surface
31_enum_broadcast_receivers.sh broadcast_receivers.txt All registered broadcast receivers, unprotected receivers (injection risk), high-risk actions (SMS/BOOT_COMPLETED), sticky broadcasts
35_enum_app_hashes.sh application_hashes.txt Installed packages with APK paths, SHA256/MD5 hashes, system vs third-party, disabled packages, package UIDs
36_enum_shell_commands.sh shell_commands.txt Environment variables, PATH, /system/bin and /vendor/bin contents, Toybox/Busybox applets, security-sensitive binaries (su, tcpdump, strace)

Cryptography, Certificates & Secrets

Script Output File Description
32_audit_crypto_surface.sh audit_crypto_surface.txt Kernel keyring (/proc/keys), Keystore2 key inventory, hardware-backed key detection
33_scan_certificate_files.sh scan_certificate_files.txt [CRITICAL] private key files (PEM/DER/PKCS#12 by extension and content), APK-embedded certificates, world-readable cert files
34_scan_hardcoded_secrets.sh scan_hardcoded_secrets.txt SSH private keys, cloud credentials (AWS/GCP/Azure), API keys (Google/Firebase/Stripe/Twilio), JWT tokens, SharedPreferences credentials, APK-embedded secrets

Forensic Collection

Script Output File Description
39_collect_logs.sh forensic_logs.txt System logcat, kernel dmesg, tombstone crash logs, ANR traces, dropbox entries, SELinux denial log entries
40_forensic_process_snapshot.sh forensic_process_snapshot.txt Deliverable-grade process snapshot: full process table, per-UID=0 process security profile (capabilities, SELinux, seccomp), process count summary

Directory Structure

Toolchain/
β”œβ”€β”€ 0_RunAll.sh                        # Orchestrator β€” runs scripts 01–41 in sequence
β”œβ”€β”€ 01_audit_usb_adb.sh
β”œβ”€β”€ 02_audit_properties.sh
β”œβ”€β”€ 03_audit_partitions.sh
β”œβ”€β”€ 04_enum_root_indicators.sh
β”œβ”€β”€ 05_audit_android_jail.sh
β”œβ”€β”€ 06_audit_selinux.sh
β”œβ”€β”€ 07_audit_kernel.sh
β”œβ”€β”€ 08_audit_debug_interfaces.sh
β”œβ”€β”€ 09_enum_privileged_processes.sh
β”œβ”€β”€ 10_audit_capabilities.sh
β”œβ”€β”€ 11_audit_setuid.sh
β”œβ”€β”€ 12_audit_privesc_surface.sh
β”œβ”€β”€ 13_enum_users.sh
β”œβ”€β”€ 14_audit_device_nodes.sh
β”œβ”€β”€ 15_audit_writable_system.sh
β”œβ”€β”€ 16_audit_special_perms.sh
β”œβ”€β”€ 17_audit_namespaces.sh
β”œβ”€β”€ 18_audit_boot.sh
β”œβ”€β”€ 19_audit_scheduled_tasks.sh
β”œβ”€β”€ 20_enum_vendor_customizations.sh
β”œβ”€β”€ 21_enum_network.sh
β”œβ”€β”€ 22_enum_netstat.sh
β”œβ”€β”€ 23_audit_network_deep.sh
β”œβ”€β”€ 24_audit_binder.sh
β”œβ”€β”€ 25_enum_pipes.sh
β”œβ”€β”€ 26_audit_unix_sockets.sh
β”œβ”€β”€ 27_audit_content_providers.sh
β”œβ”€β”€ 28_audit_tee.sh
β”œβ”€β”€ 29_audit_hardware_interfaces.sh
β”œβ”€β”€ 30_audit_app_attack_surface.sh
β”œβ”€β”€ 31_enum_broadcast_receivers.sh
β”œβ”€β”€ 32_audit_crypto_surface.sh
β”œβ”€β”€ 33_scan_certificate_files.sh
β”œβ”€β”€ 34_scan_hardcoded_secrets.sh
β”œβ”€β”€ 35_enum_app_hashes.sh
β”œβ”€β”€ 36_enum_shell_commands.sh
β”œβ”€β”€ 37_enum_symlinks.sh
β”œβ”€β”€ 38_enum_input_devices.sh
β”œβ”€β”€ 39_collect_logs.sh
β”œβ”€β”€ 40_forensic_process_snapshot.sh
└── 41_forensic_storage_sensitive.sh
β”œβ”€β”€ 99_Zip_Reports.sh                  # Archives output (zip β†’ tar.gz β†’ tar fallback)

Adding Scripts

Each script follows this template:

#!/system/bin/sh
OUTPUT_DIR="${1:-.}"
OUTPUT_FILE="${OUTPUT_DIR}/output_name.txt"
{
    echo "=== SECTION HEADER ==="
    echo "Timestamp: $(date)"
    # collection commands here
} > "${OUTPUT_FILE}" 2>&1

Key rules:

  • Shebang must be #!/system/bin/sh β€” no bashisms, no arrays, no [[ ]], no local
  • Accept output directory as $1, default to .
  • Redirect all stderr into the output file (2>&1)
  • Tag findings with [CRITICAL], [HIGH], [MEDIUM], or [INFO]

About

A collection of Android Analysis Scripts

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages