Signatures.h
1 #pragma once 2 3 #include <cstddef> 4 5 namespace android::anative_window_creator::signatures 6 { 7 /** 8 * @brief Represents a byte pattern signature for multiple ABIs. 9 */ 10 struct MethodSignature 11 { 12 const char *arm64 = nullptr; 13 const char *x86_64 = nullptr; 14 const char *arm32 = nullptr; 15 16 [[nodiscard]] const char *Get() const 17 { 18 #if defined(__aarch64__) 19 return arm64; 20 #elif defined(__x86_64__) 21 return x86_64; 22 #elif defined(__arm__) 23 return arm32; 24 #else 25 return nullptr; 26 #endif 27 } 28 }; 29 30 /** 31 * @brief Registry of all signatures required for AImGUI. 32 */ 33 struct Registry 34 { 35 // libutils.so 36 MethodSignature RefBase_incStrong = { .arm64 = "signature-here", .x86_64 = "48 8B 47 ? F0 83 40 ? ? B9 ? ? ? ? ? ? ? ? 81 F9", .arm32 = "signature-here" }; // _ZNK7android7RefBase9incStrongEPKv 37 MethodSignature RefBase_decStrong = { .arm64 = "signature-here", .x86_64 = "41 57 41 56 53 48 8B 5F", .arm32 = "signature-here" }; // _ZNK7android7RefBase9decStrongEPKv 38 MethodSignature String8_Constructor = { .arm64 = "signature-here", .x86_64 = "41 57 41 56 41 55 41 54 53 49 89 F7 49 89 FE 48 89 F7 E8 ? ? ? ? 48 83 F8", .arm32 = "signature-here" }; // _ZN7android7String8C2EPKc 39 MethodSignature String8_Destructor = { .arm64 = "signature-here", .x86_64 = "48 8B 07 48 8D 78 E8 48 85 C0 48 0F 44 F8 31 F6 E9", .arm32 = "signature-here" }; // _ZN7android7String8D2Ev 40 41 // libgui.so 42 MethodSignature LayerMetadata_Constructor = { .arm64 = "signature-here", .x86_64 = "48 8B 05 ? ? ? ? 48 83 C0 ? ? ? ? 0F 57 C0 0F 11 47 ? 0F 11 47 ? C7 47 ? ? ? ? ? C3", .arm32 = "signature-here" }; // _ZN7android13LayerMetadataC2Ev OR _ZN7android3gui13LayerMetadataC2Ev 43 MethodSignature LayerMetadata_SetInt32 = { .arm64 = "signature-here", .x86_64 = "55 41 56 53 48 81 EC ? ? ? ? 41 89 D6 64 48 8B 04 25 ? ? ? ? 48 89 84 24", .arm32 = "signature-here" }; // _ZN7android13LayerMetadata8setInt32Eji OR _ZN7android3gui13LayerMetadata8setInt32Eji 44 MethodSignature SurfaceComposerClient_Constructor = { .arm64 = "signature-here", .x86_64 = "53 48 89 FB E8 ? ? ? ? 48 8B 05 ? ? ? ? 48 83 C0 ? ? ? ? 48 8D 7B", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClientC2Ev 45 46 // createSurface variants (Version specific) 47 MethodSignature CreateSurface_v7 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13createSurfaceERKNS_7String8Ejjij 48 MethodSignature CreateSurface_v8 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13createSurfaceERKNS_7String8EjjijPNS_14SurfaceControlEjj 49 MethodSignature CreateSurface_v9 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13createSurfaceERKNS_7String8EjjijPNS_14SurfaceControlEii 50 MethodSignature CreateSurface_v10 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13createSurfaceERKNS_7String8EjjijPNS_14SurfaceControlENS_13LayerMetadataE 51 MethodSignature CreateSurface_v11 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13createSurfaceERKNS_7String8EjjijPNS_14SurfaceControlENS_13LayerMetadataEPj 52 MethodSignature CreateSurface_v12 = { .arm64 = "signature-here", .x86_64 = "55 41 57 41 56 41 55 41 54 53 48 83 EC ? 45 89 CE", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13createSurfaceERKNS_7String8EjjijRKNS_2spINS_7IBinderEEENS_13LayerMetadataEPj 53 MethodSignature CreateSurface_v13 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13createSurfaceERKNS_7String8EjjijRKNS_2spINS_7IBinderEEENS_13LayerMetadataEPj 54 MethodSignature CreateSurface_v14 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13createSurfaceERKNS_7String8EjjiiRKNS_2spINS_7IBinderEEENS_3gui13LayerMetadataEPj 55 56 MethodSignature MirrorSurface = { .arm64 = "signature-here", .x86_64 = "55 48 89 E5 41 57 41 56 41 54 53 48 83 EC ? 49 89 FE 64 48 8B 04 25 ? ? ? ? 48 89 45 ? 48 85 D2", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient13mirrorSurfaceEPNS_14SurfaceControlE 57 MethodSignature GetBuiltInDisplay = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient17getBuiltInDisplayEi 58 MethodSignature GetInternalDisplayToken = { .arm64 = "signature-here", .x86_64 = "55 41 57 41 56 41 55 41 54 53 48 83 EC ? 49 89 FE 64 48 8B 04 25", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient23getInternalDisplayTokenEv 59 MethodSignature GetPhysicalDisplayIds = { .arm64 = "signature-here", .x86_64 = "53 48 83 EC ? 48 89 FB 64 48 8B 04 25 ? ? ? ? 48 89 44 24 ? 48 89 E7 E8 ? ? ? ? ? ? ? ? ? ? ? 48 89 DF", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient21getPhysicalDisplayIdsEv 60 MethodSignature GetPhysicalDisplayToken = { .arm64 = "signature-here", .x86_64 = "41 56 53 48 83 EC ? 48 89 F3 49 89 FE 64 48 8B 04 25 ? ? ? ? 48 89 44 24 ? 48 8D 7C 24", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient23getPhysicalDisplayTokenENS_17PhysicalDisplayIdE 61 MethodSignature GetDisplayInfo = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient14getDisplayInfoERKNS_2spINS_7IBinderEEEPNS_11DisplayInfoE 62 MethodSignature GetDisplayState = { .arm64 = "signature-here", .x86_64 = "41 56 53 48 83 EC ? 49 89 F6 48 89 FB 64 48 8B 04 25 ? ? ? ? 48 89 44 24 ? 48 8D 7C 24 ? E8 ? ? ? ? 48 8B 7C 24 ? ? ? ? 48 89 DE 4C 89 F2 FF 90 ? ? ? ? 89 C3 48 8B 7C 24 ? 48 85 FF 74 ? ? ? ? 48 03 78 ? 48 8D 74 24 ? E8 ? ? ? ? 64 48 8B 04 25 ? ? ? ? 48 3B 44 24 ? 75 ? 89 D8 48 83 C4 ? 5B 41 5E C3 E8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 41 56 53 48 83 EC ? 49 89 F6 48 89 FB 64 48 8B 04 25 ? ? ? ? 48 89 44 24 ? 48 8D 7C 24 ? E8 ? ? ? ? 48 8B 7C 24 ? ? ? ? 48 89 DE 4C 89 F2 FF 90 ? ? ? ? 89 C3 48 8B 7C 24 ? 48 85 FF 74 ? ? ? ? 48 03 78 ? 48 8D 74 24 ? E8 ? ? ? ? 64 48 8B 04 25 ? ? ? ? 48 3B 44 24 ? 75 ? 89 D8 48 83 C4 ? 5B 41 5E C3 E8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 41 56 53 48 83 EC ? 49 89 F6 48 89 FB 64 48 8B 04 25 ? ? ? ? 48 89 44 24 ? 48 8D 7C 24 ? E8 ? ? ? ? 48 8B 7C 24 ? ? ? ? 48 89 DE 4C 89 F2 FF 90 ? ? ? ? 89 C3 48 8B 7C 24 ? 48 85 FF 74 ? ? ? ? 48 03 78 ? 48 8D 74 24 ? E8 ? ? ? ? 64 48 8B 04 25 ? ? ? ? 48 3B 44 24 ? 75 ? 89 D8 48 83 C4 ? 5B 41 5E C3 E8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 55", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient15getDisplayStateERKNS_2spINS_7IBinderEEEPNS_2ui12DisplayStateE 63 64 // Transaction variants 65 MethodSignature Transaction_CopyConstructor = { .arm64 = "signature-here", .x86_64 = "41 57 41 56 41 54 53 50 49 89 F6 48 89 FB 48 8B 05", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11TransactionC2ERKS1_ 66 MethodSignature Transaction_Constructor = { .arm64 = "signature-here", .x86_64 = "53 48 89 FB 48 8B 05 ? ? ? ? 48 83 C0 ? ? ? ? 0F 57 C0", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11TransactionC2Ev 67 MethodSignature Transaction_SetLayer = { .arm64 = "signature-here", .x86_64 = "55 41 56 53 41 89 D6 48 89 F3 48 89 FD E8 ? ? ? ? 48 8B 48", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction8setLayerERKNS_2spINS_14SurfaceControlEEEi 68 MethodSignature Transaction_SetTrustedOverlay = { .arm64 = "signature-here", .x86_64 = "55 53 50 89 D5 48 89 FB E8 ? ? ? ? 80 48 ? ? 40 88 A8 ? ? ? ? 48 89 D8 48 83 C4 ? 5B 5D C3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 41 57", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction17setTrustedOverlayERKNS_2spINS_14SurfaceControlEEEb 69 MethodSignature Transaction_Apply_v12 = { .arm64 = "signature-here", .x86_64 = "55 41 57 41 56 41 55 41 54 53 48 81 EC ? ? ? ? 64 48 8B 04 25 ? ? ? ? 48 89 84 24 ? ? ? ? 8B 87", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction5applyEb 70 MethodSignature Transaction_Apply_v13 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction5applyEbb 71 MethodSignature Transaction_SetLayerStack = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction13setLayerStackERKNS_2spINS_14SurfaceControlEEENS_2ui10LayerStackE 72 MethodSignature Transaction_Show = { .arm64 = "signature-here", .x86_64 = "41 56 53 50 49 89 F6 48 89 FB E8 ? ? ? ? 80 48 ? ? 80 60", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction4showERKNS_2spINS_14SurfaceControlEEE 73 MethodSignature Transaction_Hide = { .arm64 = "signature-here", .x86_64 = "41 56 53 50 49 89 F6 48 89 FB E8 ? ? ? ? 80 48 ? ? 80 48", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction4hideERKNS_2spINS_14SurfaceControlEEE 74 MethodSignature Transaction_Reparent = { .arm64 = "signature-here", .x86_64 = "41 57 41 56 41 55 41 54 53 48 83 EC ? 48 89 D3 49 89 F7", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction8reparentERKNS_2spINS_14SurfaceControlEEES6_ 75 MethodSignature Transaction_SetMatrix = { .arm64 = "signature-here", .x86_64 = "41 56 53 48 83 EC ? F3 0F 11 5C 24 ? F3 0F 11 54 24 ? F3 0F 11 4C 24 ? F3 0F 11 44 24", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction9setMatrixERKNS_2spINS_14SurfaceControlEEEffff 76 MethodSignature Transaction_SetPosition = { .arm64 = "signature-here", .x86_64 = "41 56 53 50 F3 0F 11 4C 24", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction11setPositionERKNS_2spINS_14SurfaceControlEEEff 77 78 // InputWindowInfo variants 79 MethodSignature Transaction_SetInputWindowInfo_v10 = { .arm64 = "signature-here", .x86_64 = "55 48 89 E5 41 57 41 56 41 55 41 54 53 50 49 89 D4", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction18setInputWindowInfoERKNS_2spINS_14SurfaceControlEEERKNS_3gui10WindowInfoE 80 MethodSignature Transaction_SetInputWindowInfo_v16 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient11Transaction18setInputWindowInfoERKNS_2spINS_14SurfaceControlEEENS2_INS_3gui16WindowInfoHandleEEE 81 82 MethodSignature OpenGlobalTransaction = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient21openGlobalTransactionEv 83 MethodSignature CloseGlobalTransaction = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android21SurfaceComposerClient22closeGlobalTransactionEb 84 85 // SurfaceControl / Surface 86 MethodSignature SurfaceControl_GetSurface_v11 = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZNK7android14SurfaceControl10getSurfaceEv 87 MethodSignature SurfaceControl_GetSurface_v12 = { .arm64 = "signature-here", .x86_64 = "41 57 41 56 53 48 89 F3 49 89 FF 4C 8D 76 ? 4C 89 F7 E8 ? ? ? ? 48 8B 7B ? 48 85 FF 74 ? ? ? ? 4C 89 FE E8 ? ? ? ? EB ? 4C 89 FF 48 89 DE E8 ? ? ? ? 4C 89 F7 E8 ? ? ? ? 4C 89 F8 5B 41 5E 41 5F C3 ? ? ? ? ? ? ? 41 57", .arm32 = "signature-here" }; // _ZN7android14SurfaceControl10getSurfaceEv 88 MethodSignature Surface_DisConnect = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android7Surface10disconnectEi 89 MethodSignature SurfaceControl_DisConnect = { .arm64 = "signature-here", .x86_64 = "53 48 83 EC ? 48 89 FB 64 48 8B 04 25 ? ? ? ? 48 89 44 24 ? 48 89 E7 48 89 DE", .arm32 = "signature-here" }; // _ZN7android14SurfaceControl10disconnectEv 90 MethodSignature SurfaceControl_GetParentingLayer = { .arm64 = "signature-here", .x86_64 = "55 48 89 E5 41 56 53 49 89 FE", .arm32 = "signature-here" }; // _ZN7android14SurfaceControl17getParentingLayerEv 91 MethodSignature SurfaceControl_SetLayer = { .arm64 = "signature-here", .x86_64 = "signature-here", .arm32 = "signature-here" }; // _ZN7android14SurfaceControl8setLayerEi OR _ZN7android14SurfaceControl8setLayerEj 92 }; 93 94 /** 95 * @brief Global registry instance. 96 */ 97 inline Registry gRegistry; 98 99 } // namespace android::anative_window_creator::signatures