/ deps / AImGUI / modules / Signatures.h
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