import os import unittest class ElfAarch64Tests(unittest.TestCase): def test_can_find_exported_mag_symbol(self): import elf_aarch64 so_path = os.path.join( os.getcwd(), "IR_Camera_SDK-1.0.1", "android", "android", "lib", "arm64-v8a", "libcoresdk.so", ) analyzer = elf_aarch64.ElfAnalyzer(so_path) sym = analyzer.find_symbol("MAG_LinkCamera") self.assertIsNotNone(sym) self.assertGreater(sym.size, 0) self.assertGreater(sym.addr, 0) def test_disassembles_aarch64_function_and_resolves_calls(self): import elf_aarch64 so_path = os.path.join( os.getcwd(), "IR_Camera_SDK-1.0.1", "android", "android", "lib", "arm64-v8a", "libcoresdk.so", ) analyzer = elf_aarch64.ElfAnalyzer(so_path) lines = analyzer.disassemble_symbol("MAG_LinkCamera") self.assertTrue(any("MAG_LinkCamera" in line for line in lines[:2])) self.assertTrue(any("\tbl" in line or "\tblr" in line for line in lines)) if __name__ == "__main__": unittest.main()