global_group.add_argument('-s','--serial',type=str,metavar='<serial>',help='ADB serial number of the target Android device.')
global_group.add_argument('-d','--delay',type=float,metavar='<delay>',default=1.0,help='Delay in seconds between process status checks. (default: 1.0)')
global_group.add_argument('-v','--verbose',action='store_true',help='Enable detailed logging for debugging.')
global_group.add_argument('-l','--log',type=Path,metavar='<dir>',help='Directory to save log files.')
global_group.add_argument('-V','--version',action='store_true',help='Show tool version and exit.')
advanced_group.add_argument('--no-stop',action='store_false',help='Do not stop once minimum CDM data is intercepted.')
advanced_group.add_argument('--unencrypt',action='store_true',help='Force the license challenge to keep client ID data unencrypted.')
advanced_group.add_argument('--symbols',type=Path,metavar='<symbols>',help='Path to Ghidra-generated XML symbol file for function mapping.')
advanced_group.add_argument('--challenge',action='append',type=Path,metavar='<challenge>',help='Protobuf challenge file(s) captured via MITM proxy.')
advanced_group.add_argument('--rsa-key',action='append',type=Path,metavar='<rsa-key>',help='RSA private key(s) in PEM or DER format for client ID decryption.')
advanced_group.add_argument('--aes-key',action='append',type=str,metavar='<aes-key>',help='AES key(s) in hex, base64, or file form for decrypting keybox data.')