diff --git a/pwndbg/android.py b/pwndbg/android.py index feaa0af3c..dfde5e5c3 100644 --- a/pwndbg/android.py +++ b/pwndbg/android.py @@ -13,3 +13,95 @@ def is_android(): def sysroot(): if is_android(): gdb.execute('set sysroot remote:/') + +KNOWN_AIDS = { +0: "AID_ROOT", +1000: "AID_SYSTEM", +1001: "AID_RADIO", +1002: "AID_BLUETOOTH", +1003: "AID_GRAPHICS", +1004: "AID_INPUT", +1005: "AID_AUDIO", +1006: "AID_CAMERA", +1007: "AID_LOG", +1008: "AID_COMPASS", +1009: "AID_MOUNT", +1010: "AID_WIFI", +1011: "AID_ADB", +1012: "AID_INSTALL", +1013: "AID_MEDIA", +1014: "AID_DHCP", +1015: "AID_SDCARD_RW", +1016: "AID_VPN", +1017: "AID_KEYSTORE", +1018: "AID_USB", +1019: "AID_DRM", +1020: "AID_MDNSR", +1021: "AID_GPS", +1022: "AID_UNUSED1", +1023: "AID_MEDIA_RW", +1024: "AID_MTP", +1025: "AID_UNUSED2", +1026: "AID_DRMRPC", +1027: "AID_NFC", +1028: "AID_SDCARD_R", +1029: "AID_CLAT", +1030: "AID_LOOP_RADIO", +1031: "AID_MEDIA_DRM", +1032: "AID_PACKAGE_INFO", +1033: "AID_SDCARD_PICS", +1034: "AID_SDCARD_AV", +1035: "AID_SDCARD_ALL", +1036: "AID_LOGD", +1037: "AID_SHARED_RELRO", +1038: "AID_DBUS", +1039: "AID_TLSDATE", +1040: "AID_MEDIA_EX", +1041: "AID_AUDIOSERVER", +1042: "AID_METRICS_COLL", +1043: "AID_METRICSD", +1044: "AID_WEBSERV", +1045: "AID_DEBUGGERD", +1046: "AID_MEDIA_CODEC", +1047: "AID_CAMERASERVER", +1048: "AID_FIREWALL", +1049: "AID_TRUNKS", +1050: "AID_NVRAM", +2001: "AID_CACHE", +2002: "AID_DIAG", +2900: "AID_OEM_RESERVED_START", +2999: "AID_OEM_RESERVED_END", +3001: "AID_NET_BT_ADMIN", +3002: "AID_NET_BT", +3003: "AID_INET", +3004: "AID_NET_RAW", +3005: "AID_NET_ADMIN", +3006: "AID_NET_BW_STATS", +3007: "AID_NET_BW_ACCT", +3008: "AID_NET_BT_STACK", +3009: "AID_READPROC", +3010: "AID_WAKELOCK", +5000: "AID_OEM_RESERVED_2_START", +5999: "AID_OEM_RESERVED_2_END", +9997: "AID_EVERYBODY", +9998: "AID_MISC", +9999: "AID_NOBODY", +10000: "AID_APP", +50000: "AID_SHARED_GID_START", +59999: "AID_SHARED_GID_END", +99000: "AID_ISOLATED_START", +99999: "AID_ISOLATED_END", +100000: "AID_USER", +} + +def aid_name(uid): + if uid in KNOWN_AIDS: + return KNOWN_AIDS[uid] + + for closest in sorted(KNOWN_AIDS): + if uid > closest: + break + else: + return str(uid) + + return "%s+%s" % (KNOWN_AIDS[closest], uid-closest)